public class org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  super_class: java.lang.Object
{
  private static final int SMALL_POLYGON_CUTOFF_EDGES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 35
            ldc Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.$assertionsDisabled:Z
         3: .line 39
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 37
            return
        end local 0 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory;

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeGeoConcavePolygon(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List pointList
         0: .line 52
            new org.apache.lucene.spatial3d.geom.GeoConcavePolygon
            dup
            aload 0 /* planetModel */
            aload 1 /* pointList */
            invokespecial org.apache.lucene.spatial3d.geom.GeoConcavePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)V
            areturn
        end local 1 // java.util.List pointList
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0    1     1    pointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
             Name  Flags
      planetModel  final
      pointList    final

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeGeoConvexPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List pointList
         0: .line 66
            new org.apache.lucene.spatial3d.geom.GeoConvexPolygon
            dup
            aload 0 /* planetModel */
            aload 1 /* pointList */
            invokespecial org.apache.lucene.spatial3d.geom.GeoConvexPolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)V
            areturn
        end local 1 // java.util.List pointList
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0    1     1    pointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
             Name  Flags
      planetModel  final
      pointList    final

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeGeoConcavePolygon(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>, java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygon>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List pointList
        start local 2 // java.util.List holes
         0: .line 84
            new org.apache.lucene.spatial3d.geom.GeoConcavePolygon
            dup
            aload 0 /* planetModel */
            aload 1 /* pointList */
            aload 2 /* holes */
            invokespecial org.apache.lucene.spatial3d.geom.GeoConcavePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;)V
            areturn
        end local 2 // java.util.List holes
        end local 1 // java.util.List pointList
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0    1     1    pointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            0    1     2        holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
             Name  Flags
      planetModel  final
      pointList    final
      holes        final

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeGeoConvexPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>, java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygon>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List pointList
        start local 2 // java.util.List holes
         0: .line 101
            new org.apache.lucene.spatial3d.geom.GeoConvexPolygon
            dup
            aload 0 /* planetModel */
            aload 1 /* pointList */
            aload 2 /* holes */
            invokespecial org.apache.lucene.spatial3d.geom.GeoConvexPolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;)V
            areturn
        end local 2 // java.util.List holes
        end local 1 // java.util.List pointList
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0    1     1    pointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            0    1     2        holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
             Name  Flags
      planetModel  final
      pointList    final
      holes        final

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeGeoPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription description
         0: .line 142
            aload 0 /* planetModel */
            aload 1 /* description */
            dconst_0
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;D)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            areturn
        end local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription description
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0    1     1  description  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;
    MethodParameters:
             Name  Flags
      planetModel  final
      description  final

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeGeoPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription, double);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;D)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription description
        start local 2 // double leniencyValue
         0: .line 165
            aload 1 /* description */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.holes:Ljava/util/List;
            ifnull 10
            aload 1 /* description */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.holes:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 10
         1: .line 166
            new java.util.ArrayList
            dup
            aload 1 /* description */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.holes:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* holes */
        start local 4 // java.util.List holes
         2: .line 167
            aload 1 /* description */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.holes:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription double java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription
            astore 5 /* holeDescription */
        start local 5 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription holeDescription
         4: .line 168
            aload 0 /* planetModel */
            aload 5 /* holeDescription */
            dload 2 /* leniencyValue */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;D)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            astore 7 /* gp */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPolygon gp
         5: .line 169
            aload 7 /* gp */
            ifnonnull 7
         6: .line 170
            aconst_null
            areturn
         7: .line 172
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription double java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription java.util.Iterator org.apache.lucene.spatial3d.geom.GeoPolygon
      StackMap stack:
            aload 4 /* holes */
            aload 7 /* gp */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPolygon gp
        end local 5 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription holeDescription
         8: .line 167
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription double java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 174
            goto 11
        end local 4 // java.util.List holes
        10: .line 175
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription double
      StackMap stack:
            aconst_null
            astore 4 /* holes */
        start local 4 // java.util.List holes
        11: .line 178
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* description */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.points:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            bipush 100
            if_icmpgt 35
        12: .line 182
            aload 1 /* description */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.points:Ljava/util/List;
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.filterPoints:(Ljava/util/List;)Ljava/util/List;
            astore 5 /* firstFilteredPointList */
        start local 5 // java.util.List firstFilteredPointList
        13: .line 183
            aload 5 /* firstFilteredPointList */
            ifnonnull 15
        14: .line 184
            aconst_null
            areturn
        15: .line 186
      StackMap locals: java.util.List
      StackMap stack:
            aload 5 /* firstFilteredPointList */
            dload 2 /* leniencyValue */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.filterEdges:(Ljava/util/List;D)Ljava/util/List;
            astore 6 /* filteredPointList */
        start local 6 // java.util.List filteredPointList
        16: .line 188
            aload 6 /* filteredPointList */
            ifnonnull 18
        17: .line 189
            aconst_null
            areturn
        18: .line 194
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* planetModel */
            aload 6 /* filteredPointList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.getCenterOfMass:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 7 /* centerOfMass */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPoint centerOfMass
        19: .line 195
            aload 7 /* centerOfMass */
            aload 6 /* filteredPointList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isInsidePolygon:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/List;)Ljava/lang/Boolean;
            astore 8 /* isCenterOfMassInside */
        start local 8 // java.lang.Boolean isCenterOfMassInside
        20: .line 196
            aload 8 /* isCenterOfMassInside */
            ifnull 23
        21: .line 197
            aload 0 /* planetModel */
            aload 6 /* filteredPointList */
            aload 4 /* holes */
            aload 7 /* centerOfMass */
            aload 8 /* isCenterOfMassInside */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.generateGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
        22: areturn
        23: .line 203
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint java.lang.Boolean
      StackMap stack:
            new java.util.Random
            dup
            ldc 1234
            invokespecial java.util.Random.<init>:(J)V
            astore 9 /* generator */
        start local 9 // java.util.Random generator
        24: .line 204
            iconst_0
            istore 10 /* counter */
        start local 10 // int counter
        25: goto 32
        26: .line 207
      StackMap locals: java.util.Random int
      StackMap stack:
            aload 9 /* generator */
            aload 0 /* planetModel */
            aload 6 /* filteredPointList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.pickPole:(Ljava/util/Random;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 11 /* pole */
        start local 11 // org.apache.lucene.spatial3d.geom.GeoPoint pole
        27: .line 209
            aload 11 /* pole */
            aload 6 /* filteredPointList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isInsidePolygon:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/List;)Ljava/lang/Boolean;
            astore 12 /* isPoleInside */
        start local 12 // java.lang.Boolean isPoleInside
        28: .line 210
            aload 12 /* isPoleInside */
            ifnull 31
        29: .line 214
            aload 0 /* planetModel */
            aload 6 /* filteredPointList */
            aload 4 /* holes */
            aload 11 /* pole */
            aload 12 /* isPoleInside */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.generateGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
        30: areturn
        end local 12 // java.lang.Boolean isPoleInside
        end local 11 // org.apache.lucene.spatial3d.geom.GeoPoint pole
        31: .line 204
      StackMap locals:
      StackMap stack:
            iinc 10 /* counter */ 1
      StackMap locals:
      StackMap stack:
        32: iload 10 /* counter */
            ldc 1000000
            if_icmplt 26
        end local 10 // int counter
        33: .line 218
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot find a point that is inside the polygon "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* filteredPointList */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.util.Random generator
        end local 8 // java.lang.Boolean isCenterOfMassInside
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPoint centerOfMass
        34: .line 219
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription double java.util.List java.util.List java.util.List
      StackMap stack: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
            pop
        end local 6 // java.util.List filteredPointList
        end local 5 // java.util.List firstFilteredPointList
        35: .line 224
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* pd */
        start local 5 // java.util.List pd
        36: .line 225
            aload 5 /* pd */
            aload 1 /* description */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        37: .line 226
            aload 0 /* planetModel */
            aload 5 /* pd */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeLargeGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            areturn
        end local 5 // java.util.List pd
        end local 4 // java.util.List holes
        end local 2 // double leniencyValue
        end local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription description
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   38     0             planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0   38     1             description  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;
            0   38     2           leniencyValue  D
            2   10     4                   holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
           11   38     4                   holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
            4    8     5         holeDescription  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;
            5    8     7                      gp  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
           13   35     5  firstFilteredPointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
           16   35     6       filteredPointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
           19   34     7            centerOfMass  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           20   34     8    isCenterOfMassInside  Ljava/lang/Boolean;
           24   34     9               generator  Ljava/util/Random;
           25   33    10                 counter  I
           27   31    11                    pole  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           28   31    12            isPoleInside  Ljava/lang/Boolean;
           36   38     5                      pd  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;>;
      Exception table:
        from    to  target  type
          18    22      34  Class org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
          23    30      34  Class org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
          31    34      34  Class org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
    MethodParameters:
               Name  Flags
      planetModel    final
      description    final
      leniencyValue  final

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeGeoPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List pointList
         0: .line 240
            aload 0 /* planetModel */
            aload 1 /* pointList */
            aconst_null
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            areturn
        end local 1 // java.util.List pointList
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0    1     1    pointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
             Name  Flags
      planetModel  final
      pointList    final

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeGeoPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>, java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygon>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List pointList
        start local 2 // java.util.List holes
         0: .line 258
            aload 0 /* planetModel */
            aload 1 /* pointList */
            aload 2 /* holes */
            dconst_0
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;D)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            areturn
        end local 2 // java.util.List holes
        end local 1 // java.util.List pointList
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0    1     1    pointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            0    1     2        holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
             Name  Flags
      planetModel  final
      pointList    final
      holes        final

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeGeoPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>, java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygon>, double);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;D)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=4
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List pointList
        start local 2 // java.util.List holes
        start local 3 // double leniencyValue
         0: .line 284
            aload 1 /* pointList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.filterPoints:(Ljava/util/List;)Ljava/util/List;
            astore 5 /* firstFilteredPointList */
        start local 5 // java.util.List firstFilteredPointList
         1: .line 285
            aload 5 /* firstFilteredPointList */
            ifnonnull 3
         2: .line 286
            aconst_null
            areturn
         3: .line 288
      StackMap locals: java.util.List
      StackMap stack:
            aload 5 /* firstFilteredPointList */
            dload 3 /* leniencyValue */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.filterEdges:(Ljava/util/List;D)Ljava/util/List;
            astore 6 /* filteredPointList */
        start local 6 // java.util.List filteredPointList
         4: .line 290
            aload 6 /* filteredPointList */
            ifnonnull 6
         5: .line 291
            aconst_null
            areturn
         6: .line 296
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* planetModel */
            aload 6 /* filteredPointList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.getCenterOfMass:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 7 /* centerOfMass */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPoint centerOfMass
         7: .line 297
            aload 7 /* centerOfMass */
            aload 6 /* filteredPointList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isInsidePolygon:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/List;)Ljava/lang/Boolean;
            astore 8 /* isCenterOfMassInside */
        start local 8 // java.lang.Boolean isCenterOfMassInside
         8: .line 298
            aload 8 /* isCenterOfMassInside */
            ifnull 11
         9: .line 299
            aload 0 /* planetModel */
            aload 6 /* filteredPointList */
            aload 2 /* holes */
            aload 7 /* centerOfMass */
            aload 8 /* isCenterOfMassInside */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.generateGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
        10: areturn
        11: .line 305
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint java.lang.Boolean
      StackMap stack:
            new java.util.Random
            dup
            ldc 1234
            invokespecial java.util.Random.<init>:(J)V
            astore 9 /* generator */
        start local 9 // java.util.Random generator
        12: .line 306
            iconst_0
            istore 10 /* counter */
        start local 10 // int counter
        13: goto 20
        14: .line 309
      StackMap locals: java.util.Random int
      StackMap stack:
            aload 9 /* generator */
            aload 0 /* planetModel */
            aload 6 /* filteredPointList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.pickPole:(Ljava/util/Random;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 11 /* pole */
        start local 11 // org.apache.lucene.spatial3d.geom.GeoPoint pole
        15: .line 311
            aload 11 /* pole */
            aload 6 /* filteredPointList */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isInsidePolygon:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/List;)Ljava/lang/Boolean;
            astore 12 /* isPoleInside */
        start local 12 // java.lang.Boolean isPoleInside
        16: .line 312
            aload 12 /* isPoleInside */
            ifnull 19
        17: .line 316
            aload 0 /* planetModel */
            aload 6 /* filteredPointList */
            aload 2 /* holes */
            aload 11 /* pole */
            aload 12 /* isPoleInside */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.generateGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
        18: areturn
        end local 12 // java.lang.Boolean isPoleInside
        end local 11 // org.apache.lucene.spatial3d.geom.GeoPoint pole
        19: .line 306
      StackMap locals:
      StackMap stack:
            iinc 10 /* counter */ 1
      StackMap locals:
      StackMap stack:
        20: iload 10 /* counter */
            ldc 1000000
            if_icmplt 14
        end local 10 // int counter
        21: .line 320
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot find a point that is inside the polygon "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* filteredPointList */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.util.Random generator
        end local 8 // java.lang.Boolean isCenterOfMassInside
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPoint centerOfMass
        22: .line 321
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel java.util.List java.util.List double java.util.List java.util.List
      StackMap stack: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
            astore 7 /* e */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException e
        23: .line 323
            aload 2 /* holes */
            ifnull 25
            aload 2 /* holes */
            invokeinterface java.util.List.size:()I
            ifle 25
        24: .line 326
            new java.lang.IllegalArgumentException
            dup
            aload 7 /* e */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 328
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 8 /* description */
        start local 8 // java.util.List description
        26: .line 329
            aload 8 /* description */
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription
            dup
            aload 1 /* pointList */
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.<init>:(Ljava/util/List;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        27: .line 330
            aload 0 /* planetModel */
            aload 8 /* description */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeLargeGeoPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
            areturn
        end local 8 // java.util.List description
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException e
        end local 6 // java.util.List filteredPointList
        end local 5 // java.util.List firstFilteredPointList
        end local 3 // double leniencyValue
        end local 2 // java.util.List holes
        end local 1 // java.util.List pointList
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   28     0             planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0   28     1               pointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            0   28     2                   holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
            0   28     3           leniencyValue  D
            1   28     5  firstFilteredPointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            4   28     6       filteredPointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            7   22     7            centerOfMass  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            8   22     8    isCenterOfMassInside  Ljava/lang/Boolean;
           12   22     9               generator  Ljava/util/Random;
           13   21    10                 counter  I
           15   19    11                    pole  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           16   19    12            isPoleInside  Ljava/lang/Boolean;
           23   28     7                       e  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$TileException;
           26   28     8             description  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;>;
      Exception table:
        from    to  target  type
           6    10      22  Class org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
          11    18      22  Class org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
          19    22      22  Class org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;D)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
               Name  Flags
      planetModel    final
      pointList      final
      holes          final
      leniencyValue  final

  private static org.apache.lucene.spatial3d.geom.GeoPoint getCenterOfMass(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List points
         0: .line 337
            dconst_0
            dstore 2 /* x */
        start local 2 // double x
         1: .line 338
            dconst_0
            dstore 4 /* y */
        start local 4 // double y
         2: .line 339
            dconst_0
            dstore 6 /* z */
        start local 6 // double z
         3: .line 341
            aload 1 /* points */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 8
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel java.util.List double double double top java.util.Iterator
      StackMap stack:
         4: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 8 /* point */
        start local 8 // org.apache.lucene.spatial3d.geom.GeoPoint point
         5: .line 342
            dload 2 /* x */
            aload 8 /* point */
            getfield org.apache.lucene.spatial3d.geom.GeoPoint.x:D
            dadd
            dstore 2 /* x */
         6: .line 343
            dload 4 /* y */
            aload 8 /* point */
            getfield org.apache.lucene.spatial3d.geom.GeoPoint.y:D
            dadd
            dstore 4 /* y */
         7: .line 344
            dload 6 /* z */
            aload 8 /* point */
            getfield org.apache.lucene.spatial3d.geom.GeoPoint.z:D
            dadd
            dstore 6 /* z */
        end local 8 // org.apache.lucene.spatial3d.geom.GeoPoint point
         8: .line 341
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 347
            aload 0 /* planetModel */
            dload 2 /* x */
            dload 4 /* y */
            dload 6 /* z */
            invokevirtual org.apache.lucene.spatial3d.geom.PlanetModel.createSurfacePoint:(DDD)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            areturn
        end local 6 // double z
        end local 4 // double y
        end local 2 // double x
        end local 1 // java.util.List points
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0  planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0   10     1       points  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            1   10     2            x  D
            2   10     4            y  D
            3   10     6            z  D
            5    8     8        point  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
    MethodParameters:
             Name  Flags
      planetModel  final
      points       final

  public static org.apache.lucene.spatial3d.geom.GeoPolygon makeLargeGeoPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List shapesList
         0: .line 373
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* pointsList */
        start local 2 // java.util.List pointsList
         1: .line 375
            aconst_null
            astore 3 /* testPointShape */
        start local 3 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape testPointShape
         2: .line 376
            aload 1 /* shapesList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel java.util.List java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription
            astore 4 /* shape */
        start local 4 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription shape
         4: .line 380
            aload 2 /* pointsList */
            aload 4 /* shape */
            aload 3 /* testPointShape */
            iconst_1
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.convertPolygon:(Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;
            astore 3 /* testPointShape */
        end local 4 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription shape
         5: .line 376
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 384
            aload 3 /* testPointShape */
            ifnonnull 8
         7: .line 385
            new java.lang.IllegalArgumentException
            dup
            ldc "couldn't find a non-degenerate polygon for in-set determination"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 388
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel java.util.List java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape
      StackMap stack:
            aload 0 /* planetModel */
            aload 3 /* testPointShape */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape.points:Ljava/util/List;
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.getCenterOfMass:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 4 /* centerOfMass */
        start local 4 // org.apache.lucene.spatial3d.geom.GeoPoint centerOfMass
         9: .line 389
            aload 3 /* testPointShape */
            aload 0 /* planetModel */
            aload 2 /* pointsList */
            aload 4 /* centerOfMass */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape.createGeoComplexPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
            astore 5 /* comRval */
        start local 5 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon comRval
        10: .line 390
            aload 5 /* comRval */
            ifnull 12
        11: .line 391
            aload 5 /* comRval */
            areturn
        12: .line 397
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint org.apache.lucene.spatial3d.geom.GeoComplexPolygon
      StackMap stack:
            new java.util.Random
            dup
            ldc 1234
            invokespecial java.util.Random.<init>:(J)V
            astore 6 /* generator */
        start local 6 // java.util.Random generator
        13: .line 398
            iconst_0
            istore 7 /* counter */
        start local 7 // int counter
        14: goto 20
        15: .line 400
      StackMap locals: java.util.Random int
      StackMap stack:
            aload 6 /* generator */
            aload 0 /* planetModel */
            aload 3 /* testPointShape */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape.points:Ljava/util/List;
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.pickPole:(Ljava/util/Random;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 8 /* pole */
        start local 8 // org.apache.lucene.spatial3d.geom.GeoPoint pole
        16: .line 401
            aload 3 /* testPointShape */
            aload 0 /* planetModel */
            aload 2 /* pointsList */
            aload 8 /* pole */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape.createGeoComplexPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
            astore 9 /* rval */
        start local 9 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon rval
        17: .line 402
            aload 9 /* rval */
            ifnull 19
        18: .line 403
            aload 9 /* rval */
            areturn
        end local 9 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon rval
        end local 8 // org.apache.lucene.spatial3d.geom.GeoPoint pole
        19: .line 398
      StackMap locals:
      StackMap stack:
            iinc 7 /* counter */ 1
      StackMap locals:
      StackMap stack:
        20: iload 7 /* counter */
            ldc 1000000
            if_icmplt 15
        end local 7 // int counter
        21: .line 407
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot find a point that is inside the polygon "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* testPointShape */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.util.Random generator
        end local 5 // org.apache.lucene.spatial3d.geom.GeoComplexPolygon comRval
        end local 4 // org.apache.lucene.spatial3d.geom.GeoPoint centerOfMass
        end local 3 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape testPointShape
        end local 2 // java.util.List pointsList
        end local 1 // java.util.List shapesList
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0     planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0   22     1      shapesList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;>;
            1   22     2      pointsList  Ljava/util/List<Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;>;
            2   22     3  testPointShape  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;
            4    5     4           shape  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;
            9   22     4    centerOfMass  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           10   22     5         comRval  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
           13   22     6       generator  Ljava/util/Random;
           14   21     7         counter  I
           16   19     8            pole  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           17   19     9            rval  Lorg/apache/lucene/spatial3d/geom/GeoComplexPolygon;
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;>;)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
             Name  Flags
      planetModel  final
      shapesList   final

  private static org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape convertPolygon(java.util.List<java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>>, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape, boolean);
    descriptor: (Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // java.util.List pointsList
        start local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription shape
        start local 2 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape testPointShape
        start local 3 // boolean mustBeInside
         0: .line 419
            aload 1 /* shape */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.points:Ljava/util/List;
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.filterPoints:(Ljava/util/List;)Ljava/util/List;
            astore 4 /* filteredPoints */
        start local 4 // java.util.List filteredPoints
         1: .line 420
            aload 4 /* filteredPoints */
            ifnonnull 3
         2: .line 421
            aload 2 /* testPointShape */
            areturn
         3: .line 425
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* shape */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.holes:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifne 6
         4: .line 427
            aload 2 /* testPointShape */
            ifnull 5
            aload 2 /* testPointShape */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape.points:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 4 /* filteredPoints */
            invokeinterface java.util.List.size:()I
            if_icmple 6
         5: .line 428
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape
            dup
            aload 4 /* filteredPoints */
            iload 3 /* mustBeInside */
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape.<init>:(Ljava/util/List;Z)V
            astore 2 /* testPointShape */
         6: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* pointsList */
            aload 4 /* filteredPoints */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 435
            aload 1 /* shape */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription.holes:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 12
      StackMap locals: java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape int java.util.List top java.util.Iterator
      StackMap stack:
         8: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription
            astore 5 /* hole */
        start local 5 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription hole
         9: .line 436
            aload 0 /* pointsList */
            aload 5 /* hole */
            aload 2 /* testPointShape */
            iload 3 /* mustBeInside */
            ifeq 10
            iconst_0
            goto 11
      StackMap locals: java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape int java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription java.util.Iterator
      StackMap stack: java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape
        10: iconst_1
      StackMap locals: java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape int java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription java.util.Iterator
      StackMap stack: java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape int
        11: invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.convertPolygon:(Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;
            astore 2 /* testPointShape */
        end local 5 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription hole
        12: .line 435
      StackMap locals: java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape int java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        13: .line 440
            aload 2 /* testPointShape */
            areturn
        end local 4 // java.util.List filteredPoints
        end local 3 // boolean mustBeInside
        end local 2 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape testPointShape
        end local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription shape
        end local 0 // java.util.List pointsList
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0      pointsList  Ljava/util/List<Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;>;
            0   14     1           shape  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;
            0   14     2  testPointShape  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;
            0   14     3    mustBeInside  Z
            1   14     4  filteredPoints  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            9   12     5            hole  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;
    Signature: (Ljava/util/List<Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;>;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$PolygonDescription;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$BestShape;
    MethodParameters:
                Name  Flags
      pointsList      final
      shape           final
      testPointShape  
      mustBeInside    final

  static org.apache.lucene.spatial3d.geom.GeoPolygon generateGeoPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>, java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygon>, org.apache.lucene.spatial3d.geom.GeoPoint, boolean);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=8, args_size=5
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // java.util.List filteredPointList
        start local 2 // java.util.List holes
        start local 3 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
        start local 4 // boolean testPointInside
         0: .line 497
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 3 /* testPoint */
            aload 1 /* filteredPointList */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.Vector
            aload 1 /* filteredPointList */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.Vector
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;)V
            astore 5 /* initialPlane */
        start local 5 // org.apache.lucene.spatial3d.geom.SidedPlane initialPlane
         1: .line 500
            new org.apache.lucene.spatial3d.geom.GeoCompositePolygon
            dup
            aload 0 /* planetModel */
            invokespecial org.apache.lucene.spatial3d.geom.GeoCompositePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;)V
            astore 6 /* rval */
        start local 6 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon rval
         2: .line 501
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean
            dup
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean.<init>:()V
            astore 7 /* seenConcave */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean seenConcave
         3: .line 502
            aload 6 /* rval */
            aload 7 /* seenConcave */
            aload 0 /* planetModel */
            aload 1 /* filteredPointList */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            iconst_0
            iconst_1
            aload 5 /* initialPlane */
            aload 2 /* holes */
            aload 3 /* testPoint */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.buildPolygonShape:(Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/BitSet;IILorg/apache/lucene/spatial3d/geom/SidedPlane;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifne 13
         4: .line 504
            iload 4 /* testPointInside */
            ifeq 9
         5: .line 506
            new org.apache.lucene.spatial3d.geom.GeoCompositePolygon
            dup
            aload 0 /* planetModel */
            invokespecial org.apache.lucene.spatial3d.geom.GeoCompositePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;)V
            astore 6 /* rval */
         6: .line 507
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean
            dup
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean.<init>:()V
            astore 7 /* seenConcave */
         7: .line 508
            aload 6 /* rval */
            aload 7 /* seenConcave */
            aload 0 /* planetModel */
            aload 1 /* filteredPointList */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            iconst_0
            iconst_1
            aload 5 /* initialPlane */
            aload 2 /* holes */
            aconst_null
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.buildPolygonShape:(Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/BitSet;IILorg/apache/lucene/spatial3d/geom/SidedPlane;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            pop
         8: .line 509
            aload 6 /* rval */
            areturn
         9: .line 512
      StackMap locals: org.apache.lucene.spatial3d.geom.SidedPlane org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.GeoCompositePolygon
            dup
            aload 0 /* planetModel */
            invokespecial org.apache.lucene.spatial3d.geom.GeoCompositePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;)V
            astore 6 /* rval */
        10: .line 513
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean
            dup
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean.<init>:()V
            astore 7 /* seenConcave */
        11: .line 514
            aload 6 /* rval */
            aload 7 /* seenConcave */
            aload 0 /* planetModel */
            aload 1 /* filteredPointList */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            iconst_0
            iconst_1
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 5 /* initialPlane */
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/SidedPlane;)V
            aload 2 /* holes */
            aconst_null
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.buildPolygonShape:(Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/BitSet;IILorg/apache/lucene/spatial3d/geom/SidedPlane;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            pop
        12: .line 515
            aload 6 /* rval */
            areturn
        13: .line 518
      StackMap locals:
      StackMap stack:
            iload 4 /* testPointInside */
            ifne 15
        14: .line 520
            aload 6 /* rval */
            areturn
        15: .line 523
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.GeoCompositePolygon
            dup
            aload 0 /* planetModel */
            invokespecial org.apache.lucene.spatial3d.geom.GeoCompositePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;)V
            astore 6 /* rval */
        16: .line 524
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean
            dup
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean.<init>:()V
            astore 7 /* seenConcave */
        17: .line 525
            aload 6 /* rval */
            aload 7 /* seenConcave */
            aload 0 /* planetModel */
            aload 1 /* filteredPointList */
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            iconst_0
            iconst_1
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 5 /* initialPlane */
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/SidedPlane;)V
            aload 2 /* holes */
            aconst_null
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.buildPolygonShape:(Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/BitSet;IILorg/apache/lucene/spatial3d/geom/SidedPlane;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            pop
        18: .line 526
            aload 6 /* rval */
            areturn
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean seenConcave
        end local 6 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon rval
        end local 5 // org.apache.lucene.spatial3d.geom.SidedPlane initialPlane
        end local 4 // boolean testPointInside
        end local 3 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
        end local 2 // java.util.List holes
        end local 1 // java.util.List filteredPointList
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0        planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0   19     1  filteredPointList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            0   19     2              holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
            0   19     3          testPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            0   19     4    testPointInside  Z
            1   19     5       initialPlane  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            2   19     6               rval  Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;
            3   19     7        seenConcave  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;
    Exceptions:
      throws org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Z)Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
    MethodParameters:
                   Name  Flags
      planetModel        final
      filteredPointList  final
      holes              final
      testPoint          final
      testPointInside    final

  static java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint> filterPoints(java.util.List<? extends org.apache.lucene.spatial3d.geom.GeoPoint>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.util.List input
         0: .line 536
            new java.util.ArrayList
            dup
            aload 0 /* input */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* noIdenticalPoints */
        start local 1 // java.util.List noIdenticalPoints
         1: .line 539
            iconst_m1
            istore 2 /* startIndex */
        start local 2 // int startIndex
         2: .line 540
            aload 0 /* input */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 3 /* comparePoint */
        start local 3 // org.apache.lucene.spatial3d.geom.GeoPoint comparePoint
         3: .line 541
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 10
         5: .line 542
      StackMap locals: java.util.List java.util.List int org.apache.lucene.spatial3d.geom.GeoPoint int
      StackMap stack:
            aload 0 /* input */
            iload 4 /* i */
            ineg
            iconst_1
            isub
            aload 0 /* input */
            invokeinterface java.util.List.size:()I
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.getLegalIndex:(II)I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 5 /* thePoint */
        start local 5 // org.apache.lucene.spatial3d.geom.GeoPoint thePoint
         6: .line 543
            aload 5 /* thePoint */
            aload 3 /* comparePoint */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.isNumericallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 9
         7: .line 544
            iload 4 /* i */
            ineg
            aload 0 /* input */
            invokeinterface java.util.List.size:()I
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.getLegalIndex:(II)I
            istore 2 /* startIndex */
         8: .line 545
            goto 11
        end local 5 // org.apache.lucene.spatial3d.geom.GeoPoint thePoint
         9: .line 541
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 4 /* i */
            aload 0 /* input */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            if_icmplt 5
        end local 4 // int i
        11: .line 548
      StackMap locals:
      StackMap stack:
            iload 2 /* startIndex */
            iconst_m1
            if_icmpne 13
        12: .line 549
            aconst_null
            areturn
        13: .line 553
      StackMap locals:
      StackMap stack:
            iload 2 /* startIndex */
            istore 4 /* currentIndex */
        start local 4 // int currentIndex
        14: .line 555
      StackMap locals: int
      StackMap stack:
            aload 0 /* input */
            iload 4 /* currentIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 5 /* currentPoint */
        start local 5 // org.apache.lucene.spatial3d.geom.GeoPoint currentPoint
        15: .line 556
            aload 1 /* noIdenticalPoints */
            aload 5 /* currentPoint */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 558
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint
      StackMap stack:
            iload 4 /* currentIndex */
            iconst_1
            iadd
            aload 0 /* input */
            invokeinterface java.util.List.size:()I
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.getLegalIndex:(II)I
            istore 4 /* currentIndex */
        17: .line 559
            iload 4 /* currentIndex */
            iload 2 /* startIndex */
            if_icmpne 19
        18: .line 560
            goto 21
        19: .line 562
      StackMap locals:
      StackMap stack:
            aload 0 /* input */
            iload 4 /* currentIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 6 /* nextNonIdenticalPoint */
        start local 6 // org.apache.lucene.spatial3d.geom.GeoPoint nextNonIdenticalPoint
        20: .line 563
            aload 6 /* nextNonIdenticalPoint */
            aload 5 /* currentPoint */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.isNumericallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 16
        end local 6 // org.apache.lucene.spatial3d.geom.GeoPoint nextNonIdenticalPoint
        21: .line 567
      StackMap locals:
      StackMap stack:
            iload 4 /* currentIndex */
            iload 2 /* startIndex */
            if_icmpne 14
        end local 5 // org.apache.lucene.spatial3d.geom.GeoPoint currentPoint
        22: .line 572
            aload 1 /* noIdenticalPoints */
            invokeinterface java.util.List.size:()I
            iconst_3
            if_icmpge 24
        23: .line 573
            aconst_null
            areturn
        24: .line 576
      StackMap locals:
      StackMap stack:
            aload 1 /* noIdenticalPoints */
            areturn
        end local 4 // int currentIndex
        end local 3 // org.apache.lucene.spatial3d.geom.GeoPoint comparePoint
        end local 2 // int startIndex
        end local 1 // java.util.List noIdenticalPoints
        end local 0 // java.util.List input
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   25     0                  input  Ljava/util/List<+Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            1   25     1      noIdenticalPoints  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            2   25     2             startIndex  I
            3   25     3           comparePoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            4   11     4                      i  I
            6    9     5               thePoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           14   25     4           currentIndex  I
           15   22     5           currentPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           20   21     6  nextNonIdenticalPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
    Signature: (Ljava/util/List<+Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;)Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
    MethodParameters:
       Name  Flags
      input  final

  static java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint> filterEdges(java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>, double);
    descriptor: (Ljava/util/List;D)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.util.List noIdenticalPoints
        start local 1 // double leniencyValue
         0: .line 590
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 8
         2: .line 592
      StackMap locals: int
      StackMap stack:
            aload 0 /* noIdenticalPoints */
            iload 3 /* i */
            dload 1 /* leniencyValue */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.findSafePath:(Ljava/util/List;ID)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$SafePath;
            astore 4 /* resultPath */
        start local 4 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath resultPath
         3: .line 593
            aload 4 /* resultPath */
            ifnull 7
            aload 4 /* resultPath */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath.previous:Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$SafePath;
            ifnull 7
         4: .line 595
            new java.util.ArrayList
            dup
            aload 0 /* noIdenticalPoints */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* rval */
        start local 5 // java.util.List rval
         5: .line 596
            aload 4 /* resultPath */
            aload 5 /* rval */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath.fillInList:(Ljava/util/List;)V
         6: .line 597
            aload 5 /* rval */
            areturn
        end local 5 // java.util.List rval
        end local 4 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath resultPath
         7: .line 590
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* noIdenticalPoints */
            invokeinterface java.util.List.size:()I
            if_icmplt 2
        end local 3 // int i
         9: .line 601
            aconst_null
            areturn
        end local 1 // double leniencyValue
        end local 0 // java.util.List noIdenticalPoints
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0  noIdenticalPoints  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            0   10     1      leniencyValue  D
            1    9     3                  i  I
            3    7     4         resultPath  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$SafePath;
            5    7     5               rval  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
    Signature: (Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;D)Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
    MethodParameters:
                   Name  Flags
      noIdenticalPoints  final
      leniencyValue      final

  private static org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath findSafePath(java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>, int, double);
    descriptor: (Ljava/util/List;ID)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$SafePath;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // java.util.List points
        start local 1 // int startIndex
        start local 2 // double leniencyValue
         0: .line 614
            aconst_null
            astore 4 /* safePath */
        start local 4 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath safePath
         1: .line 615
            iload 1 /* startIndex */
            istore 5 /* i */
        start local 5 // int i
         2: goto 26
         3: .line 617
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath int
      StackMap stack:
            iload 5 /* i */
            iconst_1
            isub
            aload 0 /* points */
            invokeinterface java.util.List.size:()I
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.getLegalIndex:(II)I
            istore 6 /* startPointIndex */
        start local 6 // int startPointIndex
         4: .line 618
            aload 0 /* points */
            iload 6 /* startPointIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 7 /* startPoint */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPoint startPoint
         5: .line 620
            iload 5 /* i */
            aload 0 /* points */
            invokeinterface java.util.List.size:()I
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.getLegalIndex:(II)I
            istore 8 /* endPointIndex */
        start local 8 // int endPointIndex
         6: .line 621
            aload 0 /* points */
            iload 8 /* endPointIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 9 /* endPoint */
        start local 9 // org.apache.lucene.spatial3d.geom.GeoPoint endPoint
         7: .line 623
            aload 7 /* startPoint */
            aload 9 /* endPoint */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.isNumericallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 9
         8: .line 625
            goto 25
         9: .line 630
      StackMap locals: java.util.List int double org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath int int org.apache.lucene.spatial3d.geom.GeoPoint int org.apache.lucene.spatial3d.geom.GeoPoint
      StackMap stack:
            iload 8 /* endPointIndex */
            iconst_1
            iadd
            aload 0 /* points */
            invokeinterface java.util.List.size:()I
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.getLegalIndex:(II)I
            istore 10 /* nextPointIndex */
        start local 10 // int nextPointIndex
        10: .line 631
            aload 0 /* points */
            iload 10 /* nextPointIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 11 /* nextPoint */
        start local 11 // org.apache.lucene.spatial3d.geom.GeoPoint nextPoint
        11: .line 632
            aload 7 /* startPoint */
            aload 11 /* nextPoint */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.isNumericallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 13
        12: .line 634
            aconst_null
            areturn
        13: .line 636
      StackMap locals: int org.apache.lucene.spatial3d.geom.GeoPoint
      StackMap stack:
            aload 7 /* startPoint */
            aload 9 /* endPoint */
            aload 11 /* nextPoint */
            invokestatic org.apache.lucene.spatial3d.geom.Plane.arePointsCoplanar:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifne 15
        14: .line 638
            goto 21
        15: .line 640
      StackMap locals:
      StackMap stack:
            iload 8 /* endPointIndex */
            iload 1 /* startIndex */
            if_icmpne 17
        16: .line 642
            aconst_null
            areturn
        17: .line 645
      StackMap locals:
      StackMap stack:
            iload 10 /* nextPointIndex */
            istore 8 /* endPointIndex */
        18: .line 646
            aload 11 /* nextPoint */
            astore 9 /* endPoint */
        19: .line 647
            iinc 5 /* i */ 1
        end local 11 // org.apache.lucene.spatial3d.geom.GeoPoint nextPoint
        end local 10 // int nextPointIndex
        20: .line 629
            goto 9
        21: .line 650
      StackMap locals:
      StackMap stack:
            aload 4 /* safePath */
            ifnull 23
            iload 8 /* endPointIndex */
            iload 1 /* startIndex */
            if_icmpne 23
        22: .line 653
            goto 27
        23: .line 656
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.Plane
            dup
            aload 7 /* startPoint */
            aload 9 /* endPoint */
            invokespecial org.apache.lucene.spatial3d.geom.Plane.<init>:(Lorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;)V
            astore 10 /* currentPlane */
        start local 10 // org.apache.lucene.spatial3d.geom.Plane currentPlane
        24: .line 657
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath
            dup
            aload 4 /* safePath */
            aload 9 /* endPoint */
            iload 8 /* endPointIndex */
            aload 10 /* currentPlane */
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath.<init>:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$SafePath;Lorg/apache/lucene/spatial3d/geom/GeoPoint;ILorg/apache/lucene/spatial3d/geom/Plane;)V
            astore 4 /* safePath */
        end local 10 // org.apache.lucene.spatial3d.geom.Plane currentPlane
        end local 9 // org.apache.lucene.spatial3d.geom.GeoPoint endPoint
        end local 8 // int endPointIndex
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPoint startPoint
        end local 6 // int startPointIndex
        25: .line 615
      StackMap locals: java.util.List int double org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath int
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 5 /* i */
            iload 1 /* startIndex */
            aload 0 /* points */
            invokeinterface java.util.List.size:()I
            iadd
            if_icmplt 3
        end local 5 // int i
        27: .line 659
      StackMap locals:
      StackMap stack:
            aload 4 /* safePath */
            areturn
        end local 4 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath safePath
        end local 2 // double leniencyValue
        end local 1 // int startIndex
        end local 0 // java.util.List points
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0           points  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            0   28     1       startIndex  I
            0   28     2    leniencyValue  D
            1   28     4         safePath  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$SafePath;
            2   27     5                i  I
            4   25     6  startPointIndex  I
            5   25     7       startPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            6   25     8    endPointIndex  I
            7   25     9         endPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           10   20    10   nextPointIndex  I
           11   20    11        nextPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           24   25    10     currentPlane  Lorg/apache/lucene/spatial3d/geom/Plane;
    Signature: (Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;ID)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$SafePath;
    MethodParameters:
               Name  Flags
      points         final
      startIndex     final
      leniencyValue  final

  private static org.apache.lucene.spatial3d.geom.GeoPoint pickPole(java.util.Random, org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>);
    descriptor: (Ljava/util/Random;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=41, args_size=3
        start local 0 // java.util.Random generator
        start local 1 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 2 // java.util.List points
         0: .line 669
            aload 0 /* generator */
            aload 2 /* points */
            invokeinterface java.util.List.size:()I
            invokevirtual java.util.Random.nextInt:(I)I
            istore 3 /* pointIndex */
        start local 3 // int pointIndex
         1: .line 670
            aload 2 /* points */
            iload 3 /* pointIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 4 /* closePoint */
        start local 4 // org.apache.lucene.spatial3d.geom.GeoPoint closePoint
         2: .line 672
            aload 0 /* generator */
            invokevirtual java.util.Random.nextDouble:()D
            ldc 3.141592653589793
            dmul
            ldc 2.0
            dmul
            ldc 3.141592653589793
            dsub
            dstore 5 /* angle */
        start local 5 // double angle
         3: .line 673
            aload 2 /* points */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            aload 2 /* points */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.Vector
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.arcDistance:(Lorg/apache/lucene/spatial3d/geom/Vector;)D
            dstore 7 /* maxArcDistance */
        start local 7 // double maxArcDistance
         4: .line 674
            aload 2 /* points */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            aload 2 /* points */
            iconst_2
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.Vector
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.arcDistance:(Lorg/apache/lucene/spatial3d/geom/Vector;)D
            dstore 9 /* trialArcDistance */
        start local 9 // double trialArcDistance
         5: .line 675
            dload 9 /* trialArcDistance */
            dload 7 /* maxArcDistance */
            dcmpl
            ifle 7
         6: .line 676
            dload 9 /* trialArcDistance */
            dstore 7 /* maxArcDistance */
         7: .line 678
      StackMap locals: java.util.Random org.apache.lucene.spatial3d.geom.PlanetModel java.util.List int org.apache.lucene.spatial3d.geom.GeoPoint double double double
      StackMap stack:
            dload 7 /* maxArcDistance */
            aload 0 /* generator */
            invokevirtual java.util.Random.nextDouble:()D
            dload 7 /* maxArcDistance */
            dmul
            dsub
            dstore 11 /* arcDistance */
        start local 11 // double arcDistance
         8: .line 680
            dload 11 /* arcDistance */
            invokestatic java.lang.Math.cos:(D)D
            dstore 13 /* x */
        start local 13 // double x
         9: .line 681
            dload 11 /* arcDistance */
            invokestatic java.lang.Math.sin:(D)D
            dstore 15 /* sinArcDistance */
        start local 15 // double sinArcDistance
        10: .line 682
            dload 5 /* angle */
            invokestatic java.lang.Math.cos:(D)D
            dload 15 /* sinArcDistance */
            dmul
            dstore 17 /* y */
        start local 17 // double y
        11: .line 683
            dload 5 /* angle */
            invokestatic java.lang.Math.sin:(D)D
            dload 15 /* sinArcDistance */
            dmul
            dstore 19 /* z */
        start local 19 // double z
        12: .line 685
            aload 4 /* closePoint */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.getLatitude:()D
            invokestatic java.lang.Math.sin:(D)D
            dstore 21 /* sinLatitude */
        start local 21 // double sinLatitude
        13: .line 686
            aload 4 /* closePoint */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.getLatitude:()D
            invokestatic java.lang.Math.cos:(D)D
            dstore 23 /* cosLatitude */
        start local 23 // double cosLatitude
        14: .line 687
            aload 4 /* closePoint */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.getLongitude:()D
            invokestatic java.lang.Math.sin:(D)D
            dstore 25 /* sinLongitude */
        start local 25 // double sinLongitude
        15: .line 688
            aload 4 /* closePoint */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.getLongitude:()D
            invokestatic java.lang.Math.cos:(D)D
            dstore 27 /* cosLongitude */
        start local 27 // double cosLongitude
        16: .line 709
            dload 13 /* x */
            dload 23 /* cosLatitude */
            dmul
            dload 19 /* z */
            dload 21 /* sinLatitude */
            dmul
            dsub
            dstore 29 /* x1 */
        start local 29 // double x1
        17: .line 710
            dload 17 /* y */
            dstore 31 /* y1 */
        start local 31 // double y1
        18: .line 711
            dload 13 /* x */
            dload 21 /* sinLatitude */
            dmul
            dload 19 /* z */
            dload 23 /* cosLatitude */
            dmul
            dadd
            dstore 33 /* z1 */
        start local 33 // double z1
        19: .line 712
            dload 29 /* x1 */
            dload 27 /* cosLongitude */
            dmul
            dload 31 /* y1 */
            dload 25 /* sinLongitude */
            dmul
            dsub
            dstore 35 /* x2 */
        start local 35 // double x2
        20: .line 713
            dload 29 /* x1 */
            dload 25 /* sinLongitude */
            dmul
            dload 31 /* y1 */
            dload 27 /* cosLongitude */
            dmul
            dadd
            dstore 37 /* y2 */
        start local 37 // double y2
        21: .line 714
            dload 33 /* z1 */
            dstore 39 /* z2 */
        start local 39 // double z2
        22: .line 716
            aload 1 /* planetModel */
            dload 35 /* x2 */
            dload 37 /* y2 */
            dload 39 /* z2 */
            invokevirtual org.apache.lucene.spatial3d.geom.PlanetModel.createSurfacePoint:(DDD)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            areturn
        end local 39 // double z2
        end local 37 // double y2
        end local 35 // double x2
        end local 33 // double z1
        end local 31 // double y1
        end local 29 // double x1
        end local 27 // double cosLongitude
        end local 25 // double sinLongitude
        end local 23 // double cosLatitude
        end local 21 // double sinLatitude
        end local 19 // double z
        end local 17 // double y
        end local 15 // double sinArcDistance
        end local 13 // double x
        end local 11 // double arcDistance
        end local 9 // double trialArcDistance
        end local 7 // double maxArcDistance
        end local 5 // double angle
        end local 4 // org.apache.lucene.spatial3d.geom.GeoPoint closePoint
        end local 3 // int pointIndex
        end local 2 // java.util.List points
        end local 1 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        end local 0 // java.util.Random generator
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   23     0         generator  Ljava/util/Random;
            0   23     1       planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0   23     2            points  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            1   23     3        pointIndex  I
            2   23     4        closePoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            3   23     5             angle  D
            4   23     7    maxArcDistance  D
            5   23     9  trialArcDistance  D
            8   23    11       arcDistance  D
            9   23    13                 x  D
           10   23    15    sinArcDistance  D
           11   23    17                 y  D
           12   23    19                 z  D
           13   23    21       sinLatitude  D
           14   23    23       cosLatitude  D
           15   23    25      sinLongitude  D
           16   23    27      cosLongitude  D
           17   23    29                x1  D
           18   23    31                y1  D
           19   23    33                z1  D
           20   23    35                x2  D
           21   23    37                y2  D
           22   23    39                z2  D
    Signature: (Ljava/util/Random;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;)Lorg/apache/lucene/spatial3d/geom/GeoPoint;
    MethodParameters:
             Name  Flags
      generator    final
      planetModel  final
      points       final

  private static java.lang.Boolean isInsidePolygon(org.apache.lucene.spatial3d.geom.GeoPoint, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/List;)Ljava/lang/Boolean;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=22, args_size=2
        start local 0 // org.apache.lucene.spatial3d.geom.GeoPoint point
        start local 1 // java.util.List polyPoints
         0: .line 728
            aload 0 /* point */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.getLatitude:()D
            dstore 2 /* latitude */
        start local 2 // double latitude
         1: .line 729
            aload 0 /* point */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPoint.getLongitude:()D
            dstore 4 /* longitude */
        start local 4 // double longitude
         2: .line 730
            dload 2 /* latitude */
            invokestatic java.lang.Math.sin:(D)D
            dstore 6 /* sinLatitude */
        start local 6 // double sinLatitude
         3: .line 731
            dload 2 /* latitude */
            invokestatic java.lang.Math.cos:(D)D
            dstore 8 /* cosLatitude */
        start local 8 // double cosLatitude
         4: .line 732
            dload 4 /* longitude */
            invokestatic java.lang.Math.sin:(D)D
            dstore 10 /* sinLongitude */
        start local 10 // double sinLongitude
         5: .line 733
            dload 4 /* longitude */
            invokestatic java.lang.Math.cos:(D)D
            dstore 12 /* cosLongitude */
        start local 12 // double cosLongitude
         6: .line 736
            dconst_0
            dstore 14 /* arcDistance */
        start local 14 // double arcDistance
         7: .line 737
            aconst_null
            astore 16 /* prevAngle */
        start local 16 // java.lang.Double prevAngle
         8: .line 739
            aload 1 /* polyPoints */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 23
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint java.util.List double double double double double double double java.lang.Double top java.util.Iterator
      StackMap stack:
         9: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            astore 17 /* polyPoint */
        start local 17 // org.apache.lucene.spatial3d.geom.GeoPoint polyPoint
        10: .line 740
            aload 17 /* polyPoint */
            dload 6 /* sinLatitude */
            dload 8 /* cosLatitude */
            dload 10 /* sinLongitude */
            dload 12 /* cosLongitude */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.computeAngle:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;DDDD)Ljava/lang/Double;
            astore 19 /* angle */
        start local 19 // java.lang.Double angle
        11: .line 741
            aload 19 /* angle */
            ifnonnull 13
        12: .line 742
            aconst_null
            areturn
        13: .line 745
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint java.util.List double double double double double double double java.lang.Double org.apache.lucene.spatial3d.geom.GeoPoint java.util.Iterator java.lang.Double
      StackMap stack:
            aload 16 /* prevAngle */
            ifnull 22
        14: .line 747
            aload 19 /* angle */
            invokevirtual java.lang.Double.doubleValue:()D
            aload 16 /* prevAngle */
            invokevirtual java.lang.Double.doubleValue:()D
            dsub
            dstore 20 /* angleDelta */
        start local 20 // double angleDelta
        15: .line 748
            dload 20 /* angleDelta */
            ldc -3.141592653589793
            dcmpg
            ifge 17
        16: .line 749
            dload 20 /* angleDelta */
            ldc 6.283185307179586
            dadd
            dstore 20 /* angleDelta */
        17: .line 751
      StackMap locals: double
      StackMap stack:
            dload 20 /* angleDelta */
            ldc 3.141592653589793
            dcmpl
            ifle 19
        18: .line 752
            dload 20 /* angleDelta */
            ldc 6.283185307179586
            dsub
            dstore 20 /* angleDelta */
        19: .line 754
      StackMap locals:
      StackMap stack:
            dload 20 /* angleDelta */
            ldc 3.141592653589793
            dsub
            invokestatic java.lang.Math.abs:(D)D
            ldc 3.141592653589793E-12
            dcmpg
            ifge 21
        20: .line 755
            aconst_null
            areturn
        21: .line 758
      StackMap locals:
      StackMap stack:
            dload 14 /* arcDistance */
            dload 20 /* angleDelta */
            dadd
            dstore 14 /* arcDistance */
        end local 20 // double angleDelta
        22: .line 761
      StackMap locals:
      StackMap stack:
            aload 19 /* angle */
            astore 16 /* prevAngle */
        end local 19 // java.lang.Double angle
        end local 17 // org.apache.lucene.spatial3d.geom.GeoPoint polyPoint
        23: .line 739
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint java.util.List double double double double double double double java.lang.Double top java.util.Iterator
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        24: .line 763
            aload 16 /* prevAngle */
            ifnull 36
        25: .line 764
            aload 1 /* polyPoints */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPoint
            dload 6 /* sinLatitude */
            dload 8 /* cosLatitude */
            dload 10 /* sinLongitude */
            dload 12 /* cosLongitude */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.computeAngle:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;DDDD)Ljava/lang/Double;
            astore 17 /* lastAngle */
        start local 17 // java.lang.Double lastAngle
        26: .line 765
            aload 17 /* lastAngle */
            ifnonnull 28
        27: .line 766
            aconst_null
            areturn
        28: .line 770
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint java.util.List double double double double double double double java.lang.Double java.lang.Double
      StackMap stack:
            aload 17 /* lastAngle */
            invokevirtual java.lang.Double.doubleValue:()D
            aload 16 /* prevAngle */
            invokevirtual java.lang.Double.doubleValue:()D
            dsub
            dstore 18 /* angleDelta */
        start local 18 // double angleDelta
        29: .line 771
            dload 18 /* angleDelta */
            ldc -3.141592653589793
            dcmpg
            ifge 31
        30: .line 772
            dload 18 /* angleDelta */
            ldc 6.283185307179586
            dadd
            dstore 18 /* angleDelta */
        31: .line 774
      StackMap locals: double
      StackMap stack:
            dload 18 /* angleDelta */
            ldc 3.141592653589793
            dcmpl
            ifle 33
        32: .line 775
            dload 18 /* angleDelta */
            ldc 6.283185307179586
            dsub
            dstore 18 /* angleDelta */
        33: .line 777
      StackMap locals:
      StackMap stack:
            dload 18 /* angleDelta */
            ldc 3.141592653589793
            dsub
            invokestatic java.lang.Math.abs:(D)D
            ldc 3.141592653589793E-12
            dcmpg
            ifge 35
        34: .line 778
            aconst_null
            areturn
        35: .line 781
      StackMap locals:
      StackMap stack:
            dload 14 /* arcDistance */
            dload 18 /* angleDelta */
            dadd
            dstore 14 /* arcDistance */
        end local 18 // double angleDelta
        end local 17 // java.lang.Double lastAngle
        36: .line 787
      StackMap locals:
      StackMap stack:
            dload 14 /* arcDistance */
            invokestatic java.lang.Math.abs:(D)D
            ldc 3.141592653589793E-12
            dcmpg
            ifge 38
        37: .line 789
            aconst_null
            areturn
        38: .line 791
      StackMap locals:
      StackMap stack:
            dload 14 /* arcDistance */
            dconst_0
            dcmpl
            ifle 39
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      StackMap locals:
      StackMap stack:
        39: iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 16 // java.lang.Double prevAngle
        end local 14 // double arcDistance
        end local 12 // double cosLongitude
        end local 10 // double sinLongitude
        end local 8 // double cosLatitude
        end local 6 // double sinLatitude
        end local 4 // double longitude
        end local 2 // double latitude
        end local 1 // java.util.List polyPoints
        end local 0 // org.apache.lucene.spatial3d.geom.GeoPoint point
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   40     0         point  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            0   40     1    polyPoints  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            1   40     2      latitude  D
            2   40     4     longitude  D
            3   40     6   sinLatitude  D
            4   40     8   cosLatitude  D
            5   40    10  sinLongitude  D
            6   40    12  cosLongitude  D
            7   40    14   arcDistance  D
            8   40    16     prevAngle  Ljava/lang/Double;
           10   23    17     polyPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           11   23    19         angle  Ljava/lang/Double;
           15   22    20    angleDelta  D
           26   36    17     lastAngle  Ljava/lang/Double;
           29   36    18    angleDelta  D
    Signature: (Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;)Ljava/lang/Boolean;
    MethodParameters:
            Name  Flags
      point       final
      polyPoints  final

  private static java.lang.Double computeAngle(org.apache.lucene.spatial3d.geom.GeoPoint, double, double, double, double);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/GeoPoint;DDDD)Ljava/lang/Double;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=19, args_size=5
        start local 0 // org.apache.lucene.spatial3d.geom.GeoPoint point
        start local 1 // double sinLatitude
        start local 3 // double cosLatitude
        start local 5 // double sinLongitude
        start local 7 // double cosLongitude
         0: .line 822
            aload 0 /* point */
            getfield org.apache.lucene.spatial3d.geom.GeoPoint.x:D
            dload 7 /* cosLongitude */
            dmul
            aload 0 /* point */
            getfield org.apache.lucene.spatial3d.geom.GeoPoint.y:D
            dload 5 /* sinLongitude */
            dmul
            dadd
            dstore 9 /* x1 */
        start local 9 // double x1
         1: .line 823
            aload 0 /* point */
            getfield org.apache.lucene.spatial3d.geom.GeoPoint.x:D
            dneg
            dload 5 /* sinLongitude */
            dmul
            aload 0 /* point */
            getfield org.apache.lucene.spatial3d.geom.GeoPoint.y:D
            dload 7 /* cosLongitude */
            dmul
            dadd
            dstore 11 /* y1 */
        start local 11 // double y1
         2: .line 824
            aload 0 /* point */
            getfield org.apache.lucene.spatial3d.geom.GeoPoint.z:D
            dstore 13 /* z1 */
        start local 13 // double z1
         3: .line 827
            dload 11 /* y1 */
            dstore 15 /* y2 */
        start local 15 // double y2
         4: .line 828
            dload 9 /* x1 */
            dneg
            dload 1 /* sinLatitude */
            dmul
            dload 13 /* z1 */
            dload 3 /* cosLatitude */
            dmul
            dadd
            dstore 17 /* z2 */
        start local 17 // double z2
         5: .line 832
            dload 15 /* y2 */
            dload 15 /* y2 */
            dmul
            dload 17 /* z2 */
            dload 17 /* z2 */
            dmul
            dadd
            invokestatic java.lang.Math.sqrt:(D)D
            ldc 1.0E-12
            dcmpg
            ifge 7
         6: .line 833
            aconst_null
            areturn
         7: .line 836
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint double double double double double double double double double
      StackMap stack:
            dload 17 /* z2 */
            dload 15 /* y2 */
            invokestatic java.lang.Math.atan2:(DD)D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            areturn
        end local 17 // double z2
        end local 15 // double y2
        end local 13 // double z1
        end local 11 // double y1
        end local 9 // double x1
        end local 7 // double cosLongitude
        end local 5 // double sinLongitude
        end local 3 // double cosLatitude
        end local 1 // double sinLatitude
        end local 0 // org.apache.lucene.spatial3d.geom.GeoPoint point
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0         point  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            0    8     1   sinLatitude  D
            0    8     3   cosLatitude  D
            0    8     5  sinLongitude  D
            0    8     7  cosLongitude  D
            1    8     9            x1  D
            2    8    11            y1  D
            3    8    13            z1  D
            4    8    15            y2  D
            5    8    17            z2  D
    MethodParameters:
              Name  Flags
      point         final
      sinLatitude   final
      cosLatitude   final
      sinLongitude  final
      cosLongitude  final

  static boolean buildPolygonShape(org.apache.lucene.spatial3d.geom.GeoCompositePolygon, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean, org.apache.lucene.spatial3d.geom.PlanetModel, java.util.List<org.apache.lucene.spatial3d.geom.GeoPoint>, java.util.BitSet, int, int, org.apache.lucene.spatial3d.geom.SidedPlane, java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygon>, org.apache.lucene.spatial3d.geom.GeoPoint);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/BitSet;IILorg/apache/lucene/spatial3d/geom/SidedPlane;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=13, locals=29, args_size=10
        start local 0 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon rval
        start local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean seenConcave
        start local 2 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 3 // java.util.List pointsList
        start local 4 // java.util.BitSet internalEdges
        start local 5 // int startPointIndex
        start local 6 // int endPointIndex
        start local 7 // org.apache.lucene.spatial3d.geom.SidedPlane startingEdge
        start local 8 // java.util.List holes
        start local 9 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
         0: .line 886
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer
            dup
            aload 3 /* pointsList */
            aload 4 /* internalEdges */
            iload 5 /* startPointIndex */
            iload 6 /* endPointIndex */
            aload 7 /* startingEdge */
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.<init>:(Ljava/util/List;Ljava/util/BitSet;IILorg/apache/lucene/spatial3d/geom/SidedPlane;)V
            astore 10 /* edgeBuffer */
        start local 10 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer edgeBuffer
         1: .line 952
            aload 10 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.pickOne:()Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 11 /* stoppingPoint */
        start local 11 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge stoppingPoint
         2: .line 954
            aload 11 /* stoppingPoint */
            astore 12 /* currentEdge */
        start local 12 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge currentEdge
         3: .line 961
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            aload 12 /* currentEdge */
            ifnonnull 5
         4: .line 963
            goto 14
         5: .line 967
      StackMap locals:
      StackMap stack:
            aload 2 /* planetModel */
            aload 12 /* currentEdge */
            aload 0 /* rval */
            aload 10 /* edgeBuffer */
            aload 8 /* holes */
            aload 9 /* testPoint */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.findConvexPolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$EdgeBuffer;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Ljava/lang/Boolean;
            astore 13 /* foundIt */
        start local 13 // java.lang.Boolean foundIt
         6: .line 968
            aload 13 /* foundIt */
            ifnonnull 8
         7: .line 969
            iconst_0
            ireturn
         8: .line 972
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 13 /* foundIt */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 12
         9: .line 974
            aload 10 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.pickOne:()Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 11 /* stoppingPoint */
        10: .line 975
            aload 11 /* stoppingPoint */
            astore 12 /* currentEdge */
        11: .line 977
            goto 3
        12: .line 981
      StackMap locals:
      StackMap stack:
            aload 10 /* edgeBuffer */
            aload 12 /* currentEdge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getNext:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 12 /* currentEdge */
        13: .line 982
            aload 12 /* currentEdge */
            aload 11 /* stoppingPoint */
            if_acmpne 3
        end local 13 // java.lang.Boolean foundIt
        14: .line 1006
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* foundBadEdge */
        start local 13 // boolean foundBadEdge
        15: .line 1007
            aload 10 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.iterator:()Ljava/util/Iterator;
            astore 14 /* checkIterator */
        start local 14 // java.util.Iterator checkIterator
        16: .line 1008
            goto 95
        17: .line 1009
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 14 /* checkIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
            astore 15 /* checkEdge */
        start local 15 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge checkEdge
        18: .line 1010
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/SidedPlane;)V
            astore 16 /* flippedPlane */
        start local 16 // org.apache.lucene.spatial3d.geom.SidedPlane flippedPlane
        19: .line 1012
            aload 10 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.iterator:()Ljava/util/Iterator;
            astore 17 /* confirmIterator */
        start local 17 // java.util.Iterator confirmIterator
        20: .line 1013
            goto 94
        21: .line 1014
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.SidedPlane java.util.Iterator
      StackMap stack:
            aload 17 /* confirmIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
            astore 18 /* confirmEdge */
        start local 18 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge confirmEdge
        22: .line 1015
            aload 18 /* confirmEdge */
            aload 15 /* checkEdge */
            if_acmpne 24
        23: .line 1016
            goto 94
        24: .line 1020
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 18 /* confirmEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 27
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 18 /* confirmEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 27
            aload 16 /* flippedPlane */
            aload 18 /* confirmEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 27
        25: .line 1021
            aload 18 /* confirmEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 19 /* thePoint */
        start local 19 // org.apache.lucene.spatial3d.geom.GeoPoint thePoint
        26: .line 1022
            goto 31
        end local 19 // org.apache.lucene.spatial3d.geom.GeoPoint thePoint
      StackMap locals:
      StackMap stack:
        27: aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 18 /* confirmEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 30
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 18 /* confirmEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 30
            aload 16 /* flippedPlane */
            aload 18 /* confirmEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 30
        28: .line 1023
            aload 18 /* confirmEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            astore 19 /* thePoint */
        start local 19 // org.apache.lucene.spatial3d.geom.GeoPoint thePoint
        29: .line 1024
            goto 31
        end local 19 // org.apache.lucene.spatial3d.geom.GeoPoint thePoint
        30: .line 1025
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 19 /* thePoint */
        start local 19 // org.apache.lucene.spatial3d.geom.GeoPoint thePoint
        31: .line 1027
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint
      StackMap stack:
            aload 19 /* thePoint */
            ifnull 94
        32: .line 1029
            iconst_1
            istore 13 /* foundBadEdge */
        33: .line 1042
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 19 /* thePoint */
            invokestatic org.apache.lucene.spatial3d.geom.Plane.arePointsCoplanar:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifeq 35
        34: .line 1044
            goto 94
        35: .line 1046
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_3
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 20 /* thirdPartPoints */
        start local 20 // java.util.List thirdPartPoints
        36: .line 1047
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 21 /* thirdPartInternal */
        start local 21 // java.util.BitSet thirdPartInternal
        37: .line 1048
            aload 20 /* thirdPartPoints */
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        38: .line 1049
            aload 21 /* thirdPartInternal */
            iconst_0
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.isInternal:Z
            invokevirtual java.util.BitSet.set:(IZ)V
        39: .line 1050
            aload 20 /* thirdPartPoints */
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        40: .line 1051
            aload 21 /* thirdPartInternal */
            iconst_1
            iconst_1
            invokevirtual java.util.BitSet.set:(IZ)V
        41: .line 1052
            aload 20 /* thirdPartPoints */
            aload 19 /* thePoint */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        42: .line 1053
            getstatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.$assertionsDisabled:Z
            ifne 43
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 19 /* thePoint */
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 43
            new java.lang.AssertionError
            dup
            ldc "Point was on wrong side of complementary plane, so must be on the right side of the non-complementary plane!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        43: .line 1055
      StackMap locals: java.util.List java.util.BitSet
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.GeoConvexPolygon
            dup
            aload 2 /* planetModel */
            aload 20 /* thirdPartPoints */
            aload 8 /* holes */
            aload 21 /* thirdPartInternal */
            iconst_1
            invokespecial org.apache.lucene.spatial3d.geom.GeoConvexPolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Ljava/util/BitSet;Z)V
            astore 22 /* convexPart */
        start local 22 // org.apache.lucene.spatial3d.geom.GeoPolygon convexPart
        44: .line 1057
            aload 0 /* rval */
            aload 22 /* convexPart */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoCompositePolygon.addShape:(Lorg/apache/lucene/spatial3d/geom/GeoShape;)V
        45: .line 1061
            aload 10 /* edgeBuffer */
            aload 15 /* checkEdge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getPrevious:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 23 /* loopEdge */
        start local 23 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge loopEdge
        46: .line 1062
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 24 /* firstPartPoints */
        start local 24 // java.util.List firstPartPoints
        47: .line 1063
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 25 /* firstPartInternal */
        start local 25 // java.util.BitSet firstPartInternal
        48: .line 1064
            iconst_0
            istore 26 /* i */
        start local 26 // int i
        49: .line 1066
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean org.apache.lucene.spatial3d.geom.PlanetModel java.util.List java.util.BitSet int int org.apache.lucene.spatial3d.geom.SidedPlane java.util.List org.apache.lucene.spatial3d.geom.GeoPoint org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge int java.util.Iterator org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.SidedPlane java.util.Iterator org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPoint java.util.List java.util.BitSet org.apache.lucene.spatial3d.geom.GeoPolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge java.util.List java.util.BitSet int
      StackMap stack:
            aload 24 /* firstPartPoints */
            aload 23 /* loopEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        50: .line 1067
            aload 23 /* loopEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 19 /* thePoint */
            if_acmpne 52
        51: .line 1068
            goto 55
        52: .line 1070
      StackMap locals:
      StackMap stack:
            aload 25 /* firstPartInternal */
            iload 26 /* i */
            iinc 26 /* i */ 1
            aload 23 /* loopEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.isInternal:Z
            invokevirtual java.util.BitSet.set:(IZ)V
        53: .line 1071
            aload 10 /* edgeBuffer */
            aload 23 /* loopEdge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getPrevious:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 23 /* loopEdge */
        54: .line 1065
            goto 49
        55: .line 1073
      StackMap locals:
      StackMap stack:
            aload 25 /* firstPartInternal */
            iload 26 /* i */
            iconst_1
            invokevirtual java.util.BitSet.set:(IZ)V
        56: .line 1075
            aload 0 /* rval */
        57: .line 1076
            aload 1 /* seenConcave */
        58: .line 1077
            aload 2 /* planetModel */
        59: .line 1078
            aload 24 /* firstPartPoints */
        60: .line 1079
            aload 25 /* firstPartInternal */
        61: .line 1080
            aload 24 /* firstPartPoints */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
        62: .line 1081
            iconst_0
        63: .line 1082
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            iconst_0
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 19 /* thePoint */
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/Vector;ZLorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;)V
        64: .line 1083
            aload 8 /* holes */
        65: .line 1084
            aload 9 /* testPoint */
        66: .line 1075
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.buildPolygonShape:(Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/BitSet;IILorg/apache/lucene/spatial3d/geom/SidedPlane;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
        67: .line 1084
            ifne 69
        68: .line 1085
            iconst_0
            ireturn
        69: .line 1089
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 27 /* secondPartPoints */
        start local 27 // java.util.List secondPartPoints
        70: .line 1090
            new java.util.BitSet
            dup
            invokespecial java.util.BitSet.<init>:()V
            astore 28 /* secondPartInternal */
        start local 28 // java.util.BitSet secondPartInternal
        71: .line 1091
            aload 10 /* edgeBuffer */
            aload 15 /* checkEdge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getNext:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 23 /* loopEdge */
        72: .line 1092
            iconst_0
            istore 26 /* i */
        73: .line 1094
      StackMap locals: java.util.List java.util.BitSet
      StackMap stack:
            aload 27 /* secondPartPoints */
            aload 23 /* loopEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        74: .line 1095
            aload 23 /* loopEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 19 /* thePoint */
            if_acmpne 76
        75: .line 1096
            goto 79
        76: .line 1098
      StackMap locals:
      StackMap stack:
            aload 28 /* secondPartInternal */
            iload 26 /* i */
            iinc 26 /* i */ 1
            aload 23 /* loopEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.isInternal:Z
            invokevirtual java.util.BitSet.set:(IZ)V
        77: .line 1099
            aload 10 /* edgeBuffer */
            aload 23 /* loopEdge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getNext:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 23 /* loopEdge */
        78: .line 1093
            goto 73
        79: .line 1101
      StackMap locals:
      StackMap stack:
            aload 28 /* secondPartInternal */
            iload 26 /* i */
            iconst_1
            invokevirtual java.util.BitSet.set:(IZ)V
        80: .line 1103
            aload 0 /* rval */
        81: .line 1104
            aload 1 /* seenConcave */
        82: .line 1105
            aload 2 /* planetModel */
        83: .line 1106
            aload 27 /* secondPartPoints */
        84: .line 1107
            aload 28 /* secondPartInternal */
        85: .line 1108
            aload 27 /* secondPartPoints */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
        86: .line 1109
            iconst_0
        87: .line 1110
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            iconst_0
            aload 15 /* checkEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 19 /* thePoint */
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/Vector;ZLorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;)V
        88: .line 1111
            aload 8 /* holes */
        89: .line 1112
            aload 9 /* testPoint */
        90: .line 1103
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.buildPolygonShape:(Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/BitSet;IILorg/apache/lucene/spatial3d/geom/SidedPlane;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
        91: .line 1112
            ifne 93
        92: .line 1113
            iconst_0
            ireturn
        93: .line 1117
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 28 // java.util.BitSet secondPartInternal
        end local 27 // java.util.List secondPartPoints
        end local 26 // int i
        end local 25 // java.util.BitSet firstPartInternal
        end local 24 // java.util.List firstPartPoints
        end local 23 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge loopEdge
        end local 22 // org.apache.lucene.spatial3d.geom.GeoPolygon convexPart
        end local 21 // java.util.BitSet thirdPartInternal
        end local 20 // java.util.List thirdPartPoints
        end local 19 // org.apache.lucene.spatial3d.geom.GeoPoint thePoint
        end local 18 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge confirmEdge
        94: .line 1013
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean org.apache.lucene.spatial3d.geom.PlanetModel java.util.List java.util.BitSet int int org.apache.lucene.spatial3d.geom.SidedPlane java.util.List org.apache.lucene.spatial3d.geom.GeoPoint org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge int java.util.Iterator org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.SidedPlane java.util.Iterator
      StackMap stack:
            aload 17 /* confirmIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        end local 17 // java.util.Iterator confirmIterator
        end local 16 // org.apache.lucene.spatial3d.geom.SidedPlane flippedPlane
        end local 15 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge checkEdge
        95: .line 1008
      StackMap locals:
      StackMap stack:
            aload 14 /* checkIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        96: .line 1122
            iload 13 /* foundBadEdge */
            ifeq 98
        97: .line 1124
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
            dup
            ldc "Could not tile polygon; found a pathological coplanarity that couldn't be addressed"
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException.<init>:(Ljava/lang/String;)V
            athrow
        98: .line 1131
      StackMap locals:
      StackMap stack:
            aload 2 /* planetModel */
            aload 0 /* rval */
            aload 1 /* seenConcave */
            aload 10 /* edgeBuffer */
            aload 8 /* holes */
            aload 9 /* testPoint */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.makeConcavePolygon:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$EdgeBuffer;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifne 100
        99: .line 1132
            iconst_0
            ireturn
       100: .line 1134
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 14 // java.util.Iterator checkIterator
        end local 13 // boolean foundBadEdge
        end local 12 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge currentEdge
        end local 11 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge stoppingPoint
        end local 10 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer edgeBuffer
        end local 9 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
        end local 8 // java.util.List holes
        end local 7 // org.apache.lucene.spatial3d.geom.SidedPlane startingEdge
        end local 6 // int endPointIndex
        end local 5 // int startPointIndex
        end local 4 // java.util.BitSet internalEdges
        end local 3 // java.util.List pointsList
        end local 2 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        end local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean seenConcave
        end local 0 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon rval
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  101     0                rval  Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;
            0  101     1         seenConcave  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;
            0  101     2         planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0  101     3          pointsList  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            0  101     4       internalEdges  Ljava/util/BitSet;
            0  101     5     startPointIndex  I
            0  101     6       endPointIndex  I
            0  101     7        startingEdge  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            0  101     8               holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
            0  101     9           testPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            1  101    10          edgeBuffer  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$EdgeBuffer;
            2  101    11       stoppingPoint  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            3  101    12         currentEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            6   14    13             foundIt  Ljava/lang/Boolean;
           15  101    13        foundBadEdge  Z
           16  101    14       checkIterator  Ljava/util/Iterator<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;
           18   95    15           checkEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           19   95    16        flippedPlane  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
           20   95    17     confirmIterator  Ljava/util/Iterator<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;
           22   94    18         confirmEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           26   27    19            thePoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           29   30    19            thePoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           31   94    19            thePoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
           36   94    20     thirdPartPoints  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
           37   94    21   thirdPartInternal  Ljava/util/BitSet;
           44   94    22          convexPart  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
           46   94    23            loopEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           47   94    24     firstPartPoints  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
           48   94    25   firstPartInternal  Ljava/util/BitSet;
           49   94    26                   i  I
           70   94    27    secondPartPoints  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
           71   94    28  secondPartInternal  Ljava/util/BitSet;
    Exceptions:
      throws org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
    Signature: (Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;Ljava/util/BitSet;IILorg/apache/lucene/spatial3d/geom/SidedPlane;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
    MethodParameters:
                 Name  Flags
      rval             final
      seenConcave      final
      planetModel      final
      pointsList       final
      internalEdges    final
      startPointIndex  final
      endPointIndex    final
      startingEdge     final
      holes            final
      testPoint        final

  private static boolean makeConcavePolygon(org.apache.lucene.spatial3d.geom.PlanetModel, org.apache.lucene.spatial3d.geom.GeoCompositePolygon, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer, java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygon>, org.apache.lucene.spatial3d.geom.GeoPoint);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$EdgeBuffer;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=11, args_size=6
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon rval
        start local 2 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean seenConcave
        start local 3 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer edgeBuffer
        start local 4 // java.util.List holes
        start local 5 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
         0: .line 1154
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.size:()I
            ifne 2
         1: .line 1155
            iconst_1
            ireturn
         2: .line 1158
      StackMap locals:
      StackMap stack:
            aload 2 /* seenConcave */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean.value:Z
            ifeq 4
         3: .line 1159
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal polygon; polygon edges intersect each other"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1162
      StackMap locals:
      StackMap stack:
            aload 2 /* seenConcave */
            iconst_1
            putfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean.value:Z
         5: .line 1166
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.size:()I
            iconst_3
            if_icmpge 7
         6: .line 1169
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal polygon; polygon edges intersect each other"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1173
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* points */
        start local 6 // java.util.List points
         8: .line 1174
            new java.util.BitSet
            dup
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.size:()I
            iconst_1
            isub
            invokespecial java.util.BitSet.<init>:(I)V
            astore 7 /* internalEdges */
        start local 7 // java.util.BitSet internalEdges
         9: .line 1177
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.pickOne:()Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 8 /* edge */
        start local 8 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        10: .line 1178
            iconst_0
            istore 9 /* isInternal */
        start local 9 // boolean isInternal
        11: .line 1179
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        12: goto 20
        13: .line 1181
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.List java.util.BitSet org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge int int
      StackMap stack:
            aload 6 /* points */
            aload 8 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 1182
            iload 10 /* i */
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.size:()I
            iconst_1
            isub
            if_icmpge 17
        15: .line 1183
            aload 7 /* internalEdges */
            iload 10 /* i */
            aload 8 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.isInternal:Z
            invokevirtual java.util.BitSet.set:(IZ)V
        16: .line 1184
            goto 18
        17: .line 1185
      StackMap locals:
      StackMap stack:
            aload 8 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.isInternal:Z
            istore 9 /* isInternal */
        18: .line 1187
      StackMap locals:
      StackMap stack:
            aload 3 /* edgeBuffer */
            aload 8 /* edge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getNext:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 8 /* edge */
        19: .line 1179
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 10 /* i */
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.size:()I
            if_icmplt 13
        end local 10 // int i
        21: .line 1191
            aload 5 /* testPoint */
            ifnull 25
            aload 4 /* holes */
            ifnull 25
            aload 4 /* holes */
            invokeinterface java.util.List.size:()I
            ifle 25
        22: .line 1193
            new org.apache.lucene.spatial3d.geom.GeoConcavePolygon
            dup
            aload 0 /* planetModel */
            aload 6 /* points */
            aconst_null
            aload 7 /* internalEdges */
            iload 9 /* isInternal */
            invokespecial org.apache.lucene.spatial3d.geom.GeoConcavePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Ljava/util/BitSet;Z)V
            astore 10 /* testPolygon */
        start local 10 // org.apache.lucene.spatial3d.geom.GeoPolygon testPolygon
        23: .line 1194
            aload 10 /* testPolygon */
            aload 5 /* testPoint */
            invokeinterface org.apache.lucene.spatial3d.geom.GeoPolygon.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 25
        24: .line 1195
            iconst_0
            ireturn
        end local 10 // org.apache.lucene.spatial3d.geom.GeoPolygon testPolygon
        25: .line 1199
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.GeoConcavePolygon
            dup
            aload 0 /* planetModel */
            aload 6 /* points */
            aload 4 /* holes */
            aload 7 /* internalEdges */
            iload 9 /* isInternal */
            invokespecial org.apache.lucene.spatial3d.geom.GeoConcavePolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Ljava/util/BitSet;Z)V
            astore 10 /* realPolygon */
        start local 10 // org.apache.lucene.spatial3d.geom.GeoPolygon realPolygon
        26: .line 1200
            aload 5 /* testPoint */
            ifnull 29
            aload 4 /* holes */
            ifnull 27
            aload 4 /* holes */
            invokeinterface java.util.List.size:()I
            ifne 29
        27: .line 1201
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygon
      StackMap stack:
            aload 10 /* realPolygon */
            aload 5 /* testPoint */
            invokeinterface org.apache.lucene.spatial3d.geom.GeoPolygon.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 29
        28: .line 1202
            iconst_0
            ireturn
        29: .line 1206
      StackMap locals:
      StackMap stack:
            aload 1 /* rval */
            aload 10 /* realPolygon */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoCompositePolygon.addShape:(Lorg/apache/lucene/spatial3d/geom/GeoShape;)V
        30: .line 1207
            iconst_1
            ireturn
        end local 10 // org.apache.lucene.spatial3d.geom.GeoPolygon realPolygon
        31: .line 1208
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.List java.util.BitSet org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge int
      StackMap stack: java.lang.IllegalArgumentException
            astore 10 /* e */
        start local 10 // java.lang.IllegalArgumentException e
        32: .line 1209
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
            dup
            aload 10 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // java.lang.IllegalArgumentException e
        end local 9 // boolean isInternal
        end local 8 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        end local 7 // java.util.BitSet internalEdges
        end local 6 // java.util.List points
        end local 5 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
        end local 4 // java.util.List holes
        end local 3 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer edgeBuffer
        end local 2 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean seenConcave
        end local 1 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon rval
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   33     0    planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0   33     1           rval  Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;
            0   33     2    seenConcave  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;
            0   33     3     edgeBuffer  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$EdgeBuffer;
            0   33     4          holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
            0   33     5      testPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            8   33     6         points  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
            9   33     7  internalEdges  Ljava/util/BitSet;
           10   33     8           edge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           11   33     9     isInternal  Z
           12   21    10              i  I
           23   25    10    testPolygon  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
           26   31    10    realPolygon  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
           32   33    10              e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          21    24      31  Class java.lang.IllegalArgumentException
          25    28      31  Class java.lang.IllegalArgumentException
          29    30      31  Class java.lang.IllegalArgumentException
    Exceptions:
      throws org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$MutableBoolean;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$EdgeBuffer;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
    MethodParameters:
             Name  Flags
      planetModel  final
      rval         final
      seenConcave  final
      edgeBuffer   final
      holes        final
      testPoint    final

  private static java.lang.Boolean findConvexPolygon(org.apache.lucene.spatial3d.geom.PlanetModel, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge, org.apache.lucene.spatial3d.geom.GeoCompositePolygon, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer, java.util.List<org.apache.lucene.spatial3d.geom.GeoPolygon>, org.apache.lucene.spatial3d.geom.GeoPoint);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$EdgeBuffer;Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Ljava/lang/Boolean;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=17, args_size=6
        start local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
        start local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge currentEdge
        start local 2 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon rval
        start local 3 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer edgeBuffer
        start local 4 // java.util.List holes
        start local 5 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
         0: .line 1234
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* includedEdges */
        start local 6 // java.util.Set includedEdges
         1: .line 1235
            aload 6 /* includedEdges */
            aload 1 /* currentEdge */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 1236
            aload 1 /* currentEdge */
            astore 7 /* firstEdge */
        start local 7 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge firstEdge
         3: .line 1237
            aload 1 /* currentEdge */
            astore 8 /* lastEdge */
        start local 8 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge lastEdge
         4: .line 1241
      StackMap locals: java.util.Set org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpne 6
         5: .line 1242
            goto 37
         6: .line 1244
      StackMap locals:
      StackMap stack:
            aload 3 /* edgeBuffer */
            aload 8 /* lastEdge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getNext:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 9 /* newLastEdge */
        start local 9 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge newLastEdge
         7: .line 1245
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newLastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokestatic org.apache.lucene.spatial3d.geom.Plane.arePointsCoplanar:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifeq 9
         8: .line 1246
            goto 37
         9: .line 1250
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 9 /* newLastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isFunctionallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Plane;)Z
            ifeq 11
        10: .line 1251
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
            dup
            ldc "Two adjacent edge planes are effectively parallel despite filtering; give up on tiling"
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1253
      StackMap locals:
      StackMap stack:
            aload 9 /* newLastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 6 /* includedEdges */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isWithin:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set;)Z
            ifeq 37
        12: .line 1258
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newLastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 18
        13: .line 1259
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newLastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokestatic org.apache.lucene.spatial3d.geom.Plane.arePointsCoplanar:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifne 37
        14: .line 1260
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newLastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newLastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokestatic org.apache.lucene.spatial3d.geom.Plane.arePointsCoplanar:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifeq 16
        15: .line 1261
            goto 37
        16: .line 1263
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newLastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;)V
            astore 10 /* returnBoundary */
        start local 10 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
        17: .line 1264
            goto 19
        end local 10 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
        18: .line 1265
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 10 /* returnBoundary */
        start local 10 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
        19: .line 1269
      StackMap locals: org.apache.lucene.spatial3d.geom.SidedPlane
      StackMap stack:
            iconst_0
            istore 11 /* foundPointInside */
        start local 11 // boolean foundPointInside
        20: .line 1270
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.iterator:()Ljava/util/Iterator;
            astore 12 /* edgeIterator */
        start local 12 // java.util.Iterator edgeIterator
        21: .line 1271
            goto 32
        22: .line 1272
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 12 /* edgeIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
            astore 13 /* edge */
        start local 13 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        23: .line 1273
            aload 6 /* includedEdges */
            aload 13 /* edge */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 32
            aload 13 /* edge */
            aload 9 /* newLastEdge */
            if_acmpeq 32
        24: .line 1275
            aload 13 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newLastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 28
        25: .line 1277
            aload 13 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 6 /* includedEdges */
            aload 9 /* newLastEdge */
            aload 10 /* returnBoundary */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isWithin:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;Lorg/apache/lucene/spatial3d/geom/SidedPlane;)Z
            ifeq 28
        26: .line 1279
            iconst_1
            istore 11 /* foundPointInside */
        27: .line 1280
            goto 33
        28: .line 1283
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            aload 13 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 32
        29: .line 1285
            aload 13 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 6 /* includedEdges */
            aload 9 /* newLastEdge */
            aload 10 /* returnBoundary */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isWithin:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;Lorg/apache/lucene/spatial3d/geom/SidedPlane;)Z
            ifeq 32
        30: .line 1287
            iconst_1
            istore 11 /* foundPointInside */
        31: .line 1288
            goto 33
        end local 13 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        32: .line 1271
      StackMap locals:
      StackMap stack:
            aload 12 /* edgeIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        33: .line 1294
      StackMap locals:
      StackMap stack:
            iload 11 /* foundPointInside */
            ifne 37
        34: .line 1297
            aload 6 /* includedEdges */
            aload 9 /* newLastEdge */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        35: .line 1298
            aload 9 /* newLastEdge */
            astore 8 /* lastEdge */
        end local 12 // java.util.Iterator edgeIterator
        end local 11 // boolean foundPointInside
        end local 10 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
        end local 9 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge newLastEdge
        36: .line 1240
            goto 4
        37: .line 1309
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.Set org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpne 39
        38: .line 1310
            goto 70
        39: .line 1312
      StackMap locals:
      StackMap stack:
            aload 3 /* edgeBuffer */
            aload 7 /* firstEdge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getPrevious:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 9 /* newFirstEdge */
        start local 9 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge newFirstEdge
        40: .line 1313
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokestatic org.apache.lucene.spatial3d.geom.Plane.arePointsCoplanar:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifeq 42
        41: .line 1314
            goto 70
        42: .line 1318
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isFunctionallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Plane;)Z
            ifeq 44
        43: .line 1319
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
            dup
            ldc "Two adjacent edge planes are effectively parallel despite filtering; give up on tiling"
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException.<init>:(Ljava/lang/String;)V
            athrow
        44: .line 1321
      StackMap locals:
      StackMap stack:
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 6 /* includedEdges */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isWithin:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set;)Z
            ifeq 70
        45: .line 1326
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 51
        46: .line 1327
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokestatic org.apache.lucene.spatial3d.geom.Plane.arePointsCoplanar:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifne 70
        47: .line 1328
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokestatic org.apache.lucene.spatial3d.geom.Plane.arePointsCoplanar:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Z
            ifeq 49
        48: .line 1329
            goto 70
        49: .line 1331
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;)V
            astore 10 /* returnBoundary */
        start local 10 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
        50: .line 1332
            goto 52
        end local 10 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
        51: .line 1333
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 10 /* returnBoundary */
        start local 10 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
        52: .line 1337
      StackMap locals: org.apache.lucene.spatial3d.geom.SidedPlane
      StackMap stack:
            iconst_0
            istore 11 /* foundPointInside */
        start local 11 // boolean foundPointInside
        53: .line 1338
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.iterator:()Ljava/util/Iterator;
            astore 12 /* edgeIterator */
        start local 12 // java.util.Iterator edgeIterator
        54: .line 1339
            goto 65
        55: .line 1340
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 12 /* edgeIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
            astore 13 /* edge */
        start local 13 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        56: .line 1341
            aload 6 /* includedEdges */
            aload 13 /* edge */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 65
            aload 13 /* edge */
            aload 9 /* newFirstEdge */
            if_acmpeq 65
        57: .line 1343
            aload 13 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 61
        58: .line 1345
            aload 13 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 6 /* includedEdges */
            aload 9 /* newFirstEdge */
            aload 10 /* returnBoundary */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isWithin:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;Lorg/apache/lucene/spatial3d/geom/SidedPlane;)Z
            ifeq 61
        59: .line 1347
            iconst_1
            istore 11 /* foundPointInside */
        60: .line 1348
            goto 66
        61: .line 1351
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            aload 13 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 9 /* newFirstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpeq 65
        62: .line 1353
            aload 13 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 6 /* includedEdges */
            aload 9 /* newFirstEdge */
            aload 10 /* returnBoundary */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isWithin:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;Lorg/apache/lucene/spatial3d/geom/SidedPlane;)Z
            ifeq 65
        63: .line 1355
            iconst_1
            istore 11 /* foundPointInside */
        64: .line 1356
            goto 66
        end local 13 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        65: .line 1339
      StackMap locals:
      StackMap stack:
            aload 12 /* edgeIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        66: .line 1362
      StackMap locals:
      StackMap stack:
            iload 11 /* foundPointInside */
            ifne 70
        67: .line 1365
            aload 6 /* includedEdges */
            aload 9 /* newFirstEdge */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        68: .line 1366
            aload 9 /* newFirstEdge */
            astore 7 /* firstEdge */
        end local 12 // java.util.Iterator edgeIterator
        end local 11 // boolean foundPointInside
        end local 10 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
        end local 9 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge newFirstEdge
        69: .line 1308
            goto 37
        70: .line 1377
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.Set org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            aload 6 /* includedEdges */
            invokeinterface java.util.Set.size:()I
            iconst_2
            if_icmpge 72
        71: .line 1379
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        72: .line 1389
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 6 /* includedEdges */
            invokeinterface java.util.Set.size:()I
            iconst_1
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 9 /* points */
        start local 9 // java.util.List points
        73: .line 1390
            new java.util.BitSet
            dup
            aload 6 /* includedEdges */
            invokeinterface java.util.Set.size:()I
            invokespecial java.util.BitSet.<init>:(I)V
            astore 10 /* internalEdges */
        start local 10 // java.util.BitSet internalEdges
        74: .line 1393
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            if_acmpne 91
        75: .line 1395
            aload 6 /* includedEdges */
            invokeinterface java.util.Set.size:()I
            iconst_3
            if_icmpge 77
        76: .line 1398
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        77: .line 1401
      StackMap locals: java.util.List java.util.BitSet
      StackMap stack:
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isFunctionallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Plane;)Z
            ifeq 79
        78: .line 1402
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
            dup
            ldc "Two adjacent edge planes are effectively parallel despite filtering; give up on tiling"
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException.<init>:(Ljava/lang/String;)V
            athrow
        79: .line 1407
      StackMap locals:
      StackMap stack:
            aload 7 /* firstEdge */
            astore 12 /* edge */
        start local 12 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        80: .line 1408
            aload 9 /* points */
            aload 12 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        81: .line 1409
            iconst_0
            istore 13 /* k */
        start local 13 // int k
        82: .line 1411
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.Set org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge java.util.List java.util.BitSet top org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge int
      StackMap stack:
            aload 12 /* edge */
            aload 8 /* lastEdge */
            if_acmpne 84
        83: .line 1412
            goto 88
        84: .line 1414
      StackMap locals:
      StackMap stack:
            aload 9 /* points */
            aload 12 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        85: .line 1415
            aload 10 /* internalEdges */
            iload 13 /* k */
            iinc 13 /* k */ 1
            aload 12 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.isInternal:Z
            invokevirtual java.util.BitSet.set:(IZ)V
        86: .line 1416
            aload 3 /* edgeBuffer */
            aload 12 /* edge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getNext:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 12 /* edge */
        87: .line 1410
            goto 82
        88: .line 1418
      StackMap locals:
      StackMap stack:
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.isInternal:Z
            istore 11 /* returnIsInternal */
        start local 11 // boolean returnIsInternal
        89: .line 1419
            aload 3 /* edgeBuffer */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.clear:()V
        end local 13 // int k
        end local 12 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        90: .line 1420
            goto 109
        end local 11 // boolean returnIsInternal
        91: .line 1422
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.Set org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge java.util.List java.util.BitSet
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.SidedPlane
            dup
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            iconst_0
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokespecial org.apache.lucene.spatial3d.geom.SidedPlane.<init>:(Lorg/apache/lucene/spatial3d/geom/Vector;ZLorg/apache/lucene/spatial3d/geom/Vector;Lorg/apache/lucene/spatial3d/geom/Vector;)V
            astore 12 /* returnSidedPlane */
        start local 12 // org.apache.lucene.spatial3d.geom.SidedPlane returnSidedPlane
        92: .line 1423
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
            dup
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            aload 12 /* returnSidedPlane */
            iconst_1
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.<init>:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/GeoPoint;Lorg/apache/lucene/spatial3d/geom/SidedPlane;Z)V
            astore 13 /* returnEdge */
        start local 13 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge returnEdge
        93: .line 1424
            aload 13 /* returnEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 8 /* lastEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isFunctionallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Plane;)Z
            ifne 95
        94: .line 1425
            aload 13 /* returnEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 7 /* firstEdge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isFunctionallyIdentical:(Lorg/apache/lucene/spatial3d/geom/Plane;)Z
            ifeq 96
        95: .line 1426
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.Set org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge java.util.List java.util.BitSet top org.apache.lucene.spatial3d.geom.SidedPlane org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
            dup
            ldc "Two adjacent edge planes are effectively parallel despite filtering; give up on tiling"
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException.<init>:(Ljava/lang/String;)V
            athrow
        96: .line 1429
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 6 /* includedEdges */
            invokeinterface java.util.Set.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 14 /* edges */
        start local 14 // java.util.List edges
        97: .line 1430
            iconst_1
            istore 11 /* returnIsInternal */
        start local 11 // boolean returnIsInternal
        98: .line 1434
            aload 7 /* firstEdge */
            astore 15 /* edge */
        start local 15 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        99: .line 1435
            aload 9 /* points */
            aload 15 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.startPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       100: .line 1436
            iconst_0
            istore 16 /* k */
        start local 16 // int k
       101: .line 1438
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.Set org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge java.util.List java.util.BitSet int org.apache.lucene.spatial3d.geom.SidedPlane org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge java.util.List org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge int
      StackMap stack:
            aload 9 /* points */
            aload 15 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.endPoint:Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       102: .line 1439
            aload 10 /* internalEdges */
            iload 16 /* k */
            iinc 16 /* k */ 1
            aload 15 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.isInternal:Z
            invokevirtual java.util.BitSet.set:(IZ)V
       103: .line 1440
            aload 14 /* edges */
            aload 15 /* edge */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       104: .line 1441
            aload 15 /* edge */
            aload 8 /* lastEdge */
            if_acmpne 106
       105: .line 1442
            goto 108
       106: .line 1444
      StackMap locals:
      StackMap stack:
            aload 3 /* edgeBuffer */
            aload 15 /* edge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.getNext:(Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            astore 15 /* edge */
       107: .line 1437
            goto 101
       108: .line 1447
      StackMap locals:
      StackMap stack:
            aload 3 /* edgeBuffer */
            aload 14 /* edges */
            aload 13 /* returnEdge */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer.replace:(Ljava/util/List;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;)V
        end local 16 // int k
        end local 15 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
        end local 14 // java.util.List edges
        end local 13 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge returnEdge
        end local 12 // org.apache.lucene.spatial3d.geom.SidedPlane returnSidedPlane
       109: .line 1453
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.Set org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge java.util.List java.util.BitSet int
      StackMap stack:
            aload 5 /* testPoint */
            ifnull 113
            aload 4 /* holes */
            ifnull 113
            aload 4 /* holes */
            invokeinterface java.util.List.size:()I
            ifle 113
       110: .line 1455
            new org.apache.lucene.spatial3d.geom.GeoConvexPolygon
            dup
            aload 0 /* planetModel */
            aload 9 /* points */
            aconst_null
            aload 10 /* internalEdges */
            iload 11 /* returnIsInternal */
            invokespecial org.apache.lucene.spatial3d.geom.GeoConvexPolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Ljava/util/BitSet;Z)V
            astore 12 /* testPolygon */
        start local 12 // org.apache.lucene.spatial3d.geom.GeoPolygon testPolygon
       111: .line 1456
            aload 12 /* testPolygon */
            aload 5 /* testPoint */
            invokeinterface org.apache.lucene.spatial3d.geom.GeoPolygon.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 113
       112: .line 1457
            aconst_null
            areturn
        end local 12 // org.apache.lucene.spatial3d.geom.GeoPolygon testPolygon
       113: .line 1461
      StackMap locals:
      StackMap stack:
            new org.apache.lucene.spatial3d.geom.GeoConvexPolygon
            dup
            aload 0 /* planetModel */
            aload 9 /* points */
            aload 4 /* holes */
            aload 10 /* internalEdges */
            iload 11 /* returnIsInternal */
            invokespecial org.apache.lucene.spatial3d.geom.GeoConvexPolygon.<init>:(Lorg/apache/lucene/spatial3d/geom/PlanetModel;Ljava/util/List;Ljava/util/List;Ljava/util/BitSet;Z)V
            astore 12 /* realPolygon */
        start local 12 // org.apache.lucene.spatial3d.geom.GeoPolygon realPolygon
       114: .line 1462
            aload 5 /* testPoint */
            ifnull 117
            aload 4 /* holes */
            ifnull 115
            aload 4 /* holes */
            invokeinterface java.util.List.size:()I
            ifne 117
       115: .line 1463
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPolygon
      StackMap stack:
            aload 12 /* realPolygon */
            aload 5 /* testPoint */
            invokeinterface org.apache.lucene.spatial3d.geom.GeoPolygon.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifeq 117
       116: .line 1464
            aconst_null
            areturn
       117: .line 1468
      StackMap locals:
      StackMap stack:
            aload 2 /* rval */
            aload 12 /* realPolygon */
            invokevirtual org.apache.lucene.spatial3d.geom.GeoCompositePolygon.addShape:(Lorg/apache/lucene/spatial3d/geom/GeoShape;)V
       118: .line 1469
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
       119: areturn
        end local 12 // org.apache.lucene.spatial3d.geom.GeoPolygon realPolygon
       120: .line 1471
      StackMap locals: org.apache.lucene.spatial3d.geom.PlanetModel org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoCompositePolygon org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer java.util.List org.apache.lucene.spatial3d.geom.GeoPoint java.util.Set org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge java.util.List java.util.BitSet int
      StackMap stack: java.lang.IllegalArgumentException
            astore 12 /* e */
        start local 12 // java.lang.IllegalArgumentException e
       121: .line 1472
            new org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
            dup
            aload 12 /* e */
            invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
            invokespecial org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // java.lang.IllegalArgumentException e
        end local 11 // boolean returnIsInternal
        end local 10 // java.util.BitSet internalEdges
        end local 9 // java.util.List points
        end local 8 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge lastEdge
        end local 7 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge firstEdge
        end local 6 // java.util.Set includedEdges
        end local 5 // org.apache.lucene.spatial3d.geom.GeoPoint testPoint
        end local 4 // java.util.List holes
        end local 3 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer edgeBuffer
        end local 2 // org.apache.lucene.spatial3d.geom.GeoCompositePolygon rval
        end local 1 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge currentEdge
        end local 0 // org.apache.lucene.spatial3d.geom.PlanetModel planetModel
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0  122     0       planetModel  Lorg/apache/lucene/spatial3d/geom/PlanetModel;
            0  122     1       currentEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            0  122     2              rval  Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;
            0  122     3        edgeBuffer  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$EdgeBuffer;
            0  122     4             holes  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;
            0  122     5         testPoint  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            1  122     6     includedEdges  Ljava/util/Set<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;
            3  122     7         firstEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            4  122     8          lastEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            7   36     9       newLastEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           17   18    10    returnBoundary  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
           19   36    10    returnBoundary  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
           20   36    11  foundPointInside  Z
           21   36    12      edgeIterator  Ljava/util/Iterator<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;
           23   32    13              edge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           40   69     9      newFirstEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           50   51    10    returnBoundary  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
           52   69    10    returnBoundary  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
           53   69    11  foundPointInside  Z
           54   69    12      edgeIterator  Ljava/util/Iterator<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;
           56   65    13              edge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           73  122     9            points  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPoint;>;
           74  122    10     internalEdges  Ljava/util/BitSet;
           89   91    11  returnIsInternal  Z
           98  122    11  returnIsInternal  Z
           80   90    12              edge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           82   90    13                 k  I
           92  109    12  returnSidedPlane  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
           93  109    13        returnEdge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
           97  109    14             edges  Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;
           99  109    15              edge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
          101  109    16                 k  I
          111  113    12       testPolygon  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
          114  120    12       realPolygon  Lorg/apache/lucene/spatial3d/geom/GeoPolygon;
          121  122    12                 e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
         109   112     120  Class java.lang.IllegalArgumentException
         113   116     120  Class java.lang.IllegalArgumentException
         117   119     120  Class java.lang.IllegalArgumentException
    Exceptions:
      throws org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
    Signature: (Lorg/apache/lucene/spatial3d/geom/PlanetModel;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;Lorg/apache/lucene/spatial3d/geom/GeoCompositePolygon;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$EdgeBuffer;Ljava/util/List<Lorg/apache/lucene/spatial3d/geom/GeoPolygon;>;Lorg/apache/lucene/spatial3d/geom/GeoPoint;)Ljava/lang/Boolean;
    MethodParameters:
             Name  Flags
      planetModel  final
      currentEdge  final
      rval         final
      edgeBuffer   final
      holes        final
      testPoint    final

  private static boolean isWithin(org.apache.lucene.spatial3d.geom.GeoPoint, java.util.Set<org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge>, org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge, org.apache.lucene.spatial3d.geom.SidedPlane);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;Lorg/apache/lucene/spatial3d/geom/SidedPlane;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.lucene.spatial3d.geom.GeoPoint point
        start local 1 // java.util.Set edgeSet
        start local 2 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge extension
        start local 3 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
         0: .line 1485
            aload 2 /* extension */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 0 /* point */
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 2
         1: .line 1486
            iconst_0
            ireturn
         2: .line 1488
      StackMap locals:
      StackMap stack:
            aload 3 /* returnBoundary */
            ifnull 4
            aload 3 /* returnBoundary */
            aload 0 /* point */
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 4
         3: .line 1489
            iconst_0
            ireturn
         4: .line 1491
      StackMap locals:
      StackMap stack:
            aload 0 /* point */
            aload 1 /* edgeSet */
            invokestatic org.apache.lucene.spatial3d.geom.GeoPolygonFactory.isWithin:(Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set;)Z
            ireturn
        end local 3 // org.apache.lucene.spatial3d.geom.SidedPlane returnBoundary
        end local 2 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge extension
        end local 1 // java.util.Set edgeSet
        end local 0 // org.apache.lucene.spatial3d.geom.GeoPoint point
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0           point  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            0    5     1         edgeSet  Ljava/util/Set<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;
            0    5     2       extension  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
            0    5     3  returnBoundary  Lorg/apache/lucene/spatial3d/geom/SidedPlane;
    Signature: (Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;Lorg/apache/lucene/spatial3d/geom/SidedPlane;)Z
    MethodParameters:
                Name  Flags
      point           final
      edgeSet         final
      extension       final
      returnBoundary  final

  private static boolean isWithin(org.apache.lucene.spatial3d.geom.GeoPoint, java.util.Set<org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge>);
    descriptor: (Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.lucene.spatial3d.geom.GeoPoint point
        start local 1 // java.util.Set edgeSet
         0: .line 1500
            aload 1 /* edgeSet */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.lucene.spatial3d.geom.GeoPoint java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge
            astore 2 /* edge */
        start local 2 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
         2: .line 1501
            aload 2 /* edge */
            getfield org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge.plane:Lorg/apache/lucene/spatial3d/geom/SidedPlane;
            aload 0 /* point */
            invokevirtual org.apache.lucene.spatial3d.geom.SidedPlane.isWithin:(Lorg/apache/lucene/spatial3d/geom/Vector;)Z
            ifne 4
         3: .line 1502
            iconst_0
            ireturn
        end local 2 // org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge edge
         4: .line 1500
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 1505
            iconst_1
            ireturn
        end local 1 // java.util.Set edgeSet
        end local 0 // org.apache.lucene.spatial3d.geom.GeoPoint point
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0    point  Lorg/apache/lucene/spatial3d/geom/GeoPoint;
            0    6     1  edgeSet  Ljava/util/Set<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;
            2    4     2     edge  Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;
    Signature: (Lorg/apache/lucene/spatial3d/geom/GeoPoint;Ljava/util/Set<Lorg/apache/lucene/spatial3d/geom/GeoPolygonFactory$Edge;>;)Z
    MethodParameters:
         Name  Flags
      point    final
      edgeSet  final

  private static int getLegalIndex(int, int);
    descriptor: (II)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int index
        start local 1 // int size
         0: .line 1514
            goto 2
         1: .line 1515
      StackMap locals:
      StackMap stack:
            iload 0 /* index */
            iload 1 /* size */
            iadd
            istore 0 /* index */
         2: .line 1514
      StackMap locals:
      StackMap stack:
            iload 0 /* index */
            iflt 1
         3: .line 1517
            goto 5
         4: .line 1518
      StackMap locals:
      StackMap stack:
            iload 0 /* index */
            iload 1 /* size */
            isub
            istore 0 /* index */
         5: .line 1517
      StackMap locals:
      StackMap stack:
            iload 0 /* index */
            iload 1 /* size */
            if_icmpge 4
         6: .line 1520
            iload 0 /* index */
            ireturn
        end local 1 // int size
        end local 0 // int index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  index  I
            0    7     1   size  I
    MethodParameters:
       Name  Flags
      index  
      size   
}
SourceFile: "GeoPolygonFactory.java"
NestMembers:
  org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape  org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge  org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer  org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBufferIterator  org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean  org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription  org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath  org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException
InnerClasses:
  private BestShape = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$BestShape of org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  private Edge = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$Edge of org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  private EdgeBuffer = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBuffer of org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  private EdgeBufferIterator = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$EdgeBufferIterator of org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  MutableBoolean = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$MutableBoolean of org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  public PolygonDescription = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$PolygonDescription of org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  private SafePath = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$SafePath of org.apache.lucene.spatial3d.geom.GeoPolygonFactory
  private TileException = org.apache.lucene.spatial3d.geom.GeoPolygonFactory$TileException of org.apache.lucene.spatial3d.geom.GeoPolygonFactory