public final class com.google.common.collect.Multisets
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.common.collect.Multisets
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.Multisets this
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.common.collect.Multisets this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/Multisets;

  public static <T, E, M extends com.google.common.collect.Multiset<E>> java.util.stream.Collector<T, ?, M> toMultiset(java.util.function.Function<? super T, E>, java.util.function.ToIntFunction<? super T>, java.util.function.Supplier<M>);
    descriptor: (Ljava/util/function/Function;Ljava/util/function/ToIntFunction;Ljava/util/function/Supplier;)Ljava/util/stream/Collector;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.util.function.Function elementFunction
        start local 1 // java.util.function.ToIntFunction countFunction
        start local 2 // java.util.function.Supplier multisetSupplier
         0: .line 79
            aload 0 /* elementFunction */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 80
            aload 1 /* countFunction */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 81
            aload 2 /* multisetSupplier */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 83
            aload 2 /* multisetSupplier */
         4: .line 84
            aload 0 /* elementFunction */
            aload 1 /* countFunction */
            invokedynamic accept(Ljava/util/function/Function;Ljava/util/function/ToIntFunction;)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/collect/Multisets.lambda$0(Ljava/util/function/Function;Ljava/util/function/ToIntFunction;Lcom/google/common/collect/Multiset;Ljava/lang/Object;)V (6)
                  (Lcom/google/common/collect/Multiset;Ljava/lang/Object;)V
         5: .line 85
            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/collect/Multisets.lambda$1(Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Lcom/google/common/collect/Multiset; (6)
                  (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Lcom/google/common/collect/Multiset;
            iconst_0
            anewarray java.util.stream.Collector$Characteristics
         6: .line 82
            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 2 // java.util.function.Supplier multisetSupplier
        end local 1 // java.util.function.ToIntFunction countFunction
        end local 0 // java.util.function.Function elementFunction
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0   elementFunction  Ljava/util/function/Function<-TT;TE;>;
            0    7     1     countFunction  Ljava/util/function/ToIntFunction<-TT;>;
            0    7     2  multisetSupplier  Ljava/util/function/Supplier<TM;>;
    Signature: <T:Ljava/lang/Object;E:Ljava/lang/Object;M::Lcom/google/common/collect/Multiset<TE;>;>(Ljava/util/function/Function<-TT;TE;>;Ljava/util/function/ToIntFunction<-TT;>;Ljava/util/function/Supplier<TM;>;)Ljava/util/stream/Collector<TT;*TM;>;
    MethodParameters:
                  Name  Flags
      elementFunction   
      countFunction     
      multisetSupplier  

  public static <E> com.google.common.collect.Multiset<E> unmodifiableMultiset(com.google.common.collect.Multiset<? extends E>);
    descriptor: (Lcom/google/common/collect/Multiset;)Lcom/google/common/collect/Multiset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.google.common.collect.Multiset multiset
         0: .line 102
            aload 0 /* multiset */
            instanceof com.google.common.collect.Multisets$UnmodifiableMultiset
            ifne 1
            aload 0 /* multiset */
            instanceof com.google.common.collect.ImmutableMultiset
            ifeq 3
         1: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* multiset */
            astore 1 /* result */
        start local 1 // com.google.common.collect.Multiset result
         2: .line 105
            aload 1 /* result */
            areturn
        end local 1 // com.google.common.collect.Multiset result
         3: .line 107
      StackMap locals:
      StackMap stack:
            new com.google.common.collect.Multisets$UnmodifiableMultiset
            dup
            aload 0 /* multiset */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.collect.Multiset
            invokespecial com.google.common.collect.Multisets$UnmodifiableMultiset.<init>:(Lcom/google/common/collect/Multiset;)V
            areturn
        end local 0 // com.google.common.collect.Multiset multiset
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  multiset  Lcom/google/common/collect/Multiset<+TE;>;
            2    3     1    result  Lcom/google/common/collect/Multiset<TE;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<+TE;>;)Lcom/google/common/collect/Multiset<TE;>;
    MethodParameters:
          Name  Flags
      multiset  

  public static <E> com.google.common.collect.Multiset<E> unmodifiableMultiset(com.google.common.collect.ImmutableMultiset<E>);
    descriptor: (Lcom/google/common/collect/ImmutableMultiset;)Lcom/google/common/collect/Multiset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.collect.ImmutableMultiset multiset
         0: .line 118
            aload 0 /* multiset */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.collect.Multiset
            areturn
        end local 0 // com.google.common.collect.ImmutableMultiset multiset
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  multiset  Lcom/google/common/collect/ImmutableMultiset<TE;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/ImmutableMultiset<TE;>;)Lcom/google/common/collect/Multiset<TE;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      multiset  

  public static <E> com.google.common.collect.SortedMultiset<E> unmodifiableSortedMultiset(com.google.common.collect.SortedMultiset<E>);
    descriptor: (Lcom/google/common/collect/SortedMultiset;)Lcom/google/common/collect/SortedMultiset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.google.common.collect.SortedMultiset sortedMultiset
         0: .line 232
            new com.google.common.collect.UnmodifiableSortedMultiset
            dup
            aload 0 /* sortedMultiset */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.collect.SortedMultiset
            invokespecial com.google.common.collect.UnmodifiableSortedMultiset.<init>:(Lcom/google/common/collect/SortedMultiset;)V
            areturn
        end local 0 // com.google.common.collect.SortedMultiset sortedMultiset
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  sortedMultiset  Lcom/google/common/collect/SortedMultiset<TE;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/SortedMultiset<TE;>;)Lcom/google/common/collect/SortedMultiset<TE;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
                Name  Flags
      sortedMultiset  

  public static <E> com.google.common.collect.Multiset$Entry<E> immutableEntry(E, int);
    descriptor: (Ljava/lang/Object;I)Lcom/google/common/collect/Multiset$Entry;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.Object e
        start local 1 // int n
         0: .line 244
            new com.google.common.collect.Multisets$ImmutableEntry
            dup
            aload 0 /* e */
            iload 1 /* n */
            invokespecial com.google.common.collect.Multisets$ImmutableEntry.<init>:(Ljava/lang/Object;I)V
            areturn
        end local 1 // int n
        end local 0 // java.lang.Object e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  TE;
            0    1     1     n  I
    Signature: <E:Ljava/lang/Object;>(TE;I)Lcom/google/common/collect/Multiset$Entry<TE;>;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
      Name  Flags
      e     
      n     

  public static <E> com.google.common.collect.Multiset<E> filter(com.google.common.collect.Multiset<E>, com.google.common.base.Predicate<? super E>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/base/Predicate;)Lcom/google/common/collect/Multiset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.google.common.collect.Multiset unfiltered
        start local 1 // com.google.common.base.Predicate predicate
         0: .line 301
            aload 0 /* unfiltered */
            instanceof com.google.common.collect.Multisets$FilteredMultiset
            ifeq 4
         1: .line 304
            aload 0 /* unfiltered */
            checkcast com.google.common.collect.Multisets$FilteredMultiset
            astore 2 /* filtered */
        start local 2 // com.google.common.collect.Multisets$FilteredMultiset filtered
         2: .line 305
            aload 2 /* filtered */
            getfield com.google.common.collect.Multisets$FilteredMultiset.predicate:Lcom/google/common/base/Predicate;
            aload 1 /* predicate */
            invokestatic com.google.common.base.Predicates.and:(Lcom/google/common/base/Predicate;Lcom/google/common/base/Predicate;)Lcom/google/common/base/Predicate;
            astore 3 /* combinedPredicate */
        start local 3 // com.google.common.base.Predicate combinedPredicate
         3: .line 306
            new com.google.common.collect.Multisets$FilteredMultiset
            dup
            aload 2 /* filtered */
            getfield com.google.common.collect.Multisets$FilteredMultiset.unfiltered:Lcom/google/common/collect/Multiset;
            aload 3 /* combinedPredicate */
            invokespecial com.google.common.collect.Multisets$FilteredMultiset.<init>:(Lcom/google/common/collect/Multiset;Lcom/google/common/base/Predicate;)V
            areturn
        end local 3 // com.google.common.base.Predicate combinedPredicate
        end local 2 // com.google.common.collect.Multisets$FilteredMultiset filtered
         4: .line 308
      StackMap locals:
      StackMap stack:
            new com.google.common.collect.Multisets$FilteredMultiset
            dup
            aload 0 /* unfiltered */
            aload 1 /* predicate */
            invokespecial com.google.common.collect.Multisets$FilteredMultiset.<init>:(Lcom/google/common/collect/Multiset;Lcom/google/common/base/Predicate;)V
            areturn
        end local 1 // com.google.common.base.Predicate predicate
        end local 0 // com.google.common.collect.Multiset unfiltered
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0         unfiltered  Lcom/google/common/collect/Multiset<TE;>;
            0    5     1          predicate  Lcom/google/common/base/Predicate<-TE;>;
            2    4     2           filtered  Lcom/google/common/collect/Multisets$FilteredMultiset<TE;>;
            3    4     3  combinedPredicate  Lcom/google/common/base/Predicate<TE;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;Lcom/google/common/base/Predicate<-TE;>;)Lcom/google/common/collect/Multiset<TE;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
            Name  Flags
      unfiltered  
      predicate   

  static int inferDistinctElements(java.lang.Iterable<?>);
    descriptor: (Ljava/lang/Iterable;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Iterable elements
         0: .line 387
            aload 0 /* elements */
            instanceof com.google.common.collect.Multiset
            ifeq 2
         1: .line 388
            aload 0 /* elements */
            checkcast com.google.common.collect.Multiset
            invokeinterface com.google.common.collect.Multiset.elementSet:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            ireturn
         2: .line 390
      StackMap locals:
      StackMap stack:
            bipush 11
            ireturn
        end local 0 // java.lang.Iterable elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  elements  Ljava/lang/Iterable<*>;
    Signature: (Ljava/lang/Iterable<*>;)I
    MethodParameters:
          Name  Flags
      elements  

  public static <E> com.google.common.collect.Multiset<E> union(com.google.common.collect.Multiset<? extends E>, com.google.common.collect.Multiset<? extends E>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Lcom/google/common/collect/Multiset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.Multiset multiset1
        start local 1 // com.google.common.collect.Multiset multiset2
         0: .line 408
            aload 0 /* multiset1 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 409
            aload 1 /* multiset2 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 411
            new com.google.common.collect.Multisets$1
            dup
            aload 0 /* multiset1 */
            aload 1 /* multiset2 */
            invokespecial com.google.common.collect.Multisets$1.<init>:(Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)V
            areturn
        end local 1 // com.google.common.collect.Multiset multiset2
        end local 0 // com.google.common.collect.Multiset multiset1
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  multiset1  Lcom/google/common/collect/Multiset<+TE;>;
            0    3     1  multiset2  Lcom/google/common/collect/Multiset<+TE;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<+TE;>;Lcom/google/common/collect/Multiset<+TE;>;)Lcom/google/common/collect/Multiset<TE;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
           Name  Flags
      multiset1  final
      multiset2  final

  public static <E> com.google.common.collect.Multiset<E> intersection(com.google.common.collect.Multiset<E>, com.google.common.collect.Multiset<?>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Lcom/google/common/collect/Multiset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.Multiset multiset1
        start local 1 // com.google.common.collect.Multiset multiset2
         0: .line 479
            aload 0 /* multiset1 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 480
            aload 1 /* multiset2 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 482
            new com.google.common.collect.Multisets$2
            dup
            aload 0 /* multiset1 */
            aload 1 /* multiset2 */
            invokespecial com.google.common.collect.Multisets$2.<init>:(Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)V
            areturn
        end local 1 // com.google.common.collect.Multiset multiset2
        end local 0 // com.google.common.collect.Multiset multiset1
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  multiset1  Lcom/google/common/collect/Multiset<TE;>;
            0    3     1  multiset2  Lcom/google/common/collect/Multiset<*>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;Lcom/google/common/collect/Multiset<*>;)Lcom/google/common/collect/Multiset<TE;>;
    MethodParameters:
           Name  Flags
      multiset1  final
      multiset2  final

  public static <E> com.google.common.collect.Multiset<E> sum(com.google.common.collect.Multiset<? extends E>, com.google.common.collect.Multiset<? extends E>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Lcom/google/common/collect/Multiset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.Multiset multiset1
        start local 1 // com.google.common.collect.Multiset multiset2
         0: .line 536
            aload 0 /* multiset1 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 537
            aload 1 /* multiset2 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 540
            new com.google.common.collect.Multisets$3
            dup
            aload 0 /* multiset1 */
            aload 1 /* multiset2 */
            invokespecial com.google.common.collect.Multisets$3.<init>:(Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)V
            areturn
        end local 1 // com.google.common.collect.Multiset multiset2
        end local 0 // com.google.common.collect.Multiset multiset1
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  multiset1  Lcom/google/common/collect/Multiset<+TE;>;
            0    3     1  multiset2  Lcom/google/common/collect/Multiset<+TE;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<+TE;>;Lcom/google/common/collect/Multiset<+TE;>;)Lcom/google/common/collect/Multiset<TE;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
           Name  Flags
      multiset1  final
      multiset2  final

  public static <E> com.google.common.collect.Multiset<E> difference(com.google.common.collect.Multiset<E>, com.google.common.collect.Multiset<?>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Lcom/google/common/collect/Multiset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.google.common.collect.Multiset multiset1
        start local 1 // com.google.common.collect.Multiset multiset2
         0: .line 613
            aload 0 /* multiset1 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 614
            aload 1 /* multiset2 */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 617
            new com.google.common.collect.Multisets$4
            dup
            aload 0 /* multiset1 */
            aload 1 /* multiset2 */
            invokespecial com.google.common.collect.Multisets$4.<init>:(Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)V
            areturn
        end local 1 // com.google.common.collect.Multiset multiset2
        end local 0 // com.google.common.collect.Multiset multiset1
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  multiset1  Lcom/google/common/collect/Multiset<TE;>;
            0    3     1  multiset2  Lcom/google/common/collect/Multiset<*>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;Lcom/google/common/collect/Multiset<*>;)Lcom/google/common/collect/Multiset<TE;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
           Name  Flags
      multiset1  final
      multiset2  final

  public static boolean containsOccurrences(com.google.common.collect.Multiset<?>, com.google.common.collect.Multiset<?>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.google.common.collect.Multiset superMultiset
        start local 1 // com.google.common.collect.Multiset subMultiset
         0: .line 681
            aload 0 /* superMultiset */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 682
            aload 1 /* subMultiset */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 683
            aload 1 /* subMultiset */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: com.google.common.collect.Multiset com.google.common.collect.Multiset top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.common.collect.Multiset$Entry
            astore 2 /* entry */
        start local 2 // com.google.common.collect.Multiset$Entry entry
         4: .line 684
            aload 0 /* superMultiset */
            aload 2 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getElement:()Ljava/lang/Object;
            invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
            istore 4 /* superCount */
        start local 4 // int superCount
         5: .line 685
            iload 4 /* superCount */
            aload 2 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getCount:()I
            if_icmpge 7
         6: .line 686
            iconst_0
            ireturn
        end local 4 // int superCount
        end local 2 // com.google.common.collect.Multiset$Entry entry
         7: .line 683
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 689
            iconst_1
            ireturn
        end local 1 // com.google.common.collect.Multiset subMultiset
        end local 0 // com.google.common.collect.Multiset superMultiset
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0  superMultiset  Lcom/google/common/collect/Multiset<*>;
            0    9     1    subMultiset  Lcom/google/common/collect/Multiset<*>;
            4    7     2          entry  Lcom/google/common/collect/Multiset$Entry<*>;
            5    7     4     superCount  I
    Signature: (Lcom/google/common/collect/Multiset<*>;Lcom/google/common/collect/Multiset<*>;)Z
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
               Name  Flags
      superMultiset  
      subMultiset    

  public static boolean retainOccurrences(com.google.common.collect.Multiset<?>, com.google.common.collect.Multiset<?>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.collect.Multiset multisetToModify
        start local 1 // com.google.common.collect.Multiset multisetToRetain
         0: .line 711
            aload 0 /* multisetToModify */
            aload 1 /* multisetToRetain */
            invokestatic com.google.common.collect.Multisets.retainOccurrencesImpl:(Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Z
            ireturn
        end local 1 // com.google.common.collect.Multiset multisetToRetain
        end local 0 // com.google.common.collect.Multiset multisetToModify
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0  multisetToModify  Lcom/google/common/collect/Multiset<*>;
            0    1     1  multisetToRetain  Lcom/google/common/collect/Multiset<*>;
    Signature: (Lcom/google/common/collect/Multiset<*>;Lcom/google/common/collect/Multiset<*>;)Z
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
                  Name  Flags
      multisetToModify  
      multisetToRetain  

  private static <E> boolean retainOccurrencesImpl(com.google.common.collect.Multiset<E>, com.google.common.collect.Multiset<?>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.google.common.collect.Multiset multisetToModify
        start local 1 // com.google.common.collect.Multiset occurrencesToRetain
         0: .line 717
            aload 0 /* multisetToModify */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 718
            aload 1 /* occurrencesToRetain */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 720
            aload 0 /* multisetToModify */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2 /* entryIterator */
        start local 2 // java.util.Iterator entryIterator
         3: .line 721
            iconst_0
            istore 3 /* changed */
        start local 3 // boolean changed
         4: .line 722
            goto 14
         5: .line 723
      StackMap locals: java.util.Iterator int
      StackMap stack:
            aload 2 /* entryIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.common.collect.Multiset$Entry
            astore 4 /* entry */
        start local 4 // com.google.common.collect.Multiset$Entry entry
         6: .line 724
            aload 1 /* occurrencesToRetain */
            aload 4 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getElement:()Ljava/lang/Object;
            invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
            istore 5 /* retainCount */
        start local 5 // int retainCount
         7: .line 725
            iload 5 /* retainCount */
            ifne 11
         8: .line 726
            aload 2 /* entryIterator */
            invokeinterface java.util.Iterator.remove:()V
         9: .line 727
            iconst_1
            istore 3 /* changed */
        10: .line 728
            goto 14
      StackMap locals: com.google.common.collect.Multiset$Entry int
      StackMap stack:
        11: iload 5 /* retainCount */
            aload 4 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getCount:()I
            if_icmpge 14
        12: .line 729
            aload 0 /* multisetToModify */
            aload 4 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getElement:()Ljava/lang/Object;
            iload 5 /* retainCount */
            invokeinterface com.google.common.collect.Multiset.setCount:(Ljava/lang/Object;I)I
            pop
        13: .line 730
            iconst_1
            istore 3 /* changed */
        end local 5 // int retainCount
        end local 4 // com.google.common.collect.Multiset$Entry entry
        14: .line 722
      StackMap locals:
      StackMap stack:
            aload 2 /* entryIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        15: .line 733
            iload 3 /* changed */
            ireturn
        end local 3 // boolean changed
        end local 2 // java.util.Iterator entryIterator
        end local 1 // com.google.common.collect.Multiset occurrencesToRetain
        end local 0 // com.google.common.collect.Multiset multisetToModify
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   16     0     multisetToModify  Lcom/google/common/collect/Multiset<TE;>;
            0   16     1  occurrencesToRetain  Lcom/google/common/collect/Multiset<*>;
            3   16     2        entryIterator  Ljava/util/Iterator<Lcom/google/common/collect/Multiset$Entry<TE;>;>;
            4   16     3              changed  Z
            6   14     4                entry  Lcom/google/common/collect/Multiset$Entry<TE;>;
            7   14     5          retainCount  I
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;Lcom/google/common/collect/Multiset<*>;)Z
    MethodParameters:
                     Name  Flags
      multisetToModify     
      occurrencesToRetain  

  public static boolean removeOccurrences(com.google.common.collect.Multiset<?>, java.lang.Iterable<?>);
    descriptor: (Lcom/google/common/collect/Multiset;Ljava/lang/Iterable;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.google.common.collect.Multiset multisetToModify
        start local 1 // java.lang.Iterable occurrencesToRemove
         0: .line 762
            aload 1 /* occurrencesToRemove */
            instanceof com.google.common.collect.Multiset
            ifeq 2
         1: .line 763
            aload 0 /* multisetToModify */
            aload 1 /* occurrencesToRemove */
            checkcast com.google.common.collect.Multiset
            invokestatic com.google.common.collect.Multisets.removeOccurrences:(Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Z
            ireturn
         2: .line 765
      StackMap locals:
      StackMap stack:
            aload 0 /* multisetToModify */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 766
            aload 1 /* occurrencesToRemove */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 767
            iconst_0
            istore 2 /* changed */
        start local 2 // boolean changed
         5: .line 768
            aload 1 /* occurrencesToRemove */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: com.google.common.collect.Multiset java.lang.Iterable int top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* o */
        start local 3 // java.lang.Object o
         7: .line 769
            iload 2 /* changed */
            aload 0 /* multisetToModify */
            aload 3 /* o */
            invokeinterface com.google.common.collect.Multiset.remove:(Ljava/lang/Object;)Z
            ior
            istore 2 /* changed */
        end local 3 // java.lang.Object o
         8: .line 768
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 771
            iload 2 /* changed */
            ireturn
        end local 2 // boolean changed
        end local 1 // java.lang.Iterable occurrencesToRemove
        end local 0 // com.google.common.collect.Multiset multisetToModify
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0     multisetToModify  Lcom/google/common/collect/Multiset<*>;
            0   10     1  occurrencesToRemove  Ljava/lang/Iterable<*>;
            5   10     2              changed  Z
            7    8     3                    o  Ljava/lang/Object;
    Signature: (Lcom/google/common/collect/Multiset<*>;Ljava/lang/Iterable<*>;)Z
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
                     Name  Flags
      multisetToModify     
      occurrencesToRemove  

  public static boolean removeOccurrences(com.google.common.collect.Multiset<?>, com.google.common.collect.Multiset<?>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.google.common.collect.Multiset multisetToModify
        start local 1 // com.google.common.collect.Multiset occurrencesToRemove
         0: .line 800
            aload 0 /* multisetToModify */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 801
            aload 1 /* occurrencesToRemove */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 803
            iconst_0
            istore 2 /* changed */
        start local 2 // boolean changed
         3: .line 804
            aload 0 /* multisetToModify */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3 /* entryIterator */
        start local 3 // java.util.Iterator entryIterator
         4: .line 805
            goto 14
         5: .line 806
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 3 /* entryIterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.common.collect.Multiset$Entry
            astore 4 /* entry */
        start local 4 // com.google.common.collect.Multiset$Entry entry
         6: .line 807
            aload 1 /* occurrencesToRemove */
            aload 4 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getElement:()Ljava/lang/Object;
            invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
            istore 5 /* removeCount */
        start local 5 // int removeCount
         7: .line 808
            iload 5 /* removeCount */
            aload 4 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getCount:()I
            if_icmplt 11
         8: .line 809
            aload 3 /* entryIterator */
            invokeinterface java.util.Iterator.remove:()V
         9: .line 810
            iconst_1
            istore 2 /* changed */
        10: .line 811
            goto 14
      StackMap locals: com.google.common.collect.Multiset$Entry int
      StackMap stack:
        11: iload 5 /* removeCount */
            ifle 14
        12: .line 812
            aload 0 /* multisetToModify */
            aload 4 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getElement:()Ljava/lang/Object;
            iload 5 /* removeCount */
            invokeinterface com.google.common.collect.Multiset.remove:(Ljava/lang/Object;I)I
            pop
        13: .line 813
            iconst_1
            istore 2 /* changed */
        end local 5 // int removeCount
        end local 4 // com.google.common.collect.Multiset$Entry entry
        14: .line 805
      StackMap locals:
      StackMap stack:
            aload 3 /* entryIterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        15: .line 816
            iload 2 /* changed */
            ireturn
        end local 3 // java.util.Iterator entryIterator
        end local 2 // boolean changed
        end local 1 // com.google.common.collect.Multiset occurrencesToRemove
        end local 0 // com.google.common.collect.Multiset multisetToModify
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   16     0     multisetToModify  Lcom/google/common/collect/Multiset<*>;
            0   16     1  occurrencesToRemove  Lcom/google/common/collect/Multiset<*>;
            3   16     2              changed  Z
            4   16     3        entryIterator  Ljava/util/Iterator<+Lcom/google/common/collect/Multiset$Entry<*>;>;
            6   14     4                entry  Lcom/google/common/collect/Multiset$Entry<*>;
            7   14     5          removeCount  I
    Signature: (Lcom/google/common/collect/Multiset<*>;Lcom/google/common/collect/Multiset<*>;)Z
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
                     Name  Flags
      multisetToModify     
      occurrencesToRemove  

  static boolean equalsImpl(com.google.common.collect.Multiset<?>, );
    descriptor: (Lcom/google/common/collect/Multiset;Ljava/lang/Object;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.google.common.collect.Multiset multiset
        start local 1 // java.lang.Object object
         0: .line 864
            aload 1 /* object */
            aload 0 /* multiset */
            if_acmpne 2
         1: .line 865
            iconst_1
            ireturn
         2: .line 867
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            instanceof com.google.common.collect.Multiset
            ifeq 12
         3: .line 868
            aload 1 /* object */
            checkcast com.google.common.collect.Multiset
            astore 2 /* that */
        start local 2 // com.google.common.collect.Multiset that
         4: .line 875
            aload 0 /* multiset */
            invokeinterface com.google.common.collect.Multiset.size:()I
            aload 2 /* that */
            invokeinterface com.google.common.collect.Multiset.size:()I
            if_icmpne 5
            aload 0 /* multiset */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            aload 2 /* that */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            if_icmpeq 6
         5: .line 876
      StackMap locals: com.google.common.collect.Multiset
      StackMap stack:
            iconst_0
            ireturn
         6: .line 878
      StackMap locals:
      StackMap stack:
            aload 2 /* that */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: com.google.common.collect.Multiset java.lang.Object com.google.common.collect.Multiset top java.util.Iterator
      StackMap stack:
         7: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.common.collect.Multiset$Entry
            astore 3 /* entry */
        start local 3 // com.google.common.collect.Multiset$Entry entry
         8: .line 879
            aload 0 /* multiset */
            aload 3 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getElement:()Ljava/lang/Object;
            invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
            aload 3 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getCount:()I
            if_icmpeq 10
         9: .line 880
            iconst_0
            ireturn
        end local 3 // com.google.common.collect.Multiset$Entry entry
        10: .line 878
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 883
            iconst_1
            ireturn
        end local 2 // com.google.common.collect.Multiset that
        12: .line 885
      StackMap locals: com.google.common.collect.Multiset java.lang.Object
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object object
        end local 0 // com.google.common.collect.Multiset multiset
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0  multiset  Lcom/google/common/collect/Multiset<*>;
            0   13     1    object  Ljava/lang/Object;
            4   12     2      that  Lcom/google/common/collect/Multiset<*>;
            8   10     3     entry  Lcom/google/common/collect/Multiset$Entry<*>;
    Signature: (Lcom/google/common/collect/Multiset<*>;Ljava/lang/Object;)Z
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
          Name  Flags
      multiset  
      object    

  static <E> boolean addAllImpl(com.google.common.collect.Multiset<E>, java.util.Collection<? extends E>);
    descriptor: (Lcom/google/common/collect/Multiset;Ljava/util/Collection;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.collect.Multiset self
        start local 1 // java.util.Collection elements
         0: .line 890
            aload 0 /* self */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 891
            aload 1 /* elements */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 892
            aload 1 /* elements */
            instanceof com.google.common.collect.Multiset
            ifeq 4
         3: .line 893
            aload 0 /* self */
            aload 1 /* elements */
            invokestatic com.google.common.collect.Multisets.cast:(Ljava/lang/Iterable;)Lcom/google/common/collect/Multiset;
            invokestatic com.google.common.collect.Multisets.addAllImpl:(Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Z
            ireturn
         4: .line 894
      StackMap locals:
      StackMap stack:
            aload 1 /* elements */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 6
         5: .line 895
            iconst_0
            ireturn
         6: .line 897
      StackMap locals:
      StackMap stack:
            aload 0 /* self */
            aload 1 /* elements */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            invokestatic com.google.common.collect.Iterators.addAll:(Ljava/util/Collection;Ljava/util/Iterator;)Z
            ireturn
        end local 1 // java.util.Collection elements
        end local 0 // com.google.common.collect.Multiset self
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      self  Lcom/google/common/collect/Multiset<TE;>;
            0    7     1  elements  Ljava/util/Collection<+TE;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;Ljava/util/Collection<+TE;>;)Z
    MethodParameters:
          Name  Flags
      self      
      elements  

  private static <E> boolean addAllImpl(com.google.common.collect.Multiset<E>, com.google.common.collect.Multiset<? extends E>);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.google.common.collect.Multiset self
        start local 1 // com.google.common.collect.Multiset elements
         0: .line 903
            aload 1 /* elements */
            invokeinterface com.google.common.collect.Multiset.isEmpty:()Z
            ifeq 2
         1: .line 904
            iconst_0
            ireturn
         2: .line 906
      StackMap locals:
      StackMap stack:
            aload 1 /* elements */
            aload 0 /* self */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Lcom/google/common/collect/Multiset;)Ljava/util/function/ObjIntConsumer;
              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;I)V
                  com/google/common/collect/Multiset.add(Ljava/lang/Object;I)I (9 itf)
                  (Ljava/lang/Object;I)V
            invokeinterface com.google.common.collect.Multiset.forEachEntry:(Ljava/util/function/ObjIntConsumer;)V
         3: .line 907
            iconst_1
            ireturn
        end local 1 // com.google.common.collect.Multiset elements
        end local 0 // com.google.common.collect.Multiset self
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      self  Lcom/google/common/collect/Multiset<TE;>;
            0    4     1  elements  Lcom/google/common/collect/Multiset<+TE;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;Lcom/google/common/collect/Multiset<+TE;>;)Z
    MethodParameters:
          Name  Flags
      self      
      elements  

  static boolean removeAllImpl(com.google.common.collect.Multiset<?>, java.util.Collection<?>);
    descriptor: (Lcom/google/common/collect/Multiset;Ljava/util/Collection;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.google.common.collect.Multiset self
        start local 1 // java.util.Collection elementsToRemove
         0: .line 913
            aload 1 /* elementsToRemove */
            instanceof com.google.common.collect.Multiset
            ifeq 2
         1: .line 914
            aload 1 /* elementsToRemove */
            checkcast com.google.common.collect.Multiset
            invokeinterface com.google.common.collect.Multiset.elementSet:()Ljava/util/Set;
            goto 3
         2: .line 915
      StackMap locals:
      StackMap stack:
            aload 1 /* elementsToRemove */
         3: .line 912
      StackMap locals:
      StackMap stack: java.util.Collection
            astore 2 /* collection */
        start local 2 // java.util.Collection collection
         4: .line 917
            aload 0 /* self */
            invokeinterface com.google.common.collect.Multiset.elementSet:()Ljava/util/Set;
            aload 2 /* collection */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            ireturn
        end local 2 // java.util.Collection collection
        end local 1 // java.util.Collection elementsToRemove
        end local 0 // com.google.common.collect.Multiset self
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              self  Lcom/google/common/collect/Multiset<*>;
            0    5     1  elementsToRemove  Ljava/util/Collection<*>;
            4    5     2        collection  Ljava/util/Collection<*>;
    Signature: (Lcom/google/common/collect/Multiset<*>;Ljava/util/Collection<*>;)Z
    MethodParameters:
                  Name  Flags
      self              
      elementsToRemove  

  static boolean retainAllImpl(com.google.common.collect.Multiset<?>, java.util.Collection<?>);
    descriptor: (Lcom/google/common/collect/Multiset;Ljava/util/Collection;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.google.common.collect.Multiset self
        start local 1 // java.util.Collection elementsToRetain
         0: .line 922
            aload 1 /* elementsToRetain */
            invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 924
            aload 1 /* elementsToRetain */
            instanceof com.google.common.collect.Multiset
            ifeq 3
         2: .line 925
            aload 1 /* elementsToRetain */
            checkcast com.google.common.collect.Multiset
            invokeinterface com.google.common.collect.Multiset.elementSet:()Ljava/util/Set;
            goto 4
         3: .line 926
      StackMap locals:
      StackMap stack:
            aload 1 /* elementsToRetain */
         4: .line 923
      StackMap locals:
      StackMap stack: java.util.Collection
            astore 2 /* collection */
        start local 2 // java.util.Collection collection
         5: .line 928
            aload 0 /* self */
            invokeinterface com.google.common.collect.Multiset.elementSet:()Ljava/util/Set;
            aload 2 /* collection */
            invokeinterface java.util.Set.retainAll:(Ljava/util/Collection;)Z
            ireturn
        end local 2 // java.util.Collection collection
        end local 1 // java.util.Collection elementsToRetain
        end local 0 // com.google.common.collect.Multiset self
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              self  Lcom/google/common/collect/Multiset<*>;
            0    6     1  elementsToRetain  Ljava/util/Collection<*>;
            5    6     2        collection  Ljava/util/Collection<*>;
    Signature: (Lcom/google/common/collect/Multiset<*>;Ljava/util/Collection<*>;)Z
    MethodParameters:
                  Name  Flags
      self              
      elementsToRetain  

  static <E> int setCountImpl(com.google.common.collect.Multiset<E>, E, );
    descriptor: (Lcom/google/common/collect/Multiset;Ljava/lang/Object;I)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.google.common.collect.Multiset self
        start local 1 // java.lang.Object element
        start local 2 // int count
         0: .line 933
            iload 2 /* count */
            ldc "count"
            invokestatic com.google.common.collect.CollectPreconditions.checkNonnegative:(ILjava/lang/String;)I
            pop
         1: .line 935
            aload 0 /* self */
            aload 1 /* element */
            invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
            istore 3 /* oldCount */
        start local 3 // int oldCount
         2: .line 937
            iload 2 /* count */
            iload 3 /* oldCount */
            isub
            istore 4 /* delta */
        start local 4 // int delta
         3: .line 938
            iload 4 /* delta */
            ifle 6
         4: .line 939
            aload 0 /* self */
            aload 1 /* element */
            iload 4 /* delta */
            invokeinterface com.google.common.collect.Multiset.add:(Ljava/lang/Object;I)I
            pop
         5: .line 940
            goto 8
      StackMap locals: int int
      StackMap stack:
         6: iload 4 /* delta */
            ifge 8
         7: .line 941
            aload 0 /* self */
            aload 1 /* element */
            iload 4 /* delta */
            ineg
            invokeinterface com.google.common.collect.Multiset.remove:(Ljava/lang/Object;I)I
            pop
         8: .line 944
      StackMap locals:
      StackMap stack:
            iload 3 /* oldCount */
            ireturn
        end local 4 // int delta
        end local 3 // int oldCount
        end local 2 // int count
        end local 1 // java.lang.Object element
        end local 0 // com.google.common.collect.Multiset self
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      self  Lcom/google/common/collect/Multiset<TE;>;
            0    9     1   element  TE;
            0    9     2     count  I
            2    9     3  oldCount  I
            3    9     4     delta  I
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;TE;I)I
    MethodParameters:
         Name  Flags
      self     
      element  
      count    

  static <E> boolean setCountImpl(com.google.common.collect.Multiset<E>, E, int, );
    descriptor: (Lcom/google/common/collect/Multiset;Ljava/lang/Object;II)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.google.common.collect.Multiset self
        start local 1 // java.lang.Object element
        start local 2 // int oldCount
        start local 3 // int newCount
         0: .line 949
            iload 2 /* oldCount */
            ldc "oldCount"
            invokestatic com.google.common.collect.CollectPreconditions.checkNonnegative:(ILjava/lang/String;)I
            pop
         1: .line 950
            iload 3 /* newCount */
            ldc "newCount"
            invokestatic com.google.common.collect.CollectPreconditions.checkNonnegative:(ILjava/lang/String;)I
            pop
         2: .line 952
            aload 0 /* self */
            aload 1 /* element */
            invokeinterface com.google.common.collect.Multiset.count:(Ljava/lang/Object;)I
            iload 2 /* oldCount */
            if_icmpne 5
         3: .line 953
            aload 0 /* self */
            aload 1 /* element */
            iload 3 /* newCount */
            invokeinterface com.google.common.collect.Multiset.setCount:(Ljava/lang/Object;I)I
            pop
         4: .line 954
            iconst_1
            ireturn
         5: .line 956
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int newCount
        end local 2 // int oldCount
        end local 1 // java.lang.Object element
        end local 0 // com.google.common.collect.Multiset self
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      self  Lcom/google/common/collect/Multiset<TE;>;
            0    6     1   element  TE;
            0    6     2  oldCount  I
            0    6     3  newCount  I
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;TE;II)Z
    MethodParameters:
          Name  Flags
      self      
      element   
      oldCount  
      newCount  

  static <E> java.util.Iterator<E> elementIterator(java.util.Iterator<com.google.common.collect.Multiset$Entry<E>>);
    descriptor: (Ljava/util/Iterator;)Ljava/util/Iterator;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.Iterator entryIterator
         0: .line 961
            new com.google.common.collect.Multisets$5
            dup
            aload 0 /* entryIterator */
            invokespecial com.google.common.collect.Multisets$5.<init>:(Ljava/util/Iterator;)V
            areturn
        end local 0 // java.util.Iterator entryIterator
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0  entryIterator  Ljava/util/Iterator<Lcom/google/common/collect/Multiset$Entry<TE;>;>;
    Signature: <E:Ljava/lang/Object;>(Ljava/util/Iterator<Lcom/google/common/collect/Multiset$Entry<TE;>;>;)Ljava/util/Iterator<TE;>;
    MethodParameters:
               Name  Flags
      entryIterator  

  static <E> java.util.Iterator<E> iteratorImpl(com.google.common.collect.Multiset<E>);
    descriptor: (Lcom/google/common/collect/Multiset;)Ljava/util/Iterator;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.google.common.collect.Multiset multiset
         0: .line 1052
            new com.google.common.collect.Multisets$MultisetIteratorImpl
            dup
            aload 0 /* multiset */
            aload 0 /* multiset */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokespecial com.google.common.collect.Multisets$MultisetIteratorImpl.<init>:(Lcom/google/common/collect/Multiset;Ljava/util/Iterator;)V
            areturn
        end local 0 // com.google.common.collect.Multiset multiset
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  multiset  Lcom/google/common/collect/Multiset<TE;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;)Ljava/util/Iterator<TE;>;
    MethodParameters:
          Name  Flags
      multiset  

  static <E> java.util.Spliterator<E> spliteratorImpl(com.google.common.collect.Multiset<E>);
    descriptor: (Lcom/google/common/collect/Multiset;)Ljava/util/Spliterator;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.google.common.collect.Multiset multiset
         0: .line 1106
            aload 0 /* multiset */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.spliterator:()Ljava/util/Spliterator;
            astore 1 /* entrySpliterator */
        start local 1 // java.util.Spliterator entrySpliterator
         1: .line 1108
            aload 1 /* entrySpliterator */
         2: .line 1109
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  com/google/common/collect/Multisets.lambda$3(Lcom/google/common/collect/Multiset$Entry;)Ljava/util/Spliterator; (6)
                  (Lcom/google/common/collect/Multiset$Entry;)Ljava/util/Spliterator;
         3: .line 1110
            bipush 64
         4: .line 1111
            aload 1 /* entrySpliterator */
            invokeinterface java.util.Spliterator.characteristics:()I
         5: .line 1112
            sipush 1296
         6: .line 1111
            iand
         7: .line 1110
            ior
         8: .line 1113
            aload 0 /* multiset */
            invokeinterface com.google.common.collect.Multiset.size:()I
            i2l
         9: .line 1107
            invokestatic com.google.common.collect.CollectSpliterators.flatMap:(Ljava/util/Spliterator;Ljava/util/function/Function;IJ)Ljava/util/Spliterator;
            areturn
        end local 1 // java.util.Spliterator entrySpliterator
        end local 0 // com.google.common.collect.Multiset multiset
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0          multiset  Lcom/google/common/collect/Multiset<TE;>;
            1   10     1  entrySpliterator  Ljava/util/Spliterator<Lcom/google/common/collect/Multiset$Entry<TE;>;>;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;)Ljava/util/Spliterator<TE;>;
    MethodParameters:
          Name  Flags
      multiset  

  static int linearTimeSizeImpl(com.google.common.collect.Multiset<?>);
    descriptor: (Lcom/google/common/collect/Multiset;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // com.google.common.collect.Multiset multiset
         0: .line 1118
            lconst_0
            lstore 1 /* size */
        start local 1 // long size
         1: .line 1119
            aload 0 /* multiset */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.google.common.collect.Multiset long top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.google.common.collect.Multiset$Entry
            astore 3 /* entry */
        start local 3 // com.google.common.collect.Multiset$Entry entry
         3: .line 1120
            lload 1 /* size */
            aload 3 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getCount:()I
            i2l
            ladd
            lstore 1 /* size */
        end local 3 // com.google.common.collect.Multiset$Entry entry
         4: .line 1119
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1122
            lload 1 /* size */
            invokestatic com.google.common.primitives.Ints.saturatedCast:(J)I
            ireturn
        end local 1 // long size
        end local 0 // com.google.common.collect.Multiset multiset
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  multiset  Lcom/google/common/collect/Multiset<*>;
            1    6     1      size  J
            3    4     3     entry  Lcom/google/common/collect/Multiset$Entry<*>;
    Signature: (Lcom/google/common/collect/Multiset<*>;)I
    MethodParameters:
          Name  Flags
      multiset  

  static <T> com.google.common.collect.Multiset<T> cast(java.lang.Iterable<T>);
    descriptor: (Ljava/lang/Iterable;)Lcom/google/common/collect/Multiset;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Iterable iterable
         0: .line 1127
            aload 0 /* iterable */
            checkcast com.google.common.collect.Multiset
            areturn
        end local 0 // java.lang.Iterable iterable
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  iterable  Ljava/lang/Iterable<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Iterable<TT;>;)Lcom/google/common/collect/Multiset<TT;>;
    MethodParameters:
          Name  Flags
      iterable  

  public static <E> com.google.common.collect.ImmutableMultiset<E> copyHighestCountFirst(com.google.common.collect.Multiset<E>);
    descriptor: (Lcom/google/common/collect/Multiset;)Lcom/google/common/collect/ImmutableMultiset;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.google.common.collect.Multiset multiset
         0: .line 1138
            aload 0 /* multiset */
            invokeinterface com.google.common.collect.Multiset.entrySet:()Ljava/util/Set;
            iconst_0
            anewarray com.google.common.collect.Multiset$Entry
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.google.common.collect.Multiset$Entry[]
            astore 1 /* entries */
        start local 1 // com.google.common.collect.Multiset$Entry[] entries
         1: .line 1139
            aload 1 /* entries */
            getstatic com.google.common.collect.Multisets$DecreasingCount.INSTANCE:Lcom/google/common/collect/Multisets$DecreasingCount;
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         2: .line 1140
            aload 1 /* entries */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic com.google.common.collect.ImmutableMultiset.copyFromEntries:(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableMultiset;
            areturn
        end local 1 // com.google.common.collect.Multiset$Entry[] entries
        end local 0 // com.google.common.collect.Multiset multiset
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  multiset  Lcom/google/common/collect/Multiset<TE;>;
            1    3     1   entries  [Lcom/google/common/collect/Multiset$Entry;
    Signature: <E:Ljava/lang/Object;>(Lcom/google/common/collect/Multiset<TE;>;)Lcom/google/common/collect/ImmutableMultiset<TE;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.Beta()
    MethodParameters:
          Name  Flags
      multiset  

  private static void lambda$0(java.util.function.Function, java.util.function.ToIntFunction, com.google.common.collect.Multiset, java.lang.Object);
    descriptor: (Ljava/util/function/Function;Ljava/util/function/ToIntFunction;Lcom/google/common/collect/Multiset;Ljava/lang/Object;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 2 // com.google.common.collect.Multiset ms
        start local 3 // java.lang.Object t
         0: .line 84
            aload 2 /* ms */
            aload 0
            aload 3 /* t */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 1
            aload 3 /* t */
            invokeinterface java.util.function.ToIntFunction.applyAsInt:(Ljava/lang/Object;)I
            invokeinterface com.google.common.collect.Multiset.add:(Ljava/lang/Object;I)I
            return
        end local 3 // java.lang.Object t
        end local 2 // com.google.common.collect.Multiset ms
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     2    ms  TM;
            0    1     3     t  TT;

  private static com.google.common.collect.Multiset lambda$1(com.google.common.collect.Multiset, com.google.common.collect.Multiset);
    descriptor: (Lcom/google/common/collect/Multiset;Lcom/google/common/collect/Multiset;)Lcom/google/common/collect/Multiset;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.google.common.collect.Multiset ms1
        start local 1 // com.google.common.collect.Multiset ms2
         0: .line 86
            aload 0 /* ms1 */
            aload 1 /* ms2 */
            invokeinterface com.google.common.collect.Multiset.addAll:(Ljava/util/Collection;)Z
            pop
         1: .line 87
            aload 0 /* ms1 */
            areturn
        end local 1 // com.google.common.collect.Multiset ms2
        end local 0 // com.google.common.collect.Multiset ms1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   ms1  TM;
            0    2     1   ms2  TM;

  private static java.util.Spliterator lambda$3(com.google.common.collect.Multiset$Entry);
    descriptor: (Lcom/google/common/collect/Multiset$Entry;)Ljava/util/Spliterator;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.google.common.collect.Multiset$Entry entry
         0: .line 1109
            aload 0 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getCount:()I
            aload 0 /* entry */
            invokeinterface com.google.common.collect.Multiset$Entry.getElement:()Ljava/lang/Object;
            invokestatic java.util.Collections.nCopies:(ILjava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.spliterator:()Ljava/util/Spliterator;
            areturn
        end local 0 // com.google.common.collect.Multiset$Entry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  entry  Lcom/google/common/collect/Multiset$Entry<TE;>;
}
SourceFile: "Multisets.java"
NestMembers:
  com.google.common.collect.Multisets$1  com.google.common.collect.Multisets$1$1  com.google.common.collect.Multisets$2  com.google.common.collect.Multisets$2$1  com.google.common.collect.Multisets$3  com.google.common.collect.Multisets$3$1  com.google.common.collect.Multisets$4  com.google.common.collect.Multisets$4$1  com.google.common.collect.Multisets$4$2  com.google.common.collect.Multisets$5  com.google.common.collect.Multisets$AbstractEntry  com.google.common.collect.Multisets$DecreasingCount  com.google.common.collect.Multisets$ElementSet  com.google.common.collect.Multisets$EntrySet  com.google.common.collect.Multisets$FilteredMultiset  com.google.common.collect.Multisets$FilteredMultiset$1  com.google.common.collect.Multisets$ImmutableEntry  com.google.common.collect.Multisets$MultisetIteratorImpl  com.google.common.collect.Multisets$UnmodifiableMultiset  com.google.common.collect.Multisets$ViewMultiset
InnerClasses:
  public abstract Entry = com.google.common.collect.Multiset$Entry of com.google.common.collect.Multiset
  com.google.common.collect.Multisets$1
  com.google.common.collect.Multisets$2
  com.google.common.collect.Multisets$3
  com.google.common.collect.Multisets$4
  com.google.common.collect.Multisets$5
  abstract AbstractEntry = com.google.common.collect.Multisets$AbstractEntry of com.google.common.collect.Multisets
  private final DecreasingCount = com.google.common.collect.Multisets$DecreasingCount of com.google.common.collect.Multisets
  abstract ElementSet = com.google.common.collect.Multisets$ElementSet of com.google.common.collect.Multisets
  abstract EntrySet = com.google.common.collect.Multisets$EntrySet of com.google.common.collect.Multisets
  private final FilteredMultiset = com.google.common.collect.Multisets$FilteredMultiset of com.google.common.collect.Multisets
  ImmutableEntry = com.google.common.collect.Multisets$ImmutableEntry of com.google.common.collect.Multisets
  final MultisetIteratorImpl = com.google.common.collect.Multisets$MultisetIteratorImpl of com.google.common.collect.Multisets
  UnmodifiableMultiset = com.google.common.collect.Multisets$UnmodifiableMultiset of com.google.common.collect.Multisets
  private abstract ViewMultiset = com.google.common.collect.Multisets$ViewMultiset of com.google.common.collect.Multisets
  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.GwtCompatible()