public final class com.google.common.hash.BloomFilter<T> implements com.google.common.base.Predicate<T>, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.common.hash.BloomFilter
  super_class: java.lang.Object
{
  private final com.google.common.hash.BloomFilterStrategies$LockFreeBitArray bits;
    descriptor: Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int numHashFunctions;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.google.common.hash.Funnel<? super T> funnel;
    descriptor: Lcom/google/common/hash/Funnel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/google/common/hash/Funnel<-TT;>;

  private final com.google.common.hash.BloomFilter$Strategy strategy;
    descriptor: Lcom/google/common/hash/BloomFilter$Strategy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(com.google.common.hash.BloomFilterStrategies$LockFreeBitArray, int, com.google.common.hash.Funnel<? super T>, com.google.common.hash.BloomFilter$Strategy);
    descriptor: (Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;ILcom/google/common/hash/Funnel;Lcom/google/common/hash/BloomFilter$Strategy;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.google.common.hash.BloomFilter this
        start local 1 // com.google.common.hash.BloomFilterStrategies$LockFreeBitArray bits
        start local 2 // int numHashFunctions
        start local 3 // com.google.common.hash.Funnel funnel
        start local 4 // com.google.common.hash.BloomFilter$Strategy strategy
         0: .line 113
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 115
            iload 2 /* numHashFunctions */
            ifle 2
            iconst_1
            goto 3
      StackMap locals: com.google.common.hash.BloomFilter com.google.common.hash.BloomFilterStrategies$LockFreeBitArray int com.google.common.hash.Funnel com.google.common.hash.BloomFilter$Strategy
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "numHashFunctions (%s) must be > 0"
            iload 2 /* numHashFunctions */
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;I)V
         4: .line 117
            iload 2 /* numHashFunctions */
            sipush 255
            if_icmpgt 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: ldc "numHashFunctions (%s) must be <= 255"
            iload 2 /* numHashFunctions */
         7: .line 116
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;I)V
         8: .line 118
            aload 0 /* this */
            aload 1 /* bits */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.hash.BloomFilterStrategies$LockFreeBitArray
            putfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
         9: .line 119
            aload 0 /* this */
            iload 2 /* numHashFunctions */
            putfield com.google.common.hash.BloomFilter.numHashFunctions:I
        10: .line 120
            aload 0 /* this */
            aload 3 /* funnel */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.hash.Funnel
            putfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
        11: .line 121
            aload 0 /* this */
            aload 4 /* strategy */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.hash.BloomFilter$Strategy
            putfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
        12: .line 122
            return
        end local 4 // com.google.common.hash.BloomFilter$Strategy strategy
        end local 3 // com.google.common.hash.Funnel funnel
        end local 2 // int numHashFunctions
        end local 1 // com.google.common.hash.BloomFilterStrategies$LockFreeBitArray bits
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lcom/google/common/hash/BloomFilter<TT;>;
            0   13     1              bits  Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            0   13     2  numHashFunctions  I
            0   13     3            funnel  Lcom/google/common/hash/Funnel<-TT;>;
            0   13     4          strategy  Lcom/google/common/hash/BloomFilter$Strategy;
    Signature: (Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;ILcom/google/common/hash/Funnel<-TT;>;Lcom/google/common/hash/BloomFilter$Strategy;)V
    MethodParameters:
                  Name  Flags
      bits              
      numHashFunctions  
      funnel            
      strategy          

  public com.google.common.hash.BloomFilter<T> copy();
    descriptor: ()Lcom/google/common/hash/BloomFilter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.google.common.hash.BloomFilter this
         0: .line 131
            new com.google.common.hash.BloomFilter
            dup
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            invokevirtual com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.copy:()Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            invokespecial com.google.common.hash.BloomFilter.<init>:(Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;ILcom/google/common/hash/Funnel;Lcom/google/common/hash/BloomFilter$Strategy;)V
            areturn
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/hash/BloomFilter<TT;>;
    Signature: ()Lcom/google/common/hash/BloomFilter<TT;>;

  public boolean mightContain();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.google.common.hash.BloomFilter this
        start local 1 // java.lang.Object object
         0: .line 139
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            aload 1 /* object */
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            invokeinterface com.google.common.hash.BloomFilter$Strategy.mightContain:(Ljava/lang/Object;Lcom/google/common/hash/Funnel;ILcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/google/common/hash/BloomFilter<TT;>;
            0    1     1  object  TT;
    Signature: (TT;)Z
    MethodParameters:
        Name  Flags
      object  

  public boolean apply();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.hash.BloomFilter this
        start local 1 // java.lang.Object input
         0: .line 149
            aload 0 /* this */
            aload 1 /* input */
            invokevirtual com.google.common.hash.BloomFilter.mightContain:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object input
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/google/common/hash/BloomFilter<TT;>;
            0    1     1  input  TT;
    Signature: (TT;)Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      input  

  public boolean put();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.google.common.hash.BloomFilter this
        start local 1 // java.lang.Object object
         0: .line 165
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            aload 1 /* object */
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            invokeinterface com.google.common.hash.BloomFilter$Strategy.put:(Ljava/lang/Object;Lcom/google/common/hash/Funnel;ILcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;)Z
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/google/common/hash/BloomFilter<TT;>;
            0    1     1  object  TT;
    Signature: (TT;)Z
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
        Name  Flags
      object  

  public double expectedFpp();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.google.common.hash.BloomFilter this
         0: .line 181
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            invokevirtual com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.bitCount:()J
            l2d
            aload 0 /* this */
            invokevirtual com.google.common.hash.BloomFilter.bitSize:()J
            l2d
            ddiv
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            i2d
            invokestatic java.lang.Math.pow:(DD)D
            dreturn
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/hash/BloomFilter<TT;>;

  public long approximateElementCount();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // com.google.common.hash.BloomFilter this
         0: .line 192
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            invokevirtual com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.bitSize:()J
            lstore 1 /* bitSize */
        start local 1 // long bitSize
         1: .line 193
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            invokevirtual com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.bitCount:()J
            lstore 3 /* bitCount */
        start local 3 // long bitCount
         2: .line 201
            lload 3 /* bitCount */
            l2d
            lload 1 /* bitSize */
            l2d
            ddiv
            dstore 5 /* fractionOfBitsSet */
        start local 5 // double fractionOfBitsSet
         3: .line 203
            dload 5 /* fractionOfBitsSet */
            dneg
            invokestatic java.lang.Math.log1p:(D)D
            dneg
            lload 1 /* bitSize */
            l2d
            dmul
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            i2d
            ddiv
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
         4: .line 202
            invokestatic com.google.common.math.DoubleMath.roundToLong:(DLjava/math/RoundingMode;)J
            lreturn
        end local 5 // double fractionOfBitsSet
        end local 3 // long bitCount
        end local 1 // long bitSize
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lcom/google/common/hash/BloomFilter<TT;>;
            1    5     1            bitSize  J
            2    5     3           bitCount  J
            3    5     5  fractionOfBitsSet  D

  long bitSize();
    descriptor: ()J
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.hash.BloomFilter this
         0: .line 209
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            invokevirtual com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.bitSize:()J
            lreturn
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/hash/BloomFilter<TT;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()

  public boolean isCompatible(com.google.common.hash.BloomFilter<T>);
    descriptor: (Lcom/google/common/hash/BloomFilter;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.hash.BloomFilter this
        start local 1 // com.google.common.hash.BloomFilter that
         0: .line 228
            aload 1 /* that */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 229
            aload 0 /* this */
            aload 1 /* that */
            if_acmpeq 7
         2: .line 230
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            if_icmpne 7
         3: .line 231
            aload 0 /* this */
            invokevirtual com.google.common.hash.BloomFilter.bitSize:()J
            aload 1 /* that */
            invokevirtual com.google.common.hash.BloomFilter.bitSize:()J
            lcmp
            ifne 7
         4: .line 232
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 233
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 229
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
        end local 1 // com.google.common.hash.BloomFilter that
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/google/common/hash/BloomFilter<TT;>;
            0    8     1  that  Lcom/google/common/hash/BloomFilter<TT;>;
    Signature: (Lcom/google/common/hash/BloomFilter<TT;>;)Z
    MethodParameters:
      Name  Flags
      that  

  public void putAll(com.google.common.hash.BloomFilter<T>);
    descriptor: (Lcom/google/common/hash/BloomFilter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.google.common.hash.BloomFilter this
        start local 1 // com.google.common.hash.BloomFilter that
         0: .line 246
            aload 1 /* that */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 247
            aload 0 /* this */
            aload 1 /* that */
            if_acmpeq 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "Cannot combine a BloomFilter with itself."
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
         4: .line 249
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            if_icmpne 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
         6: .line 250
      StackMap locals:
      StackMap stack: int
            ldc "BloomFilters must have the same number of hash functions (%s != %s)"
         7: .line 251
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
         8: .line 252
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
         9: .line 248
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;II)V
        10: .line 254
            aload 0 /* this */
            invokevirtual com.google.common.hash.BloomFilter.bitSize:()J
            aload 1 /* that */
            invokevirtual com.google.common.hash.BloomFilter.bitSize:()J
            lcmp
            ifne 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
        12: .line 255
      StackMap locals:
      StackMap stack: int
            ldc "BloomFilters must have the same size underlying bit arrays (%s != %s)"
        13: .line 256
            aload 0 /* this */
            invokevirtual com.google.common.hash.BloomFilter.bitSize:()J
        14: .line 257
            aload 1 /* that */
            invokevirtual com.google.common.hash.BloomFilter.bitSize:()J
        15: .line 253
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;JJ)V
        16: .line 259
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
        17: .line 260
            ldc "BloomFilters must have equal strategies (%s != %s)"
        18: .line 261
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
        19: .line 262
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
        20: .line 258
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        21: .line 264
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
        22: .line 265
            ldc "BloomFilters must have equal funnels (%s != %s)"
        23: .line 266
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
        24: .line 267
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
        25: .line 263
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        26: .line 268
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            aload 1 /* that */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            invokevirtual com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.putAll:(Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;)V
        27: .line 269
            return
        end local 1 // com.google.common.hash.BloomFilter that
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   28     0  this  Lcom/google/common/hash/BloomFilter<TT;>;
            0   28     1  that  Lcom/google/common/hash/BloomFilter<TT;>;
    Signature: (Lcom/google/common/hash/BloomFilter<TT;>;)V
    MethodParameters:
      Name  Flags
      that  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.google.common.hash.BloomFilter this
        start local 1 // java.lang.Object object
         0: .line 273
            aload 1 /* object */
            aload 0 /* this */
            if_acmpne 2
         1: .line 274
            iconst_1
            ireturn
         2: .line 276
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            instanceof com.google.common.hash.BloomFilter
            ifeq 10
         3: .line 277
            aload 1 /* object */
            checkcast com.google.common.hash.BloomFilter
            astore 2 /* that */
        start local 2 // com.google.common.hash.BloomFilter that
         4: .line 278
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            aload 2 /* that */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            if_icmpne 9
         5: .line 279
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            aload 2 /* that */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 9
         6: .line 280
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            aload 2 /* that */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            invokevirtual com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 281
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            aload 2 /* that */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 278
            iconst_1
            ireturn
      StackMap locals: com.google.common.hash.BloomFilter
      StackMap stack:
         9: iconst_0
            ireturn
        end local 2 // com.google.common.hash.BloomFilter that
        10: .line 283
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/google/common/hash/BloomFilter<TT;>;
            0   11     1  object  Ljava/lang/Object;
            4   10     2    that  Lcom/google/common/hash/BloomFilter<*>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
        Name  Flags
      object  

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.google.common.hash.BloomFilter this
         0: .line 288
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.funnel:Lcom/google/common/hash/Funnel;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            aastore
            invokestatic com.google.common.base.Objects.hashCode:([Ljava/lang/Object;)I
            ireturn
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/hash/BloomFilter<TT;>;

  public static <T> java.util.stream.Collector<T, ?, com.google.common.hash.BloomFilter<T>> toBloomFilter(com.google.common.hash.Funnel<? super T>, long);
    descriptor: (Lcom/google/common/hash/Funnel;J)Ljava/util/stream/Collector;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.google.common.hash.Funnel funnel
        start local 1 // long expectedInsertions
         0: .line 314
            aload 0 /* funnel */
            lload 1 /* expectedInsertions */
            ldc 0.03
            invokestatic com.google.common.hash.BloomFilter.toBloomFilter:(Lcom/google/common/hash/Funnel;JD)Ljava/util/stream/Collector;
            areturn
        end local 1 // long expectedInsertions
        end local 0 // com.google.common.hash.Funnel funnel
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0              funnel  Lcom/google/common/hash/Funnel<-TT;>;
            0    1     1  expectedInsertions  J
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/hash/Funnel<-TT;>;J)Ljava/util/stream/Collector<TT;*Lcom/google/common/hash/BloomFilter<TT;>;>;
    MethodParameters:
                    Name  Flags
      funnel              
      expectedInsertions  

  public static <T> java.util.stream.Collector<T, ?, com.google.common.hash.BloomFilter<T>> toBloomFilter(com.google.common.hash.Funnel<? super T>, long, double);
    descriptor: (Lcom/google/common/hash/Funnel;JD)Ljava/util/stream/Collector;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // com.google.common.hash.Funnel funnel
        start local 1 // long expectedInsertions
        start local 3 // double fpp
         0: .line 341
            aload 0 /* funnel */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 343
            lload 1 /* expectedInsertions */
            lconst_0
            lcmp
            iflt 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "Expected insertions (%s) must be >= 0"
            lload 1 /* expectedInsertions */
         4: .line 342
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;J)V
         5: .line 344
            dload 3 /* fpp */
            dconst_0
            dcmpl
            ifle 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: ldc "False positive probability (%s) must be > 0.0"
            dload 3 /* fpp */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;Ljava/lang/Object;)V
         8: .line 345
            dload 3 /* fpp */
            dconst_1
            dcmpg
            ifge 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: ldc "False positive probability (%s) must be < 1.0"
            dload 3 /* fpp */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;Ljava/lang/Object;)V
        11: .line 347
            aload 0 /* funnel */
            lload 1 /* expectedInsertions */
            dload 3 /* fpp */
            invokedynamic get(Lcom/google/common/hash/Funnel;JD)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/google/common/hash/BloomFilter.lambda$0(Lcom/google/common/hash/Funnel;JD)Lcom/google/common/hash/BloomFilter; (6)
                  ()Lcom/google/common/hash/BloomFilter;
        12: .line 348
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/google/common/hash/BloomFilter.put(Ljava/lang/Object;)Z (5)
                  (Lcom/google/common/hash/BloomFilter;Ljava/lang/Object;)V
        13: .line 349
            invokedynamic apply()Ljava/util/function/BinaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  com/google/common/hash/BloomFilter.lambda$2(Lcom/google/common/hash/BloomFilter;Lcom/google/common/hash/BloomFilter;)Lcom/google/common/hash/BloomFilter; (6)
                  (Lcom/google/common/hash/BloomFilter;Lcom/google/common/hash/BloomFilter;)Lcom/google/common/hash/BloomFilter;
            iconst_2
            anewarray java.util.stream.Collector$Characteristics
            dup
            iconst_0
        14: .line 353
            getstatic java.util.stream.Collector$Characteristics.UNORDERED:Ljava/util/stream/Collector$Characteristics;
            aastore
            dup
            iconst_1
        15: .line 354
            getstatic java.util.stream.Collector$Characteristics.CONCURRENT:Ljava/util/stream/Collector$Characteristics;
            aastore
        16: .line 346
            invokestatic java.util.stream.Collector.of:(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;
            areturn
        end local 3 // double fpp
        end local 1 // long expectedInsertions
        end local 0 // com.google.common.hash.Funnel funnel
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   17     0              funnel  Lcom/google/common/hash/Funnel<-TT;>;
            0   17     1  expectedInsertions  J
            0   17     3                 fpp  D
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/hash/Funnel<-TT;>;JD)Ljava/util/stream/Collector<TT;*Lcom/google/common/hash/BloomFilter<TT;>;>;
    MethodParameters:
                    Name  Flags
      funnel              
      expectedInsertions  
      fpp                 

  public static <T> com.google.common.hash.BloomFilter<T> create(com.google.common.hash.Funnel<? super T>, int, double);
    descriptor: (Lcom/google/common/hash/Funnel;ID)Lcom/google/common/hash/BloomFilter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.google.common.hash.Funnel funnel
        start local 1 // int expectedInsertions
        start local 2 // double fpp
         0: .line 379
            aload 0 /* funnel */
            iload 1 /* expectedInsertions */
            i2l
            dload 2 /* fpp */
            invokestatic com.google.common.hash.BloomFilter.create:(Lcom/google/common/hash/Funnel;JD)Lcom/google/common/hash/BloomFilter;
            areturn
        end local 2 // double fpp
        end local 1 // int expectedInsertions
        end local 0 // com.google.common.hash.Funnel funnel
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0              funnel  Lcom/google/common/hash/Funnel<-TT;>;
            0    1     1  expectedInsertions  I
            0    1     2                 fpp  D
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/hash/Funnel<-TT;>;ID)Lcom/google/common/hash/BloomFilter<TT;>;
    MethodParameters:
                    Name  Flags
      funnel              
      expectedInsertions  
      fpp                 

  public static <T> com.google.common.hash.BloomFilter<T> create(com.google.common.hash.Funnel<? super T>, long, double);
    descriptor: (Lcom/google/common/hash/Funnel;JD)Lcom/google/common/hash/BloomFilter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.google.common.hash.Funnel funnel
        start local 1 // long expectedInsertions
        start local 3 // double fpp
         0: .line 405
            aload 0 /* funnel */
            lload 1 /* expectedInsertions */
            dload 3 /* fpp */
            getstatic com.google.common.hash.BloomFilterStrategies.MURMUR128_MITZ_64:Lcom/google/common/hash/BloomFilterStrategies;
            invokestatic com.google.common.hash.BloomFilter.create:(Lcom/google/common/hash/Funnel;JDLcom/google/common/hash/BloomFilter$Strategy;)Lcom/google/common/hash/BloomFilter;
            areturn
        end local 3 // double fpp
        end local 1 // long expectedInsertions
        end local 0 // com.google.common.hash.Funnel funnel
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0              funnel  Lcom/google/common/hash/Funnel<-TT;>;
            0    1     1  expectedInsertions  J
            0    1     3                 fpp  D
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/hash/Funnel<-TT;>;JD)Lcom/google/common/hash/BloomFilter<TT;>;
    MethodParameters:
                    Name  Flags
      funnel              
      expectedInsertions  
      fpp                 

  static <T> com.google.common.hash.BloomFilter<T> create(com.google.common.hash.Funnel<? super T>, long, double, com.google.common.hash.BloomFilter$Strategy);
    descriptor: (Lcom/google/common/hash/Funnel;JDLcom/google/common/hash/BloomFilter$Strategy;)Lcom/google/common/hash/BloomFilter;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // com.google.common.hash.Funnel funnel
        start local 1 // long expectedInsertions
        start local 3 // double fpp
        start local 5 // com.google.common.hash.BloomFilter$Strategy strategy
         0: .line 411
            aload 0 /* funnel */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 413
            lload 1 /* expectedInsertions */
            lconst_0
            lcmp
            iflt 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "Expected insertions (%s) must be >= 0"
            lload 1 /* expectedInsertions */
         4: .line 412
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;J)V
         5: .line 414
            dload 3 /* fpp */
            dconst_0
            dcmpl
            ifle 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: ldc "False positive probability (%s) must be > 0.0"
            dload 3 /* fpp */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;Ljava/lang/Object;)V
         8: .line 415
            dload 3 /* fpp */
            dconst_1
            dcmpg
            ifge 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: ldc "False positive probability (%s) must be < 1.0"
            dload 3 /* fpp */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;Ljava/lang/Object;)V
        11: .line 416
            aload 5 /* strategy */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 418
            lload 1 /* expectedInsertions */
            lconst_0
            lcmp
            ifne 14
        13: .line 419
            lconst_1
            lstore 1 /* expectedInsertions */
        14: .line 426
      StackMap locals:
      StackMap stack:
            lload 1 /* expectedInsertions */
            dload 3 /* fpp */
            invokestatic com.google.common.hash.BloomFilter.optimalNumOfBits:(JD)J
            lstore 6 /* numBits */
        start local 6 // long numBits
        15: .line 427
            lload 1 /* expectedInsertions */
            lload 6 /* numBits */
            invokestatic com.google.common.hash.BloomFilter.optimalNumOfHashFunctions:(JJ)I
            istore 8 /* numHashFunctions */
        start local 8 // int numHashFunctions
        16: .line 429
            new com.google.common.hash.BloomFilter
            dup
            new com.google.common.hash.BloomFilterStrategies$LockFreeBitArray
            dup
            lload 6 /* numBits */
            invokespecial com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.<init>:(J)V
            iload 8 /* numHashFunctions */
            aload 0 /* funnel */
            aload 5 /* strategy */
            invokespecial com.google.common.hash.BloomFilter.<init>:(Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;ILcom/google/common/hash/Funnel;Lcom/google/common/hash/BloomFilter$Strategy;)V
        17: areturn
        18: .line 430
      StackMap locals: com.google.common.hash.Funnel long double com.google.common.hash.BloomFilter$Strategy long int
      StackMap stack: java.lang.IllegalArgumentException
            astore 9 /* e */
        start local 9 // java.lang.IllegalArgumentException e
        19: .line 431
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not create BloomFilter of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 6 /* numBits */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " bits"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 9 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.lang.IllegalArgumentException e
        end local 8 // int numHashFunctions
        end local 6 // long numBits
        end local 5 // com.google.common.hash.BloomFilter$Strategy strategy
        end local 3 // double fpp
        end local 1 // long expectedInsertions
        end local 0 // com.google.common.hash.Funnel funnel
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   20     0              funnel  Lcom/google/common/hash/Funnel<-TT;>;
            0   20     1  expectedInsertions  J
            0   20     3                 fpp  D
            0   20     5            strategy  Lcom/google/common/hash/BloomFilter$Strategy;
           15   20     6             numBits  J
           16   20     8    numHashFunctions  I
           19   20     9                   e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          16    17      18  Class java.lang.IllegalArgumentException
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/hash/Funnel<-TT;>;JDLcom/google/common/hash/BloomFilter$Strategy;)Lcom/google/common/hash/BloomFilter<TT;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()
    MethodParameters:
                    Name  Flags
      funnel              
      expectedInsertions  
      fpp                 
      strategy            

  public static <T> com.google.common.hash.BloomFilter<T> create(com.google.common.hash.Funnel<? super T>, int);
    descriptor: (Lcom/google/common/hash/Funnel;I)Lcom/google/common/hash/BloomFilter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.common.hash.Funnel funnel
        start local 1 // int expectedInsertions
         0: .line 455
            aload 0 /* funnel */
            iload 1 /* expectedInsertions */
            i2l
            invokestatic com.google.common.hash.BloomFilter.create:(Lcom/google/common/hash/Funnel;J)Lcom/google/common/hash/BloomFilter;
            areturn
        end local 1 // int expectedInsertions
        end local 0 // com.google.common.hash.Funnel funnel
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0              funnel  Lcom/google/common/hash/Funnel<-TT;>;
            0    1     1  expectedInsertions  I
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/hash/Funnel<-TT;>;I)Lcom/google/common/hash/BloomFilter<TT;>;
    MethodParameters:
                    Name  Flags
      funnel              
      expectedInsertions  

  public static <T> com.google.common.hash.BloomFilter<T> create(com.google.common.hash.Funnel<? super T>, long);
    descriptor: (Lcom/google/common/hash/Funnel;J)Lcom/google/common/hash/BloomFilter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.google.common.hash.Funnel funnel
        start local 1 // long expectedInsertions
         0: .line 479
            aload 0 /* funnel */
            lload 1 /* expectedInsertions */
            ldc 0.03
            invokestatic com.google.common.hash.BloomFilter.create:(Lcom/google/common/hash/Funnel;JD)Lcom/google/common/hash/BloomFilter;
            areturn
        end local 1 // long expectedInsertions
        end local 0 // com.google.common.hash.Funnel funnel
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0              funnel  Lcom/google/common/hash/Funnel<-TT;>;
            0    1     1  expectedInsertions  J
    Signature: <T:Ljava/lang/Object;>(Lcom/google/common/hash/Funnel<-TT;>;J)Lcom/google/common/hash/BloomFilter<TT;>;
    MethodParameters:
                    Name  Flags
      funnel              
      expectedInsertions  

  static int optimalNumOfHashFunctions(long, long);
    descriptor: (JJ)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // long n
        start local 2 // long m
         0: .line 506
            iconst_1
            lload 2 /* m */
            l2d
            lload 0 /* n */
            l2d
            ddiv
            ldc 2.0
            invokestatic java.lang.Math.log:(D)D
            dmul
            invokestatic java.lang.Math.round:(D)J
            l2i
            invokestatic java.lang.Math.max:(II)I
            ireturn
        end local 2 // long m
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     n  J
            0    1     2     m  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()
    MethodParameters:
      Name  Flags
      n     
      m     

  static long optimalNumOfBits(long, double);
    descriptor: (JD)J
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // long n
        start local 2 // double p
         0: .line 521
            dload 2 /* p */
            dconst_0
            dcmpl
            ifne 2
         1: .line 522
            ldc 4.9E-324
            dstore 2 /* p */
         2: .line 524
      StackMap locals:
      StackMap stack:
            lload 0 /* n */
            lneg
            l2d
            dload 2 /* p */
            invokestatic java.lang.Math.log:(D)D
            dmul
            ldc 2.0
            invokestatic java.lang.Math.log:(D)D
            ldc 2.0
            invokestatic java.lang.Math.log:(D)D
            dmul
            ddiv
            d2l
            lreturn
        end local 2 // double p
        end local 0 // long n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     n  J
            0    3     2     p  D
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()
    MethodParameters:
      Name  Flags
      n     
      p     

  private java.lang.Object writeReplace();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.google.common.hash.BloomFilter this
         0: .line 528
            new com.google.common.hash.BloomFilter$SerialForm
            dup
            aload 0 /* this */
            invokespecial com.google.common.hash.BloomFilter$SerialForm.<init>:(Lcom/google/common/hash/BloomFilter;)V
            areturn
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/hash/BloomFilter<TT;>;

  public void writeTo(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.google.common.hash.BloomFilter this
        start local 1 // java.io.OutputStream out
         0: .line 564
            new java.io.DataOutputStream
            dup
            aload 1 /* out */
            invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 2 /* dout */
        start local 2 // java.io.DataOutputStream dout
         1: .line 565
            aload 2 /* dout */
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.strategy:Lcom/google/common/hash/BloomFilter$Strategy;
            invokeinterface com.google.common.hash.BloomFilter$Strategy.ordinal:()I
            i2l
            invokestatic com.google.common.primitives.SignedBytes.checkedCast:(J)B
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         2: .line 566
            aload 2 /* dout */
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.numHashFunctions:I
            i2l
            invokestatic com.google.common.primitives.UnsignedBytes.checkedCast:(J)B
            invokevirtual java.io.DataOutputStream.writeByte:(I)V
         3: .line 567
            aload 2 /* dout */
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            getfield com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.data:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            invokevirtual java.io.DataOutputStream.writeInt:(I)V
         4: .line 568
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 569
      StackMap locals: java.io.DataOutputStream int
      StackMap stack:
            aload 2 /* dout */
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            getfield com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.data:Ljava/util/concurrent/atomic/AtomicLongArray;
            iload 3 /* i */
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.get:(I)J
            invokevirtual java.io.DataOutputStream.writeLong:(J)V
         7: .line 568
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* this */
            getfield com.google.common.hash.BloomFilter.bits:Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;
            getfield com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.data:Ljava/util/concurrent/atomic/AtomicLongArray;
            invokevirtual java.util.concurrent.atomic.AtomicLongArray.length:()I
            if_icmplt 6
        end local 3 // int i
         9: .line 571
            return
        end local 2 // java.io.DataOutputStream dout
        end local 1 // java.io.OutputStream out
        end local 0 // com.google.common.hash.BloomFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/google/common/hash/BloomFilter<TT;>;
            0   10     1   out  Ljava/io/OutputStream;
            1   10     2  dout  Ljava/io/DataOutputStream;
            5    9     3     i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  public static <T> com.google.common.hash.BloomFilter<T> readFrom(java.io.InputStream, com.google.common.hash.Funnel<? super T>);
    descriptor: (Ljava/io/InputStream;Lcom/google/common/hash/Funnel;)Lcom/google/common/hash/BloomFilter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // java.io.InputStream in
        start local 1 // com.google.common.hash.Funnel funnel
         0: .line 586
            aload 0 /* in */
            ldc "InputStream"
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 587
            aload 1 /* funnel */
            ldc "Funnel"
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 588
            iconst_m1
            istore 2 /* strategyOrdinal */
        start local 2 // int strategyOrdinal
         3: .line 589
            iconst_m1
            istore 3 /* numHashFunctions */
        start local 3 // int numHashFunctions
         4: .line 590
            iconst_m1
            istore 4 /* dataLength */
        start local 4 // int dataLength
         5: .line 592
            new java.io.DataInputStream
            dup
            aload 0 /* in */
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            astore 5 /* din */
        start local 5 // java.io.DataInputStream din
         6: .line 596
            aload 5 /* din */
            invokevirtual java.io.DataInputStream.readByte:()B
            istore 2 /* strategyOrdinal */
         7: .line 597
            aload 5 /* din */
            invokevirtual java.io.DataInputStream.readByte:()B
            invokestatic com.google.common.primitives.UnsignedBytes.toInt:(B)I
            istore 3 /* numHashFunctions */
         8: .line 598
            aload 5 /* din */
            invokevirtual java.io.DataInputStream.readInt:()I
            istore 4 /* dataLength */
         9: .line 600
            invokestatic com.google.common.hash.BloomFilterStrategies.values:()[Lcom/google/common/hash/BloomFilterStrategies;
            iload 2 /* strategyOrdinal */
            aaload
            astore 6 /* strategy */
        start local 6 // com.google.common.hash.BloomFilter$Strategy strategy
        10: .line 601
            iload 4 /* dataLength */
            newarray 11
            astore 7 /* data */
        start local 7 // long[] data
        11: .line 602
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        12: goto 15
        13: .line 603
      StackMap locals: java.io.InputStream com.google.common.hash.Funnel int int int java.io.DataInputStream com.google.common.hash.BloomFilter$Strategy long[] int
      StackMap stack:
            aload 7 /* data */
            iload 8 /* i */
            aload 5 /* din */
            invokevirtual java.io.DataInputStream.readLong:()J
            lastore
        14: .line 602
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 8 /* i */
            aload 7 /* data */
            arraylength
            if_icmplt 13
        end local 8 // int i
        16: .line 605
            new com.google.common.hash.BloomFilter
            dup
            new com.google.common.hash.BloomFilterStrategies$LockFreeBitArray
            dup
            aload 7 /* data */
            invokespecial com.google.common.hash.BloomFilterStrategies$LockFreeBitArray.<init>:([J)V
            iload 3 /* numHashFunctions */
            aload 1 /* funnel */
            aload 6 /* strategy */
            invokespecial com.google.common.hash.BloomFilter.<init>:(Lcom/google/common/hash/BloomFilterStrategies$LockFreeBitArray;ILcom/google/common/hash/Funnel;Lcom/google/common/hash/BloomFilter$Strategy;)V
        17: areturn
        end local 7 // long[] data
        end local 6 // com.google.common.hash.BloomFilter$Strategy strategy
        end local 5 // java.io.DataInputStream din
        18: .line 606
      StackMap locals: java.io.InputStream com.google.common.hash.Funnel int int int
      StackMap stack: java.lang.RuntimeException
            astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
        19: .line 608
            new java.lang.StringBuilder
            dup
            ldc "Unable to deserialize BloomFilter from InputStream. strategyOrdinal: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        20: .line 610
            iload 2 /* strategyOrdinal */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        21: .line 611
            ldc " numHashFunctions: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        22: .line 612
            iload 3 /* numHashFunctions */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        23: .line 613
            ldc " dataLength: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 614
            iload 4 /* dataLength */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        25: .line 608
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 607
            astore 6 /* message */
        start local 6 // java.lang.String message
        27: .line 615
            new java.io.IOException
            dup
            aload 6 /* message */
            aload 5 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.String message
        end local 5 // java.lang.RuntimeException e
        end local 4 // int dataLength
        end local 3 // int numHashFunctions
        end local 2 // int strategyOrdinal
        end local 1 // com.google.common.hash.Funnel funnel
        end local 0 // java.io.InputStream in
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   28     0                in  Ljava/io/InputStream;
            0   28     1            funnel  Lcom/google/common/hash/Funnel<-TT;>;
            3   28     2   strategyOrdinal  I
            4   28     3  numHashFunctions  I
            5   28     4        dataLength  I
            6   18     5               din  Ljava/io/DataInputStream;
           10   18     6          strategy  Lcom/google/common/hash/BloomFilter$Strategy;
           11   18     7              data  [J
           12   16     8                 i  I
           19   28     5                 e  Ljava/lang/RuntimeException;
           27   28     6           message  Ljava/lang/String;
      Exception table:
        from    to  target  type
           5    17      18  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Ljava/io/InputStream;Lcom/google/common/hash/Funnel<-TT;>;)Lcom/google/common/hash/BloomFilter<TT;>;
    MethodParameters:
        Name  Flags
      in      
      funnel  

  private static com.google.common.hash.BloomFilter lambda$0(com.google.common.hash.Funnel, long, double);
    descriptor: (Lcom/google/common/hash/Funnel;JD)Lcom/google/common/hash/BloomFilter;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=3
         0: .line 347
            aload 0
            lload 1
            dload 3
            invokestatic com.google.common.hash.BloomFilter.create:(Lcom/google/common/hash/Funnel;JD)Lcom/google/common/hash/BloomFilter;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static com.google.common.hash.BloomFilter lambda$2(com.google.common.hash.BloomFilter, com.google.common.hash.BloomFilter);
    descriptor: (Lcom/google/common/hash/BloomFilter;Lcom/google/common/hash/BloomFilter;)Lcom/google/common/hash/BloomFilter;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.hash.BloomFilter bf1
        start local 1 // com.google.common.hash.BloomFilter bf2
         0: .line 350
            aload 0 /* bf1 */
            aload 1 /* bf2 */
            invokevirtual com.google.common.hash.BloomFilter.putAll:(Lcom/google/common/hash/BloomFilter;)V
         1: .line 351
            aload 0 /* bf1 */
            areturn
        end local 1 // com.google.common.hash.BloomFilter bf2
        end local 0 // com.google.common.hash.BloomFilter bf1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   bf1  Lcom/google/common/hash/BloomFilter<TT;>;
            0    2     1   bf2  Lcom/google/common/hash/BloomFilter<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lcom/google/common/base/Predicate<TT;>;Ljava/io/Serializable;
SourceFile: "BloomFilter.java"
NestMembers:
  com.google.common.hash.BloomFilter$SerialForm  com.google.common.hash.BloomFilter$Strategy
InnerClasses:
  private SerialForm = com.google.common.hash.BloomFilter$SerialForm of com.google.common.hash.BloomFilter
  abstract Strategy = com.google.common.hash.BloomFilter$Strategy of com.google.common.hash.BloomFilter
  final LockFreeBitArray = com.google.common.hash.BloomFilterStrategies$LockFreeBitArray of com.google.common.hash.BloomFilterStrategies
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Characteristics = java.util.stream.Collector$Characteristics of java.util.stream.Collector
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()