public final class org.h2.util.geometry.EWKBUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.h2.util.geometry.EWKBUtils
  super_class: java.lang.Object
{
  public static final int EWKB_Z;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483648

  public static final int EWKB_M;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1073741824

  public static final int EWKB_SRID;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 536870912

  public static byte[] ewkb2ewkb(byte[]);
    descriptor: ([B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // byte[] ewkb
         0: .line 258
            new org.h2.util.geometry.GeometryUtils$DimensionSystemTarget
            dup
            invokespecial org.h2.util.geometry.GeometryUtils$DimensionSystemTarget.<init>:()V
            astore 1 /* dimensionTarget */
        start local 1 // org.h2.util.geometry.GeometryUtils$DimensionSystemTarget dimensionTarget
         1: .line 259
            aload 0 /* ewkb */
            aload 1 /* dimensionTarget */
            invokestatic org.h2.util.geometry.EWKBUtils.parseEWKB:([BLorg/h2/util/geometry/GeometryUtils$Target;)V
         2: .line 261
            aload 0 /* ewkb */
            aload 1 /* dimensionTarget */
            invokevirtual org.h2.util.geometry.GeometryUtils$DimensionSystemTarget.getDimensionSystem:()I
            invokestatic org.h2.util.geometry.EWKBUtils.ewkb2ewkb:([BI)[B
            areturn
        end local 1 // org.h2.util.geometry.GeometryUtils$DimensionSystemTarget dimensionTarget
        end local 0 // byte[] ewkb
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             ewkb  [B
            1    3     1  dimensionTarget  Lorg/h2/util/geometry/GeometryUtils$DimensionSystemTarget;
    MethodParameters:
      Name  Flags
      ewkb  

  public static byte[] ewkb2ewkb(byte[], int);
    descriptor: ([BI)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // byte[] ewkb
        start local 1 // int dimensionSystem
         0: .line 276
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 2 /* output */
        start local 2 // java.io.ByteArrayOutputStream output
         1: .line 277
            new org.h2.util.geometry.EWKBUtils$EWKBTarget
            dup
            aload 2 /* output */
            iload 1 /* dimensionSystem */
            invokespecial org.h2.util.geometry.EWKBUtils$EWKBTarget.<init>:(Ljava/io/ByteArrayOutputStream;I)V
            astore 3 /* target */
        start local 3 // org.h2.util.geometry.EWKBUtils$EWKBTarget target
         2: .line 278
            aload 0 /* ewkb */
            aload 3 /* target */
            invokestatic org.h2.util.geometry.EWKBUtils.parseEWKB:([BLorg/h2/util/geometry/GeometryUtils$Target;)V
         3: .line 279
            aload 2 /* output */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 3 // org.h2.util.geometry.EWKBUtils$EWKBTarget target
        end local 2 // java.io.ByteArrayOutputStream output
        end local 1 // int dimensionSystem
        end local 0 // byte[] ewkb
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             ewkb  [B
            0    4     1  dimensionSystem  I
            1    4     2           output  Ljava/io/ByteArrayOutputStream;
            2    4     3           target  Lorg/h2/util/geometry/EWKBUtils$EWKBTarget;
    MethodParameters:
                 Name  Flags
      ewkb             
      dimensionSystem  

  public static void parseEWKB(byte[], org.h2.util.geometry.GeometryUtils$Target);
    descriptor: ([BLorg/h2/util/geometry/GeometryUtils$Target;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // byte[] ewkb
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
         0: .line 292
            new org.h2.util.geometry.EWKBUtils$EWKBSource
            dup
            aload 0 /* ewkb */
            invokespecial org.h2.util.geometry.EWKBUtils$EWKBSource.<init>:([B)V
            aload 1 /* target */
            iconst_0
            invokestatic org.h2.util.geometry.EWKBUtils.parseEWKB:(Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;I)V
         1: .line 293
            goto 4
      StackMap locals:
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
         2: pop
         3: .line 294
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 296
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // byte[] ewkb
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    ewkb  [B
            0    5     1  target  Lorg/h2/util/geometry/GeometryUtils$Target;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ArrayIndexOutOfBoundsException
    MethodParameters:
        Name  Flags
      ewkb    
      target  

  public static int type2dimensionSystem(int);
    descriptor: (I)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // int type
         0: .line 307
            iload 0 /* type */
            ldc -2147483648
            iand
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 1 /* useZ */
        start local 1 // boolean useZ
         3: .line 308
            iload 0 /* type */
            ldc 1073741824
            iand
            ifeq 4
            iconst_1
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2 /* useM */
        start local 2 // boolean useM
         6: .line 310
            iload 0 /* type */
            ldc 65535
            iand
            istore 0 /* type */
         7: .line 311
            iload 0 /* type */
            sipush 1000
            idiv
            tableswitch { // 1 - 3
                    1: 8
                    2: 11
                    3: 10
              default: 12
          }
         8: .line 313
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 1 /* useZ */
         9: .line 314
            goto 12
        10: .line 316
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 1 /* useZ */
        11: .line 319
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* useM */
        12: .line 321
      StackMap locals:
      StackMap stack:
            iload 1 /* useZ */
            ifeq 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: iload 2 /* useM */
            ifeq 15
            iconst_2
            goto 16
      StackMap locals:
      StackMap stack: int
        15: iconst_0
      StackMap locals: int int int
      StackMap stack: int int
        16: ior
            ireturn
        end local 2 // boolean useM
        end local 1 // boolean useZ
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  type  I
            3   17     1  useZ  Z
            6   17     2  useM  Z
    MethodParameters:
      Name  Flags
      type  

  private static void parseEWKB(org.h2.util.geometry.EWKBUtils$EWKBSource, org.h2.util.geometry.GeometryUtils$Target, int);
    descriptor: (Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // org.h2.util.geometry.EWKBUtils$EWKBSource source
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
        start local 2 // int parentType
         0: .line 336
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readByte:()B
            tableswitch { // 0 - 1
                    0: 1
                    1: 3
              default: 5
          }
         1: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            iconst_1
            putfield org.h2.util.geometry.EWKBUtils$EWKBSource.bigEndian:Z
         2: .line 339
            goto 6
         3: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            iconst_0
            putfield org.h2.util.geometry.EWKBUtils$EWKBSource.bigEndian:Z
         4: .line 342
            goto 6
         5: .line 344
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         6: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readInt:()I
            istore 3 /* type */
        start local 3 // int type
         7: .line 349
            iload 3 /* type */
            ldc -2147483648
            iand
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 4 /* useZ */
        start local 4 // boolean useZ
        10: .line 350
            iload 3 /* type */
            ldc 1073741824
            iand
            ifeq 11
            iconst_1
            goto 12
      StackMap locals: int
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 5 /* useM */
        start local 5 // boolean useM
        13: .line 351
            iload 3 /* type */
            ldc 536870912
            iand
            ifeq 14
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readInt:()I
            goto 15
      StackMap locals: int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 6 /* srid */
        start local 6 // int srid
        16: .line 353
            iload 2 /* parentType */
            ifne 18
        17: .line 354
            aload 1 /* target */
            iload 6 /* srid */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.init:(I)V
        18: .line 357
      StackMap locals: int
      StackMap stack:
            iload 3 /* type */
            ldc 65535
            iand
            istore 3 /* type */
        19: .line 358
            iload 3 /* type */
            sipush 1000
            idiv
            tableswitch { // 1 - 3
                    1: 20
                    2: 23
                    3: 22
              default: 24
          }
        20: .line 360
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* useZ */
        21: .line 361
            goto 24
        22: .line 363
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* useZ */
        23: .line 366
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* useM */
        24: .line 368
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            iload 4 /* useZ */
            ifeq 25
            iconst_1
            goto 26
      StackMap locals:
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target
        25: iconst_0
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int int int
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target int
        26: iload 5 /* useM */
            ifeq 27
            iconst_2
            goto 28
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int int int
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target int
        27: iconst_0
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int int int
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target int int
        28: ior
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.dimensionSystem:(I)V
        29: .line 369
            iload 3 /* type */
            sipush 1000
            irem
            istore 3 /* type */
        30: .line 370
            iload 3 /* type */
            tableswitch { // 1 - 7
                    1: 31
                    2: 36
                    3: 48
                    4: 72
                    5: 72
                    6: 72
                    7: 72
              default: 87
          }
        31: .line 372
      StackMap locals:
      StackMap stack:
            iload 2 /* parentType */
            ifeq 33
            iload 2 /* parentType */
            iconst_4
            if_icmpeq 33
            iload 2 /* parentType */
            bipush 7
            if_icmpeq 33
        32: .line 373
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        33: .line 375
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startPoint:()V
        34: .line 376
            aload 0 /* source */
            aload 1 /* target */
            iload 4 /* useZ */
            iload 5 /* useM */
            iconst_0
            iconst_1
            invokestatic org.h2.util.geometry.EWKBUtils.addCoordinate:(Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;ZZII)V
        35: .line 377
            goto 88
        36: .line 379
      StackMap locals:
      StackMap stack:
            iload 2 /* parentType */
            ifeq 38
            iload 2 /* parentType */
            iconst_5
            if_icmpeq 38
            iload 2 /* parentType */
            bipush 7
            if_icmpeq 38
        37: .line 380
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        38: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readInt:()I
            istore 7 /* numPoints */
        start local 7 // int numPoints
        39: .line 383
            iload 7 /* numPoints */
            iflt 40
            iload 7 /* numPoints */
            iconst_1
            if_icmpne 41
        40: .line 384
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        41: .line 386
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            iload 7 /* numPoints */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startLineString:(I)V
        42: .line 387
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        43: goto 46
        44: .line 388
      StackMap locals: int
      StackMap stack:
            aload 0 /* source */
            aload 1 /* target */
            iload 4 /* useZ */
            iload 5 /* useM */
            iload 8 /* i */
            iload 7 /* numPoints */
            invokestatic org.h2.util.geometry.EWKBUtils.addCoordinate:(Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;ZZII)V
        45: .line 387
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 8 /* i */
            iload 7 /* numPoints */
            if_icmplt 44
        end local 8 // int i
        47: .line 390
            goto 88
        end local 7 // int numPoints
        48: .line 393
      StackMap locals:
      StackMap stack:
            iload 2 /* parentType */
            ifeq 50
            iload 2 /* parentType */
            bipush 6
            if_icmpeq 50
            iload 2 /* parentType */
            bipush 7
            if_icmpeq 50
        49: .line 394
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        50: .line 396
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readInt:()I
            iconst_1
            isub
            istore 7 /* numInner */
        start local 7 // int numInner
        51: .line 397
            iload 7 /* numInner */
            ifge 53
        52: .line 398
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        53: .line 400
      StackMap locals: int
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readInt:()I
            istore 8 /* size */
        start local 8 // int size
        54: .line 402
            iload 8 /* size */
            iflt 55
            iload 8 /* size */
            iconst_1
            if_icmplt 56
            iload 8 /* size */
            iconst_3
            if_icmpgt 56
        55: .line 403
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        56: .line 405
      StackMap locals:
      StackMap stack:
            iload 8 /* size */
            ifne 58
            iload 7 /* numInner */
            ifle 58
        57: .line 406
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        58: .line 408
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            iload 7 /* numInner */
            iload 8 /* size */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startPolygon:(II)V
        59: .line 409
            iload 8 /* size */
            ifle 88
        60: .line 410
            aload 0 /* source */
            aload 1 /* target */
            iload 4 /* useZ */
            iload 5 /* useM */
            iload 8 /* size */
            invokestatic org.h2.util.geometry.EWKBUtils.addRing:(Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;ZZI)V
        61: .line 411
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        62: goto 69
        63: .line 412
      StackMap locals: int
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readInt:()I
            istore 8 /* size */
        64: .line 414
            iload 8 /* size */
            iflt 65
            iload 8 /* size */
            iconst_1
            if_icmplt 66
            iload 8 /* size */
            iconst_3
            if_icmpgt 66
        65: .line 415
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        66: .line 417
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            iload 8 /* size */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startPolygonInner:(I)V
        67: .line 418
            aload 0 /* source */
            aload 1 /* target */
            iload 4 /* useZ */
            iload 5 /* useM */
            iload 8 /* size */
            invokestatic org.h2.util.geometry.EWKBUtils.addRing:(Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;ZZI)V
        68: .line 411
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        69: iload 9 /* i */
            iload 7 /* numInner */
            if_icmplt 63
        end local 9 // int i
        70: .line 420
            aload 1 /* target */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.endNonEmptyPolygon:()V
        71: .line 422
            goto 88
        end local 8 // int size
        end local 7 // int numInner
        72: .line 428
      StackMap locals:
      StackMap stack:
            iload 2 /* parentType */
            ifeq 74
            iload 2 /* parentType */
            bipush 7
            if_icmpeq 74
        73: .line 429
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        74: .line 431
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readInt:()I
            istore 7 /* numItems */
        start local 7 // int numItems
        75: .line 432
            iload 7 /* numItems */
            ifge 77
        76: .line 433
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        77: .line 435
      StackMap locals: int
      StackMap stack:
            aload 1 /* target */
            iload 3 /* type */
            iload 7 /* numItems */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startCollection:(II)V
        78: .line 436
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        79: goto 84
        80: .line 437
      StackMap locals: int
      StackMap stack:
            aload 1 /* target */
            iload 8 /* i */
            iload 7 /* numItems */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.startCollectionItem:(II)Lorg/h2/util/geometry/GeometryUtils$Target;
            astore 9 /* innerTarget */
        start local 9 // org.h2.util.geometry.GeometryUtils$Target innerTarget
        81: .line 438
            aload 0 /* source */
            aload 9 /* innerTarget */
            iload 3 /* type */
            invokestatic org.h2.util.geometry.EWKBUtils.parseEWKB:(Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;I)V
        82: .line 439
            aload 1 /* target */
            aload 9 /* innerTarget */
            iload 8 /* i */
            iload 7 /* numItems */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.endCollectionItem:(Lorg/h2/util/geometry/GeometryUtils$Target;II)V
        end local 9 // org.h2.util.geometry.GeometryUtils$Target innerTarget
        83: .line 436
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        84: iload 8 /* i */
            iload 7 /* numItems */
            if_icmplt 80
        end local 8 // int i
        85: .line 441
            aload 1 /* target */
            iload 3 /* type */
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.endCollection:(I)V
        86: .line 442
            goto 88
        end local 7 // int numItems
        87: .line 445
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        88: .line 447
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int srid
        end local 5 // boolean useM
        end local 4 // boolean useZ
        end local 3 // int type
        end local 2 // int parentType
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // org.h2.util.geometry.EWKBUtils$EWKBSource source
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   89     0       source  Lorg/h2/util/geometry/EWKBUtils$EWKBSource;
            0   89     1       target  Lorg/h2/util/geometry/GeometryUtils$Target;
            0   89     2   parentType  I
            7   89     3         type  I
           10   89     4         useZ  Z
           13   89     5         useM  Z
           16   89     6         srid  I
           39   48     7    numPoints  I
           43   47     8            i  I
           51   72     7     numInner  I
           54   72     8         size  I
           62   70     9            i  I
           75   87     7     numItems  I
           79   85     8            i  I
           81   83     9  innerTarget  Lorg/h2/util/geometry/GeometryUtils$Target;
    MethodParameters:
            Name  Flags
      source      
      target      
      parentType  

  private static void addRing(org.h2.util.geometry.EWKBUtils$EWKBSource, org.h2.util.geometry.GeometryUtils$Target, boolean, boolean, int);
    descriptor: (Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;ZZI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=11, locals=13, args_size=5
        start local 0 // org.h2.util.geometry.EWKBUtils$EWKBSource source
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
        start local 2 // boolean useZ
        start local 3 // boolean useM
        start local 4 // int size
         0: .line 451
            iload 4 /* size */
            iconst_4
            if_icmplt 26
         1: .line 452
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            dstore 5 /* startX */
        start local 5 // double startX
         2: aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            dstore 7 /* startY */
        start local 7 // double startY
         3: .line 453
            aload 1 /* target */
            dload 5 /* startX */
            dload 7 /* startY */
         4: .line 454
            iload 2 /* useZ */
            ifeq 5
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            goto 6
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int double double
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double
         5: ldc NaN
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int double double
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double double
         6: iload 3 /* useM */
            ifeq 7
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            goto 8
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int double double
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double double
         7: ldc NaN
         8: .line 455
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int double double
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double double double
            iconst_0
            iload 4 /* size */
         9: .line 453
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.addCoordinate:(DDDDII)V
        10: .line 456
            iconst_1
            istore 9 /* i */
        start local 9 // int i
        11: goto 14
        12: .line 457
      StackMap locals: int
      StackMap stack:
            aload 0 /* source */
            aload 1 /* target */
            iload 2 /* useZ */
            iload 3 /* useM */
            iload 9 /* i */
            iload 4 /* size */
            invokestatic org.h2.util.geometry.EWKBUtils.addCoordinate:(Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;ZZII)V
        13: .line 456
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 9 /* i */
            iload 4 /* size */
            iconst_1
            isub
            if_icmplt 12
        end local 9 // int i
        15: .line 459
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            dstore 9 /* endX */
        start local 9 // double endX
        16: aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            dstore 11 /* endY */
        start local 11 // double endY
        17: .line 464
            dload 5 /* startX */
            dload 9 /* endX */
            dcmpl
            ifne 18
            dload 7 /* startY */
            dload 11 /* endY */
            dcmpl
            ifeq 19
        18: .line 465
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int double double double double
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        19: .line 467
      StackMap locals:
      StackMap stack:
            aload 1 /* target */
            dload 9 /* endX */
            dload 11 /* endY */
        20: .line 468
            iload 2 /* useZ */
            ifeq 21
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            goto 22
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int double double double double
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double
        21: ldc NaN
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int double double double double
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double double
        22: iload 3 /* useM */
            ifeq 23
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            goto 24
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int double double double double
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double double
        23: ldc NaN
        24: .line 469
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int double double double double
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double double double
            iload 4 /* size */
            iconst_1
            isub
            iload 4 /* size */
        25: .line 467
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.addCoordinate:(DDDDII)V
        end local 11 // double endY
        end local 9 // double endX
        end local 7 // double startY
        end local 5 // double startX
        26: .line 471
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int
      StackMap stack:
            return
        end local 4 // int size
        end local 3 // boolean useM
        end local 2 // boolean useZ
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // org.h2.util.geometry.EWKBUtils$EWKBSource source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   27     0  source  Lorg/h2/util/geometry/EWKBUtils$EWKBSource;
            0   27     1  target  Lorg/h2/util/geometry/GeometryUtils$Target;
            0   27     2    useZ  Z
            0   27     3    useM  Z
            0   27     4    size  I
            2   26     5  startX  D
            3   26     7  startY  D
           11   15     9       i  I
           16   26     9    endX  D
           17   26    11    endY  D
    MethodParameters:
        Name  Flags
      source  
      target  
      useZ    
      useM    
      size    

  private static void addCoordinate(org.h2.util.geometry.EWKBUtils$EWKBSource, org.h2.util.geometry.GeometryUtils$Target, boolean, boolean, int, int);
    descriptor: (Lorg/h2/util/geometry/EWKBUtils$EWKBSource;Lorg/h2/util/geometry/GeometryUtils$Target;ZZII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=6
        start local 0 // org.h2.util.geometry.EWKBUtils$EWKBSource source
        start local 1 // org.h2.util.geometry.GeometryUtils$Target target
        start local 2 // boolean useZ
        start local 3 // boolean useM
        start local 4 // int index
        start local 5 // int total
         0: .line 475
            aload 1 /* target */
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
         1: .line 476
            iload 2 /* useZ */
            ifeq 2
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            goto 3
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int int
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double
         2: ldc NaN
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int int
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double double
         3: iload 3 /* useM */
            ifeq 4
            aload 0 /* source */
            invokevirtual org.h2.util.geometry.EWKBUtils$EWKBSource.readCoordinate:()D
            goto 5
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int int
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double double
         4: ldc NaN
         5: .line 477
      StackMap locals: org.h2.util.geometry.EWKBUtils$EWKBSource org.h2.util.geometry.GeometryUtils$Target int int int int
      StackMap stack: org.h2.util.geometry.GeometryUtils$Target double double double double
            iload 4 /* index */
            iload 5 /* total */
         6: .line 475
            invokevirtual org.h2.util.geometry.GeometryUtils$Target.addCoordinate:(DDDDII)V
         7: .line 478
            return
        end local 5 // int total
        end local 4 // int index
        end local 3 // boolean useM
        end local 2 // boolean useZ
        end local 1 // org.h2.util.geometry.GeometryUtils$Target target
        end local 0 // org.h2.util.geometry.EWKBUtils$EWKBSource source
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0  source  Lorg/h2/util/geometry/EWKBUtils$EWKBSource;
            0    8     1  target  Lorg/h2/util/geometry/GeometryUtils$Target;
            0    8     2    useZ  Z
            0    8     3    useM  Z
            0    8     4   index  I
            0    8     5   total  I
    MethodParameters:
        Name  Flags
      source  
      target  
      useZ    
      useM    
      index   
      total   

  public static byte[] envelope2wkb(double[]);
    descriptor: ([D)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // double[] envelope
         0: .line 488
            aload 0 /* envelope */
            ifnonnull 2
         1: .line 489
            aconst_null
            areturn
         2: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* envelope */
            iconst_0
            daload
            dstore 2 /* minX */
        start local 2 // double minX
         3: aload 0 /* envelope */
            iconst_1
            daload
            dstore 4 /* maxX */
        start local 4 // double maxX
         4: aload 0 /* envelope */
            iconst_2
            daload
            dstore 6 /* minY */
        start local 6 // double minY
         5: aload 0 /* envelope */
            iconst_3
            daload
            dstore 8 /* maxY */
        start local 8 // double maxY
         6: .line 493
            dload 2 /* minX */
            dload 4 /* maxX */
            dcmpl
            ifne 12
            dload 6 /* minY */
            dload 8 /* maxY */
            dcmpl
            ifne 12
         7: .line 494
            bipush 21
            newarray 8
            astore 1 /* result */
        start local 1 // byte[] result
         8: .line 495
            aload 1 /* result */
            iconst_4
            iconst_1
            bastore
         9: .line 496
            aload 1 /* result */
            iconst_5
            dload 2 /* minX */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        10: .line 497
            aload 1 /* result */
            bipush 13
            dload 6 /* minY */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        11: .line 498
            goto 35
        end local 1 // byte[] result
      StackMap locals: double[] top double double double double
      StackMap stack:
        12: dload 2 /* minX */
            dload 4 /* maxX */
            dcmpl
            ifeq 13
            dload 6 /* minY */
            dload 8 /* maxY */
            dcmpl
            ifne 21
        13: .line 499
      StackMap locals:
      StackMap stack:
            bipush 41
            newarray 8
            astore 1 /* result */
        start local 1 // byte[] result
        14: .line 500
            aload 1 /* result */
            iconst_4
            iconst_2
            bastore
        15: .line 501
            aload 1 /* result */
            bipush 8
            iconst_2
            bastore
        16: .line 502
            aload 1 /* result */
            bipush 9
            dload 2 /* minX */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        17: .line 503
            aload 1 /* result */
            bipush 17
            dload 6 /* minY */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        18: .line 504
            aload 1 /* result */
            bipush 25
            dload 4 /* maxX */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        19: .line 505
            aload 1 /* result */
            bipush 33
            dload 8 /* maxY */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        20: .line 506
            goto 35
        end local 1 // byte[] result
        21: .line 507
      StackMap locals:
      StackMap stack:
            bipush 93
            newarray 8
            astore 1 /* result */
        start local 1 // byte[] result
        22: .line 508
            aload 1 /* result */
            iconst_4
            iconst_3
            bastore
        23: .line 509
            aload 1 /* result */
            bipush 8
            iconst_1
            bastore
        24: .line 510
            aload 1 /* result */
            bipush 12
            iconst_5
            bastore
        25: .line 511
            aload 1 /* result */
            bipush 13
            dload 2 /* minX */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        26: .line 512
            aload 1 /* result */
            bipush 21
            dload 6 /* minY */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        27: .line 513
            aload 1 /* result */
            bipush 29
            dload 2 /* minX */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        28: .line 514
            aload 1 /* result */
            bipush 37
            dload 8 /* maxY */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        29: .line 515
            aload 1 /* result */
            bipush 45
            dload 4 /* maxX */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        30: .line 516
            aload 1 /* result */
            bipush 53
            dload 8 /* maxY */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        31: .line 517
            aload 1 /* result */
            bipush 61
            dload 4 /* maxX */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        32: .line 518
            aload 1 /* result */
            bipush 69
            dload 6 /* minY */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        33: .line 519
            aload 1 /* result */
            bipush 77
            dload 2 /* minX */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        34: .line 520
            aload 1 /* result */
            bipush 85
            dload 6 /* minY */
            invokestatic org.h2.util.Bits.writeDouble:([BID)V
        35: .line 522
      StackMap locals: double[] byte[] double double double double
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 8 // double maxY
        end local 6 // double minY
        end local 4 // double maxX
        end local 2 // double minX
        end local 1 // byte[] result
        end local 0 // double[] envelope
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   36     0  envelope  [D
            8   12     1    result  [B
           14   21     1    result  [B
           22   36     1    result  [B
            3   36     2      minX  D
            4   36     4      maxX  D
            5   36     6      minY  D
            6   36     8      maxY  D
    MethodParameters:
          Name  Flags
      envelope  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.util.geometry.EWKBUtils this
         0: .line 525
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 526
            return
        end local 0 // org.h2.util.geometry.EWKBUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/h2/util/geometry/EWKBUtils;
}
SourceFile: "EWKBUtils.java"
NestMembers:
  org.h2.util.geometry.EWKBUtils$EWKBSource  org.h2.util.geometry.EWKBUtils$EWKBTarget
InnerClasses:
  private final EWKBSource = org.h2.util.geometry.EWKBUtils$EWKBSource of org.h2.util.geometry.EWKBUtils
  public final EWKBTarget = org.h2.util.geometry.EWKBUtils$EWKBTarget of org.h2.util.geometry.EWKBUtils
  public final DimensionSystemTarget = org.h2.util.geometry.GeometryUtils$DimensionSystemTarget of org.h2.util.geometry.GeometryUtils
  public abstract Target = org.h2.util.geometry.GeometryUtils$Target of org.h2.util.geometry.GeometryUtils