public class org.apache.cassandra.utils.EstimatedHistogram
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.utils.EstimatedHistogram
  super_class: java.lang.Object
{
  public static final org.apache.cassandra.utils.EstimatedHistogram$EstimatedHistogramSerializer serializer;
    descriptor: Lorg/apache/cassandra/utils/EstimatedHistogram$EstimatedHistogramSerializer;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final long[] bucketOffsets;
    descriptor: [J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final java.util.concurrent.atomic.AtomicLongArray buckets;
    descriptor: Ljava/util/concurrent/atomic/AtomicLongArray;
    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=2, locals=0, args_size=0
         0: .line 32
            ldc Lorg/apache/cassandra/utils/EstimatedHistogram;
            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.cassandra.utils.EstimatedHistogram.$assertionsDisabled:Z
         3: .line 34
            new org.apache.cassandra.utils.EstimatedHistogram$EstimatedHistogramSerializer
            dup
            invokespecial org.apache.cassandra.utils.EstimatedHistogram$EstimatedHistogramSerializer.<init>:()V
            putstatic org.apache.cassandra.utils.EstimatedHistogram.serializer:Lorg/apache/cassandra/utils/EstimatedHistogram$EstimatedHistogramSerializer;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 54
            aload 0 /* this */
            bipush 90
            invokespecial org.apache.cassandra.utils.EstimatedHistogram.<init>:(I)V
         1: .line 55
            return
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/utils/EstimatedHistogram;

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // int bucketCount
         0: .line 59
            aload 0 /* this */
            iload 1 /* bucketCount */
            iconst_0
            invokespecial org.apache.cassandra.utils.EstimatedHistogram.<init>:(IZ)V
         1: .line 60
            return
        end local 1 // int bucketCount
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0    2     1  bucketCount  I
    MethodParameters:
             Name  Flags
      bucketCount  

  public void <init>(int, boolean);
    descriptor: (IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // int bucketCount
        start local 2 // boolean considerZeroes
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            aload 0 /* this */
            iload 1 /* bucketCount */
            iload 2 /* considerZeroes */
            invokestatic org.apache.cassandra.utils.EstimatedHistogram.newOffsets:(IZ)[J
            putfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
         2: .line 65
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLongArray
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            arraylength
            iconst_1
            iadd
            invokespecial java.util.concurrent.atomic.AtomicLongArray.<init>:(I)V
            putfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
         3: .line 66
            return
        end local 2 // boolean considerZeroes
        end local 1 // int bucketCount
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0    4     1     bucketCount  I
            0    4     2  considerZeroes  Z
    MethodParameters:
                Name  Flags
      bucketCount     
      considerZeroes  

  public void <init>(long[]);
    descriptor: ([J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // long[] bucketData
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 75
            getstatic org.apache.cassandra.utils.EstimatedHistogram.$assertionsDisabled:Z
            ifne 3
            aload 1 /* bucketData */
            ifnull 2
            aload 1 /* bucketData */
            arraylength
            ifgt 3
      StackMap locals: org.apache.cassandra.utils.EstimatedHistogram long[]
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            ldc "Bucket data must be an array of size more than 0"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bucketData */
            arraylength
            iconst_1
            isub
            iconst_0
            invokestatic org.apache.cassandra.utils.EstimatedHistogram.newOffsets:(IZ)[J
            putfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
         4: .line 77
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLongArray
            dup
            aload 1 /* bucketData */
            invokespecial java.util.concurrent.atomic.AtomicLongArray.<init>:([J)V
            putfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
         5: .line 78
            return
        end local 1 // long[] bucketData
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0    6     1  bucketData  [J
    MethodParameters:
            Name  Flags
      bucketData  

  public void <init>(long[], long[]);
    descriptor: ([J[J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // long[] offsets
        start local 2 // long[] bucketData
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 82
            getstatic org.apache.cassandra.utils.EstimatedHistogram.$assertionsDisabled:Z
            ifne 2
            aload 2 /* bucketData */
            arraylength
            aload 1 /* offsets */
            arraylength
            iconst_1
            iadd
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 83
      StackMap locals: org.apache.cassandra.utils.EstimatedHistogram long[] long[]
      StackMap stack:
            aload 0 /* this */
            aload 1 /* offsets */
            putfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
         3: .line 84
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLongArray
            dup
            aload 2 /* bucketData */
            invokespecial java.util.concurrent.atomic.AtomicLongArray.<init>:([J)V
            putfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
         4: .line 85
            return
        end local 2 // long[] bucketData
        end local 1 // long[] offsets
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0    5     1     offsets  [J
            0    5     2  bucketData  [J
    MethodParameters:
            Name  Flags
      offsets     
      bucketData  

  public static long[] newOffsets(int, boolean);
    descriptor: (IZ)[J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // int size
        start local 1 // boolean considerZeroes
         0: .line 89
            iload 0 /* size */
            iload 1 /* considerZeroes */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: int
         1: iconst_0
      StackMap locals: int int
      StackMap stack: int int
         2: iadd
            newarray 11
            astore 2 /* result */
        start local 2 // long[] result
         3: .line 90
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: .line 91
            iload 1 /* considerZeroes */
            ifeq 6
         5: .line 92
            aload 2 /* result */
            iload 3 /* i */
            iinc 3 /* i */ 1
            lconst_0
            lastore
         6: .line 93
      StackMap locals: long[] int
      StackMap stack:
            lconst_1
            lstore 4 /* last */
        start local 4 // long last
         7: .line 94
            aload 2 /* result */
            iload 3 /* i */
            iinc 3 /* i */ 1
            lload 4 /* last */
            lastore
         8: .line 95
            goto 15
         9: .line 97
      StackMap locals: long
      StackMap stack:
            lload 4 /* last */
            l2d
            ldc 1.2
            dmul
            invokestatic java.lang.Math.round:(D)J
            lstore 6 /* next */
        start local 6 // long next
        10: .line 98
            lload 6 /* next */
            lload 4 /* last */
            lcmp
            ifne 12
        11: .line 99
            lload 6 /* next */
            lconst_1
            ladd
            lstore 6 /* next */
        12: .line 100
      StackMap locals: long
      StackMap stack:
            aload 2 /* result */
            iload 3 /* i */
            lload 6 /* next */
            lastore
        13: .line 101
            lload 6 /* next */
            lstore 4 /* last */
        end local 6 // long next
        14: .line 95
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 3 /* i */
            aload 2 /* result */
            arraylength
            if_icmplt 9
        16: .line 104
            aload 2 /* result */
            areturn
        end local 4 // long last
        end local 3 // int i
        end local 2 // long[] result
        end local 1 // boolean considerZeroes
        end local 0 // int size
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            size  I
            0   17     1  considerZeroes  Z
            3   17     2          result  [J
            4   17     3               i  I
            7   17     4            last  J
           10   14     6            next  J
    MethodParameters:
                Name  Flags
      size            
      considerZeroes  

  public long[] getBucketOffsets();
    descriptor: ()[J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 112
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            areturn
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/EstimatedHistogram;

  public void add(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // long n
         0: .line 121
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            lload 1 /* n */
            invokestatic java.util.Arrays.binarySearch:([JJ)I
            istore 3 /* index */
        start local 3 // int index
         1: .line 122
            iload 3 /* index */
            ifge 3
         2: .line 125
            iload 3 /* index */
            ineg
            iconst_1
            isub
            istore 3 /* index */
         3: .line 128
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 3 /* index */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.incrementAndGet:(I)J
            pop2
         4: .line 129
            return
        end local 3 // int index
        end local 1 // long n
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0    5     1      n  J
            1    5     3  index  I
    MethodParameters:
      Name  Flags
      n     

  long get(int);
    descriptor: (I)J
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // int bucket
         0: .line 136
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 1 /* bucket */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lreturn
        end local 1 // int bucket
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0    1     1  bucket  I
    MethodParameters:
        Name  Flags
      bucket  

  public long[] getBuckets(boolean);
    descriptor: (Z)[J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // boolean reset
         0: .line 145
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            istore 2 /* len */
        start local 2 // int len
         1: .line 146
            iload 2 /* len */
            newarray 11
            astore 3 /* rv */
        start local 3 // long[] rv
         2: .line 148
            iload 1 /* reset */
            ifeq 9
         3: .line 149
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 150
      StackMap locals: int long[] int
      StackMap stack:
            aload 3 /* rv */
            iload 4 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 4 /* i */
            lconst_0
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.getAndSet:(IJ)J
            lastore
         6: .line 149
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 2 /* len */
            if_icmplt 5
        end local 4 // int i
         8: .line 150
            goto 14
         9: .line 152
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        10: goto 13
        11: .line 153
      StackMap locals: int
      StackMap stack:
            aload 3 /* rv */
            iload 4 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 4 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lastore
        12: .line 152
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            iload 2 /* len */
            if_icmplt 11
        end local 4 // int i
        14: .line 155
      StackMap locals:
      StackMap stack:
            aload 3 /* rv */
            areturn
        end local 3 // long[] rv
        end local 2 // int len
        end local 1 // boolean reset
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0   15     1  reset  Z
            1   15     2    len  I
            2   15     3     rv  [J
            4    8     4      i  I
           10   14     4      i  I
    MethodParameters:
       Name  Flags
      reset  

  public long min();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 163
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 7
         2: .line 165
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 1 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lconst_0
            lcmp
            ifle 6
         3: .line 166
            iload 1 /* i */
            ifne 4
            lconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: lconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            iload 1 /* i */
            iconst_1
            isub
            laload
            ladd
      StackMap locals:
      StackMap stack: long
         5: lreturn
         6: .line 163
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 1 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            if_icmplt 2
        end local 1 // int i
         8: .line 168
            lconst_0
            lreturn
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            1    8     1     i  I

  public long max();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 177
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            iconst_1
            isub
            istore 1 /* lastBucket */
        start local 1 // int lastBucket
         1: .line 178
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 1 /* lastBucket */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lconst_0
            lcmp
            ifle 3
         2: .line 179
            ldc 9223372036854775807
            lreturn
         3: .line 181
      StackMap locals: int
      StackMap stack:
            iload 1 /* lastBucket */
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         4: goto 8
         5: .line 183
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 2 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lconst_0
            lcmp
            ifle 7
         6: .line 184
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            iload 2 /* i */
            laload
            lreturn
         7: .line 181
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            ifge 5
        end local 2 // int i
         9: .line 186
            lconst_0
            lreturn
        end local 1 // int lastBucket
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            1   10     1  lastBucket  I
            4    9     2           i  I

  public long percentile(double);
    descriptor: (D)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // double percentile
         0: .line 195
            getstatic org.apache.cassandra.utils.EstimatedHistogram.$assertionsDisabled:Z
            ifne 2
            dload 1 /* percentile */
            dconst_0
            dcmpl
            iflt 1
            dload 1 /* percentile */
            dconst_1
            dcmpg
            ifle 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            iconst_1
            isub
            istore 3 /* lastBucket */
        start local 3 // int lastBucket
         3: .line 197
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 3 /* lastBucket */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lconst_0
            lcmp
            ifle 5
         4: .line 198
            new java.lang.IllegalStateException
            dup
            ldc "Unable to compute when histogram overflowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 200
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.EstimatedHistogram.count:()J
            l2d
            dload 1 /* percentile */
            dmul
            invokestatic java.lang.Math.ceil:(D)D
            d2l
            lstore 4 /* pcount */
        start local 4 // long pcount
         6: .line 201
            lload 4 /* pcount */
            lconst_0
            lcmp
            ifne 8
         7: .line 202
            lconst_0
            lreturn
         8: .line 204
      StackMap locals: long
      StackMap stack:
            lconst_0
            lstore 6 /* elements */
        start local 6 // long elements
         9: .line 205
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        10: goto 15
        11: .line 207
      StackMap locals: long int
      StackMap stack:
            lload 6 /* elements */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 8 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            ladd
            lstore 6 /* elements */
        12: .line 208
            lload 6 /* elements */
            lload 4 /* pcount */
            lcmp
            iflt 14
        13: .line 209
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            iload 8 /* i */
            laload
            lreturn
        14: .line 205
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 8 /* i */
            iload 3 /* lastBucket */
            if_icmplt 11
        end local 8 // int i
        16: .line 211
            lconst_0
            lreturn
        end local 6 // long elements
        end local 4 // long pcount
        end local 3 // int lastBucket
        end local 1 // double percentile
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0   17     1  percentile  D
            3   17     3  lastBucket  I
            6   17     4      pcount  J
            9   17     6    elements  J
           10   16     8           i  I
    MethodParameters:
            Name  Flags
      percentile  

  public long mean();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 220
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.EstimatedHistogram.rawMean:()D
            invokestatic java.lang.Math.ceil:(D)D
            d2l
            lreturn
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/EstimatedHistogram;

  public double rawMean();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 229
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            iconst_1
            isub
            istore 1 /* lastBucket */
        start local 1 // int lastBucket
         1: .line 230
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 1 /* lastBucket */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lconst_0
            lcmp
            ifle 3
         2: .line 231
            new java.lang.IllegalStateException
            dup
            ldc "Unable to compute ceiling for max when histogram overflowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 233
      StackMap locals: int
      StackMap stack:
            lconst_0
            lstore 2 /* elements */
        start local 2 // long elements
         4: .line 234
            lconst_0
            lstore 4 /* sum */
        start local 4 // long sum
         5: .line 235
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 11
         7: .line 237
      StackMap locals: long long int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 6 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lstore 7 /* bCount */
        start local 7 // long bCount
         8: .line 238
            lload 2 /* elements */
            lload 7 /* bCount */
            ladd
            lstore 2 /* elements */
         9: .line 239
            lload 4 /* sum */
            lload 7 /* bCount */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            iload 6 /* i */
            laload
            lmul
            ladd
            lstore 4 /* sum */
        end local 7 // long bCount
        10: .line 235
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            iload 1 /* lastBucket */
            if_icmplt 7
        end local 6 // int i
        12: .line 242
            lload 4 /* sum */
            l2d
            lload 2 /* elements */
            l2d
            ddiv
            dreturn
        end local 4 // long sum
        end local 2 // long elements
        end local 1 // int lastBucket
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            1   13     1  lastBucket  I
            4   13     2    elements  J
            5   13     4         sum  J
            6   12     6           i  I
            8   10     7      bCount  J

  public long count();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 250
            lconst_0
            lstore 1 /* sum */
        start local 1 // long sum
         1: .line 251
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 5
         3: .line 252
      StackMap locals: long int
      StackMap stack:
            lload 1 /* sum */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 3 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            ladd
            lstore 1 /* sum */
         4: .line 251
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            if_icmplt 3
        end local 3 // int i
         6: .line 253
            lload 1 /* sum */
            lreturn
        end local 1 // long sum
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            1    7     1   sum  J
            2    6     3     i  I

  public long getLargestBucketOffset();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 261
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            arraylength
            iconst_1
            isub
            laload
            lreturn
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/EstimatedHistogram;

  public boolean isOverflowed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 269
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            iconst_1
            isub
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lconst_0
            lcmp
            ifle 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/utils/EstimatedHistogram;

  public void log(org.slf4j.Logger);
    descriptor: (Lorg/slf4j/Logger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // org.slf4j.Logger log
         0: .line 281
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            iconst_1
            isub
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lconst_0
            lcmp
            ifne 3
         1: .line 282
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            iconst_1
            isub
            istore 2 /* nameCount */
        start local 2 // int nameCount
         2: goto 4
        end local 2 // int nameCount
         3: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            istore 2 /* nameCount */
        start local 2 // int nameCount
         4: .line 285
      StackMap locals: int
      StackMap stack:
            iload 2 /* nameCount */
            anewarray java.lang.String
            astore 3 /* names */
        start local 3 // java.lang.String[] names
         5: .line 287
            iconst_0
            istore 4 /* maxNameLength */
        start local 4 // int maxNameLength
         6: .line 288
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         7: goto 11
         8: .line 290
      StackMap locals: java.lang.String[] int int
      StackMap stack:
            aload 3 /* names */
            iload 5 /* i */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.bucketOffsets:[J
            iload 5 /* i */
            invokestatic org.apache.cassandra.utils.EstimatedHistogram.nameOfRange:([JI)Ljava/lang/String;
            aastore
         9: .line 291
            iload 4 /* maxNameLength */
            aload 3 /* names */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.String.length:()I
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxNameLength */
        10: .line 288
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            iload 2 /* nameCount */
            if_icmplt 8
        end local 5 // int i
        12: .line 295
            new java.lang.StringBuilder
            dup
            ldc "%"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* maxNameLength */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "s: %d"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* formatstr */
        start local 5 // java.lang.String formatstr
        13: .line 296
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        14: goto 20
        15: .line 298
      StackMap locals: org.apache.cassandra.utils.EstimatedHistogram org.slf4j.Logger int java.lang.String[] int java.lang.String int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.EstimatedHistogram.buckets:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 6 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            lstore 7 /* count */
        start local 7 // long count
        16: .line 302
            iload 6 /* i */
            ifne 18
            lload 7 /* count */
            lconst_0
            lcmp
            ifne 18
        17: .line 303
            goto 19
        18: .line 304
      StackMap locals: long
      StackMap stack:
            aload 1 /* log */
            aload 5 /* formatstr */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* names */
            iload 6 /* i */
            aaload
            aastore
            dup
            iconst_1
            lload 7 /* count */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        end local 7 // long count
        19: .line 296
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 6 /* i */
            iload 2 /* nameCount */
            if_icmplt 15
        end local 6 // int i
        21: .line 306
            return
        end local 5 // java.lang.String formatstr
        end local 4 // int maxNameLength
        end local 3 // java.lang.String[] names
        end local 2 // int nameCount
        end local 1 // org.slf4j.Logger log
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0           this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0   22     1            log  Lorg/slf4j/Logger;
            2    3     2      nameCount  I
            4   22     2      nameCount  I
            5   22     3          names  [Ljava/lang/String;
            6   22     4  maxNameLength  I
            7   12     5              i  I
           13   22     5      formatstr  Ljava/lang/String;
           14   21     6              i  I
           16   19     7          count  J
    MethodParameters:
      Name  Flags
      log   

  private static java.lang.String nameOfRange(long[], int);
    descriptor: ([JI)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // long[] bucketOffsets
        start local 1 // int index
         0: .line 310
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 311
            aload 2 /* sb */
            aload 0 /* bucketOffsets */
            iload 1 /* index */
            invokestatic org.apache.cassandra.utils.EstimatedHistogram.appendRange:(Ljava/lang/StringBuilder;[JI)V
         2: .line 312
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // int index
        end local 0 // long[] bucketOffsets
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0  bucketOffsets  [J
            0    3     1          index  I
            1    3     2             sb  Ljava/lang/StringBuilder;
    MethodParameters:
               Name  Flags
      bucketOffsets  
      index          

  private static void appendRange(java.lang.StringBuilder, long[], int);
    descriptor: (Ljava/lang/StringBuilder;[JI)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.StringBuilder sb
        start local 1 // long[] bucketOffsets
        start local 2 // int index
         0: .line 317
            aload 0 /* sb */
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 318
            iload 2 /* index */
            ifne 5
         2: .line 319
            aload 1 /* bucketOffsets */
            iconst_0
            laload
            lconst_0
            lcmp
            ifle 4
         3: .line 322
            aload 0 /* sb */
            ldc "1"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 6
         4: .line 324
      StackMap locals:
      StackMap stack:
            aload 0 /* sb */
            ldc "-Inf"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 6
         5: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* sb */
            aload 1 /* bucketOffsets */
            iload 2 /* index */
            iconst_1
            isub
            laload
            lconst_1
            ladd
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
         6: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* sb */
            ldc ".."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 328
            iload 2 /* index */
            aload 1 /* bucketOffsets */
            arraylength
            if_icmpne 9
         8: .line 329
            aload 0 /* sb */
            ldc "Inf"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 10
         9: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* sb */
            aload 1 /* bucketOffsets */
            iload 2 /* index */
            laload
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            pop
        10: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* sb */
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 333
            return
        end local 2 // int index
        end local 1 // long[] bucketOffsets
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0             sb  Ljava/lang/StringBuilder;
            0   12     1  bucketOffsets  [J
            0   12     2          index  I
    MethodParameters:
               Name  Flags
      sb             
      bucketOffsets  
      index          

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
        start local 1 // java.lang.Object o
         0: .line 338
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 2
         1: .line 339
            iconst_1
            ireturn
         2: .line 341
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.apache.cassandra.utils.EstimatedHistogram
            ifne 4
         3: .line 342
            iconst_0
            ireturn
         4: .line 344
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.apache.cassandra.utils.EstimatedHistogram
            astore 2 /* that */
        start local 2 // org.apache.cassandra.utils.EstimatedHistogram that
         5: .line 345
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.EstimatedHistogram.getBucketOffsets:()[J
            aload 2 /* that */
            invokevirtual org.apache.cassandra.utils.EstimatedHistogram.getBucketOffsets:()[J
            invokestatic java.util.Arrays.equals:([J[J)Z
            ifeq 8
         6: .line 346
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.cassandra.utils.EstimatedHistogram.getBuckets:(Z)[J
            aload 2 /* that */
            iconst_0
            invokevirtual org.apache.cassandra.utils.EstimatedHistogram.getBuckets:(Z)[J
            invokestatic java.util.Arrays.equals:([J[J)Z
            ifeq 8
         7: .line 345
            iconst_1
            ireturn
      StackMap locals: org.apache.cassandra.utils.EstimatedHistogram
      StackMap stack:
         8: iconst_0
            ireturn
        end local 2 // org.apache.cassandra.utils.EstimatedHistogram that
        end local 1 // java.lang.Object o
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/cassandra/utils/EstimatedHistogram;
            0    9     1     o  Ljava/lang/Object;
            5    9     2  that  Lorg/apache/cassandra/utils/EstimatedHistogram;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.EstimatedHistogram this
         0: .line 352
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.EstimatedHistogram.getBucketOffsets:()[J
            aastore
            dup
            iconst_1
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.cassandra.utils.EstimatedHistogram.getBuckets:(Z)[J
            aastore
            invokestatic com.google.common.base.Objects.hashCode:([Ljava/lang/Object;)I
            ireturn
        end local 0 // org.apache.cassandra.utils.EstimatedHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/EstimatedHistogram;
}
SourceFile: "EstimatedHistogram.java"
NestMembers:
  org.apache.cassandra.utils.EstimatedHistogram$EstimatedHistogramSerializer
InnerClasses:
  public EstimatedHistogramSerializer = org.apache.cassandra.utils.EstimatedHistogram$EstimatedHistogramSerializer of org.apache.cassandra.utils.EstimatedHistogram