public class org.apache.lucene.spatial.prefix.tree.QuadPrefixTree extends org.apache.lucene.spatial.prefix.tree.LegacyPrefixTree
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.lucene.spatial.prefix.tree.QuadPrefixTree
  super_class: org.apache.lucene.spatial.prefix.tree.LegacyPrefixTree
{
  public static final int MAX_LEVELS_POSSIBLE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 50

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

  protected final double xmin;
    descriptor: D
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final double xmax;
    descriptor: D
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final double ymin;
    descriptor: D
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final double ymax;
    descriptor: D
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final double xmid;
    descriptor: D
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final double ymid;
    descriptor: D
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final double gridW;
    descriptor: D
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public final double gridH;
    descriptor: D
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  final double[] levelW;
    descriptor: [D
    flags: (0x0010) ACC_FINAL

  final double[] levelH;
    descriptor: [D
    flags: (0x0010) ACC_FINAL

  final int[] levelS;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  final int[] levelN;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  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 40
            ldc Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;
            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.spatial.prefix.tree.QuadPrefixTree.$assertionsDisabled:Z
         3: .line 62
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.locationtech.spatial4j.context.SpatialContext, org.locationtech.spatial4j.shape.Rectangle, int);
    descriptor: (Lorg/locationtech/spatial4j/context/SpatialContext;Lorg/locationtech/spatial4j/shape/Rectangle;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
        start local 1 // org.locationtech.spatial4j.context.SpatialContext ctx
        start local 2 // org.locationtech.spatial4j.shape.Rectangle bounds
        start local 3 // int maxLevels
         0: .line 80
            aload 0 /* this */
            aload 1 /* ctx */
            iload 3 /* maxLevels */
            invokespecial org.apache.lucene.spatial.prefix.tree.LegacyPrefixTree.<init>:(Lorg/locationtech/spatial4j/context/SpatialContext;I)V
         1: .line 81
            aload 0 /* this */
            aload 2 /* bounds */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinX:()D
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.xmin:D
         2: .line 82
            aload 0 /* this */
            aload 2 /* bounds */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxX:()D
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.xmax:D
         3: .line 83
            aload 0 /* this */
            aload 2 /* bounds */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMinY:()D
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.ymin:D
         4: .line 84
            aload 0 /* this */
            aload 2 /* bounds */
            invokeinterface org.locationtech.spatial4j.shape.Rectangle.getMaxY:()D
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.ymax:D
         5: .line 86
            aload 0 /* this */
            iload 3 /* maxLevels */
            newarray 7
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelW:[D
         6: .line 87
            aload 0 /* this */
            iload 3 /* maxLevels */
            newarray 7
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelH:[D
         7: .line 88
            aload 0 /* this */
            iload 3 /* maxLevels */
            newarray 10
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelS:[I
         8: .line 89
            aload 0 /* this */
            iload 3 /* maxLevels */
            newarray 10
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelN:[I
         9: .line 91
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.xmax:D
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.xmin:D
            dsub
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.gridW:D
        10: .line 92
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.ymax:D
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.ymin:D
            dsub
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.gridH:D
        11: .line 93
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.xmin:D
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.gridW:D
            ldc 2.0
            ddiv
            dadd
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.xmid:D
        12: .line 94
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.ymin:D
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.gridH:D
            ldc 2.0
            ddiv
            dadd
            putfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.ymid:D
        13: .line 95
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelW:[D
            iconst_0
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.gridW:D
            ldc 2.0
            ddiv
            dastore
        14: .line 96
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelH:[D
            iconst_0
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.gridH:D
            ldc 2.0
            ddiv
            dastore
        15: .line 97
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelS:[I
            iconst_0
            iconst_2
            iastore
        16: .line 98
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelN:[I
            iconst_0
            iconst_4
            iastore
        17: .line 100
            iconst_1
            istore 4 /* i */
        start local 4 // int i
        18: goto 24
        19: .line 101
      StackMap locals: org.apache.lucene.spatial.prefix.tree.QuadPrefixTree org.locationtech.spatial4j.context.SpatialContext org.locationtech.spatial4j.shape.Rectangle int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelW:[D
            iload 4 /* i */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelW:[D
            iload 4 /* i */
            iconst_1
            isub
            daload
            ldc 2.0
            ddiv
            dastore
        20: .line 102
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelH:[D
            iload 4 /* i */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelH:[D
            iload 4 /* i */
            iconst_1
            isub
            daload
            ldc 2.0
            ddiv
            dastore
        21: .line 103
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelS:[I
            iload 4 /* i */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelS:[I
            iload 4 /* i */
            iconst_1
            isub
            iaload
            iconst_2
            imul
            iastore
        22: .line 104
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelN:[I
            iload 4 /* i */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelN:[I
            iload 4 /* i */
            iconst_1
            isub
            iaload
            iconst_4
            imul
            iastore
        23: .line 100
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 4 /* i */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelW:[D
            arraylength
            if_icmplt 19
        end local 4 // int i
        25: .line 106
            return
        end local 3 // int maxLevels
        end local 2 // org.locationtech.spatial4j.shape.Rectangle bounds
        end local 1 // org.locationtech.spatial4j.context.SpatialContext ctx
        end local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   26     0       this  Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;
            0   26     1        ctx  Lorg/locationtech/spatial4j/context/SpatialContext;
            0   26     2     bounds  Lorg/locationtech/spatial4j/shape/Rectangle;
            0   26     3  maxLevels  I
           18   25     4          i  I
    MethodParameters:
           Name  Flags
      ctx        
      bounds     
      maxLevels  

  public void <init>(org.locationtech.spatial4j.context.SpatialContext);
    descriptor: (Lorg/locationtech/spatial4j/context/SpatialContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
        start local 1 // org.locationtech.spatial4j.context.SpatialContext ctx
         0: .line 109
            aload 0 /* this */
            aload 1 /* ctx */
            bipush 12
            invokespecial org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.<init>:(Lorg/locationtech/spatial4j/context/SpatialContext;I)V
         1: .line 110
            return
        end local 1 // org.locationtech.spatial4j.context.SpatialContext ctx
        end local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;
            0    2     1   ctx  Lorg/locationtech/spatial4j/context/SpatialContext;
    MethodParameters:
      Name  Flags
      ctx   

  public void <init>(org.locationtech.spatial4j.context.SpatialContext, int);
    descriptor: (Lorg/locationtech/spatial4j/context/SpatialContext;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
        start local 1 // org.locationtech.spatial4j.context.SpatialContext ctx
        start local 2 // int maxLevels
         0: .line 114
            aload 0 /* this */
            aload 1 /* ctx */
            aload 1 /* ctx */
            invokevirtual org.locationtech.spatial4j.context.SpatialContext.getWorldBounds:()Lorg/locationtech/spatial4j/shape/Rectangle;
            iload 2 /* maxLevels */
            invokespecial org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.<init>:(Lorg/locationtech/spatial4j/context/SpatialContext;Lorg/locationtech/spatial4j/shape/Rectangle;I)V
         1: .line 115
            return
        end local 2 // int maxLevels
        end local 1 // org.locationtech.spatial4j.context.SpatialContext ctx
        end local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;
            0    2     1        ctx  Lorg/locationtech/spatial4j/context/SpatialContext;
            0    2     2  maxLevels  I
    MethodParameters:
           Name  Flags
      ctx        
      maxLevels  

  public org.apache.lucene.spatial.prefix.tree.Cell getWorldCell();
    descriptor: ()Lorg/apache/lucene/spatial/prefix/tree/Cell;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
         0: .line 119
            new org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$QuadCell
            dup
            aload 0 /* this */
            getstatic org.apache.lucene.util.BytesRef.EMPTY_BYTES:[B
            iconst_0
            iconst_0
            invokespecial org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$QuadCell.<init>:(Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;[BII)V
            areturn
        end local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;

  public void printInfo(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
        start local 1 // java.io.PrintStream out
         0: .line 123
            getstatic java.util.Locale.ROOT:Ljava/util/Locale;
            invokestatic java.text.NumberFormat.getNumberInstance:(Ljava/util/Locale;)Ljava/text/NumberFormat;
            astore 2 /* nf */
        start local 2 // java.text.NumberFormat nf
         1: .line 124
            aload 2 /* nf */
            iconst_5
            invokevirtual java.text.NumberFormat.setMaximumFractionDigits:(I)V
         2: .line 125
            aload 2 /* nf */
            iconst_5
            invokevirtual java.text.NumberFormat.setMinimumFractionDigits:(I)V
         3: .line 126
            aload 2 /* nf */
            iconst_3
            invokevirtual java.text.NumberFormat.setMinimumIntegerDigits:(I)V
         4: .line 128
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 10
         6: .line 129
      StackMap locals: java.text.NumberFormat int
      StackMap stack:
            aload 1 /* out */
            new java.lang.StringBuilder
            dup
            iload 3 /* i */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "]\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* nf */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelW:[D
            iload 3 /* i */
            daload
            invokevirtual java.text.NumberFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* nf */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelH:[D
            iload 3 /* i */
            daload
            invokevirtual java.text.NumberFormat.format:(D)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 130
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelS:[I
            iload 3 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelS:[I
            iload 3 /* i */
            iaload
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelS:[I
            iload 3 /* i */
            iaload
            imul
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 129
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         9: .line 128
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.maxLevels:I
            if_icmplt 6
        end local 3 // int i
        11: .line 132
            return
        end local 2 // java.text.NumberFormat nf
        end local 1 // java.io.PrintStream out
        end local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;
            0   12     1   out  Ljava/io/PrintStream;
            1   12     2    nf  Ljava/text/NumberFormat;
            5   11     3     i  I
    MethodParameters:
      Name  Flags
      out   

  public int getLevelForDistance(double);
    descriptor: (D)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
        start local 1 // double dist
         0: .line 136
            dload 1 /* dist */
            dconst_0
            dcmpl
            ifne 2
         1: .line 137
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.maxLevels:I
            ireturn
         2: .line 138
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 140
      StackMap locals: int
      StackMap stack:
            dload 1 /* dist */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelW:[D
            iload 3 /* i */
            daload
            dcmpl
            ifle 6
            dload 1 /* dist */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelH:[D
            iload 3 /* i */
            daload
            dcmpl
            ifle 6
         5: .line 141
            iload 3 /* i */
            iconst_1
            iadd
            ireturn
         6: .line 138
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.maxLevels:I
            iconst_1
            isub
            if_icmplt 4
        end local 3 // int i
         8: .line 144
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.maxLevels:I
            ireturn
        end local 1 // double dist
        end local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;
            0    9     1  dist  D
            3    8     3     i  I
    MethodParameters:
      Name  Flags
      dist  

  public org.apache.lucene.spatial.prefix.tree.Cell getCell(org.locationtech.spatial4j.shape.Point, int);
    descriptor: (Lorg/locationtech/spatial4j/shape/Point;I)Lorg/apache/lucene/spatial/prefix/tree/Cell;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=4, args_size=3
        start local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
        start local 1 // org.locationtech.spatial4j.shape.Point p
        start local 2 // int level
         0: .line 149
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* cells */
        start local 3 // java.util.List cells
         1: .line 150
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.xmid:D
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.ymid:D
            iconst_0
            aload 3 /* cells */
            new org.apache.lucene.util.BytesRef
            dup
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.maxLevels:I
            iconst_1
            iadd
            invokespecial org.apache.lucene.util.BytesRef.<init>:(I)V
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.ctx:Lorg/locationtech/spatial4j/context/SpatialContext;
            aload 1 /* p */
            invokeinterface org.locationtech.spatial4j.shape.Point.getX:()D
            aload 1 /* p */
            invokeinterface org.locationtech.spatial4j.shape.Point.getY:()D
            invokevirtual org.locationtech.spatial4j.context.SpatialContext.makePoint:(DD)Lorg/locationtech/spatial4j/shape/Point;
            iload 2 /* level */
            invokevirtual org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.build:(DDILjava/util/List;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
         2: .line 151
            aload 3 /* cells */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.lucene.spatial.prefix.tree.Cell
            areturn
        end local 3 // java.util.List cells
        end local 2 // int level
        end local 1 // org.locationtech.spatial4j.shape.Point p
        end local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;
            0    3     1      p  Lorg/locationtech/spatial4j/shape/Point;
            0    3     2  level  I
            1    3     3  cells  Ljava/util/List<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;
    MethodParameters:
       Name  Flags
      p      
      level  

  private void build(double, double, int, java.util.List<org.apache.lucene.spatial.prefix.tree.Cell>, org.apache.lucene.util.BytesRef, org.locationtech.spatial4j.shape.Shape, );
    descriptor: (DDILjava/util/List;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=14, args_size=8
        start local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
        start local 1 // double x
        start local 3 // double y
        start local 5 // int level
        start local 6 // java.util.List matches
        start local 7 // org.apache.lucene.util.BytesRef str
        start local 8 // org.locationtech.spatial4j.shape.Shape shape
        start local 9 // int maxLevel
         0: .line 162
            getstatic org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.$assertionsDisabled:Z
            ifne 1
            aload 7 /* str */
            getfield org.apache.lucene.util.BytesRef.length:I
            iload 5 /* level */
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelW:[D
            iload 5 /* level */
            daload
            ldc 2.0
            ddiv
            dstore 10 /* w */
        start local 10 // double w
         2: .line 164
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelH:[D
            iload 5 /* level */
            daload
            ldc 2.0
            ddiv
            dstore 12 /* h */
        start local 12 // double h
         3: .line 168
            aload 0 /* this */
            bipush 65
            dload 1 /* x */
            dload 10 /* w */
            dsub
            dload 3 /* y */
            dload 12 /* h */
            dadd
            iload 5 /* level */
            aload 6 /* matches */
            aload 7 /* str */
            aload 8 /* shape */
            iload 9 /* maxLevel */
            invokevirtual org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.checkBattenberg:(CDDILjava/util/List;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
         4: .line 169
            aload 0 /* this */
            bipush 66
            dload 1 /* x */
            dload 10 /* w */
            dadd
            dload 3 /* y */
            dload 12 /* h */
            dadd
            iload 5 /* level */
            aload 6 /* matches */
            aload 7 /* str */
            aload 8 /* shape */
            iload 9 /* maxLevel */
            invokevirtual org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.checkBattenberg:(CDDILjava/util/List;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
         5: .line 170
            aload 0 /* this */
            bipush 67
            dload 1 /* x */
            dload 10 /* w */
            dsub
            dload 3 /* y */
            dload 12 /* h */
            dsub
            iload 5 /* level */
            aload 6 /* matches */
            aload 7 /* str */
            aload 8 /* shape */
            iload 9 /* maxLevel */
            invokevirtual org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.checkBattenberg:(CDDILjava/util/List;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
         6: .line 171
            aload 0 /* this */
            bipush 68
            dload 1 /* x */
            dload 10 /* w */
            dadd
            dload 3 /* y */
            dload 12 /* h */
            dsub
            iload 5 /* level */
            aload 6 /* matches */
            aload 7 /* str */
            aload 8 /* shape */
            iload 9 /* maxLevel */
            invokevirtual org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.checkBattenberg:(CDDILjava/util/List;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
         7: .line 177
            return
        end local 12 // double h
        end local 10 // double w
        end local 9 // int maxLevel
        end local 8 // org.locationtech.spatial4j.shape.Shape shape
        end local 7 // org.apache.lucene.util.BytesRef str
        end local 6 // java.util.List matches
        end local 5 // int level
        end local 3 // double y
        end local 1 // double x
        end local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;
            0    8     1         x  D
            0    8     3         y  D
            0    8     5     level  I
            0    8     6   matches  Ljava/util/List<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;
            0    8     7       str  Lorg/apache/lucene/util/BytesRef;
            0    8     8     shape  Lorg/locationtech/spatial4j/shape/Shape;
            0    8     9  maxLevel  I
            2    8    10         w  D
            3    8    12         h  D
    Signature: (DDILjava/util/List<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
    MethodParameters:
          Name  Flags
      x         
      y         
      level     
      matches   
      str       
      shape     
      maxLevel  

  protected void checkBattenberg(char, double, double, int, java.util.List<org.apache.lucene.spatial.prefix.tree.Cell>, org.apache.lucene.util.BytesRef, org.locationtech.spatial4j.shape.Shape, );
    descriptor: (CDDILjava/util/List;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=11, locals=19, args_size=9
        start local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
        start local 1 // char c
        start local 2 // double cx
        start local 4 // double cy
        start local 6 // int level
        start local 7 // java.util.List matches
        start local 8 // org.apache.lucene.util.BytesRef str
        start local 9 // org.locationtech.spatial4j.shape.Shape shape
        start local 10 // int maxLevel
         0: .line 188
            getstatic org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.$assertionsDisabled:Z
            ifne 1
            aload 8 /* str */
            getfield org.apache.lucene.util.BytesRef.length:I
            iload 6 /* level */
            if_icmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 189
      StackMap locals:
      StackMap stack:
            getstatic org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.$assertionsDisabled:Z
            ifne 2
            aload 8 /* str */
            getfield org.apache.lucene.util.BytesRef.offset:I
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelW:[D
            iload 6 /* level */
            daload
            ldc 2.0
            ddiv
            dstore 11 /* w */
        start local 11 // double w
         3: .line 191
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.levelH:[D
            iload 6 /* level */
            daload
            ldc 2.0
            ddiv
            dstore 13 /* h */
        start local 13 // double h
         4: .line 193
            aload 8 /* str */
            getfield org.apache.lucene.util.BytesRef.length:I
            istore 15 /* strlen */
        start local 15 // int strlen
         5: .line 194
            aload 0 /* this */
            getfield org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.ctx:Lorg/locationtech/spatial4j/context/SpatialContext;
            dload 2 /* cx */
            dload 11 /* w */
            dsub
            dload 2 /* cx */
            dload 11 /* w */
            dadd
            dload 4 /* cy */
            dload 13 /* h */
            dsub
            dload 4 /* cy */
            dload 13 /* h */
            dadd
            invokevirtual org.locationtech.spatial4j.context.SpatialContext.makeRectangle:(DDDD)Lorg/locationtech/spatial4j/shape/Rectangle;
            astore 16 /* rectangle */
        start local 16 // org.locationtech.spatial4j.shape.Rectangle rectangle
         6: .line 195
            aload 9 /* shape */
            aload 16 /* rectangle */
            invokeinterface org.locationtech.spatial4j.shape.Shape.relate:(Lorg/locationtech/spatial4j/shape/Shape;)Lorg/locationtech/spatial4j/shape/SpatialRelation;
            astore 17 /* v */
        start local 17 // org.locationtech.spatial4j.shape.SpatialRelation v
         7: .line 196
            getstatic org.locationtech.spatial4j.shape.SpatialRelation.CONTAINS:Lorg/locationtech/spatial4j/shape/SpatialRelation;
            aload 17 /* v */
            if_acmpne 11
         8: .line 197
            aload 8 /* str */
            getfield org.apache.lucene.util.BytesRef.bytes:[B
            aload 8 /* str */
            dup
            getfield org.apache.lucene.util.BytesRef.length:I
            dup_x1
            iconst_1
            iadd
            putfield org.apache.lucene.util.BytesRef.length:I
            iload 1 /* c */
            i2b
            bastore
         9: .line 199
            aload 7 /* matches */
            new org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$QuadCell
            dup
            aload 0 /* this */
            aload 8 /* str */
            invokestatic org.apache.lucene.util.BytesRef.deepCopyOf:(Lorg/apache/lucene/util/BytesRef;)Lorg/apache/lucene/util/BytesRef;
            aload 17 /* v */
            invokevirtual org.locationtech.spatial4j.shape.SpatialRelation.transpose:()Lorg/locationtech/spatial4j/shape/SpatialRelation;
            invokespecial org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$QuadCell.<init>:(Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/SpatialRelation;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 200
            goto 18
      StackMap locals: org.apache.lucene.spatial.prefix.tree.QuadPrefixTree int double double int java.util.List org.apache.lucene.util.BytesRef org.locationtech.spatial4j.shape.Shape int double double int org.locationtech.spatial4j.shape.Rectangle org.locationtech.spatial4j.shape.SpatialRelation
      StackMap stack:
        11: getstatic org.locationtech.spatial4j.shape.SpatialRelation.DISJOINT:Lorg/locationtech/spatial4j/shape/SpatialRelation;
            aload 17 /* v */
            if_acmpeq 18
        12: .line 203
            aload 8 /* str */
            getfield org.apache.lucene.util.BytesRef.bytes:[B
            aload 8 /* str */
            dup
            getfield org.apache.lucene.util.BytesRef.length:I
            dup_x1
            iconst_1
            iadd
            putfield org.apache.lucene.util.BytesRef.length:I
            iload 1 /* c */
            i2b
            bastore
        13: .line 205
            iload 6 /* level */
            iconst_1
            iadd
            istore 18 /* nextLevel */
        start local 18 // int nextLevel
        14: .line 206
            iload 18 /* nextLevel */
            iload 10 /* maxLevel */
            if_icmplt 17
        15: .line 208
            aload 7 /* matches */
            new org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$QuadCell
            dup
            aload 0 /* this */
            aload 8 /* str */
            invokestatic org.apache.lucene.util.BytesRef.deepCopyOf:(Lorg/apache/lucene/util/BytesRef;)Lorg/apache/lucene/util/BytesRef;
            aload 17 /* v */
            invokevirtual org.locationtech.spatial4j.shape.SpatialRelation.transpose:()Lorg/locationtech/spatial4j/shape/SpatialRelation;
            invokespecial org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$QuadCell.<init>:(Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/SpatialRelation;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        16: .line 209
            goto 18
        17: .line 210
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dload 2 /* cx */
            dload 4 /* cy */
            iload 18 /* nextLevel */
            aload 7 /* matches */
            aload 8 /* str */
            aload 9 /* shape */
            iload 10 /* maxLevel */
            invokevirtual org.apache.lucene.spatial.prefix.tree.QuadPrefixTree.build:(DDILjava/util/List;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
        end local 18 // int nextLevel
        18: .line 213
      StackMap locals:
      StackMap stack:
            aload 8 /* str */
            iload 15 /* strlen */
            putfield org.apache.lucene.util.BytesRef.length:I
        19: .line 214
            return
        end local 17 // org.locationtech.spatial4j.shape.SpatialRelation v
        end local 16 // org.locationtech.spatial4j.shape.Rectangle rectangle
        end local 15 // int strlen
        end local 13 // double h
        end local 11 // double w
        end local 10 // int maxLevel
        end local 9 // org.locationtech.spatial4j.shape.Shape shape
        end local 8 // org.apache.lucene.util.BytesRef str
        end local 7 // java.util.List matches
        end local 6 // int level
        end local 4 // double cy
        end local 2 // double cx
        end local 1 // char c
        end local 0 // org.apache.lucene.spatial.prefix.tree.QuadPrefixTree this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lorg/apache/lucene/spatial/prefix/tree/QuadPrefixTree;
            0   20     1          c  C
            0   20     2         cx  D
            0   20     4         cy  D
            0   20     6      level  I
            0   20     7    matches  Ljava/util/List<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;
            0   20     8        str  Lorg/apache/lucene/util/BytesRef;
            0   20     9      shape  Lorg/locationtech/spatial4j/shape/Shape;
            0   20    10   maxLevel  I
            3   20    11          w  D
            4   20    13          h  D
            5   20    15     strlen  I
            6   20    16  rectangle  Lorg/locationtech/spatial4j/shape/Rectangle;
            7   20    17          v  Lorg/locationtech/spatial4j/shape/SpatialRelation;
           14   18    18  nextLevel  I
    Signature: (CDDILjava/util/List<Lorg/apache/lucene/spatial/prefix/tree/Cell;>;Lorg/apache/lucene/util/BytesRef;Lorg/locationtech/spatial4j/shape/Shape;I)V
    MethodParameters:
          Name  Flags
      c         
      cx        
      cy        
      level     
      matches   
      str       
      shape     
      maxLevel  

  public double getDistanceForLevel(int);
    descriptor: (I)D
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            iload 1
            invokespecial org.apache.lucene.spatial.prefix.tree.LegacyPrefixTree.getDistanceForLevel:(I)D
            dreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.apache.lucene.spatial.prefix.tree.Cell readCell(org.apache.lucene.util.BytesRef, org.apache.lucene.spatial.prefix.tree.Cell);
    descriptor: (Lorg/apache/lucene/util/BytesRef;Lorg/apache/lucene/spatial/prefix/tree/Cell;)Lorg/apache/lucene/spatial/prefix/tree/Cell;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokespecial org.apache.lucene.spatial.prefix.tree.LegacyPrefixTree.readCell:(Lorg/apache/lucene/util/BytesRef;Lorg/apache/lucene/spatial/prefix/tree/Cell;)Lorg/apache/lucene/spatial/prefix/tree/Cell;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.apache.lucene.spatial.prefix.tree.CellIterator getTreeCellIterator(org.locationtech.spatial4j.shape.Shape, int);
    descriptor: (Lorg/locationtech/spatial4j/shape/Shape;I)Lorg/apache/lucene/spatial/prefix/tree/CellIterator;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            iload 2
            invokespecial org.apache.lucene.spatial.prefix.tree.LegacyPrefixTree.getTreeCellIterator:(Lorg/locationtech/spatial4j/shape/Shape;I)Lorg/apache/lucene/spatial/prefix/tree/CellIterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "QuadPrefixTree.java"
NestMembers:
  org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$Factory  org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$QuadCell
InnerClasses:
  public Factory = org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$Factory of org.apache.lucene.spatial.prefix.tree.QuadPrefixTree
  protected QuadCell = org.apache.lucene.spatial.prefix.tree.QuadPrefixTree$QuadCell of org.apache.lucene.spatial.prefix.tree.QuadPrefixTree