public final class com.google.common.collect.ObjectArrays
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.google.common.collect.ObjectArrays
  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.ObjectArrays this
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.google.common.collect.ObjectArrays this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/collect/ObjectArrays;

  public static <T> T[] newArray(java.lang.Class<T>, );
    descriptor: (Ljava/lang/Class;I)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class type
        start local 1 // int length
         0: .line 49
            aload 0 /* type */
            iload 1 /* length */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Object[]
            areturn
        end local 1 // int length
        end local 0 // java.lang.Class type
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    type  Ljava/lang/Class<TT;>;
            0    1     1  length  I
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;I)[TT;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
        Name  Flags
      type    
      length  

  public static <T> T[] newArray(T[], );
    descriptor: ([Ljava/lang/Object;I)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object[] reference
        start local 1 // int length
         0: .line 59
            aload 0 /* reference */
            iload 1 /* length */
            invokestatic com.google.common.collect.Platform.newArray:([Ljava/lang/Object;I)[Ljava/lang/Object;
            areturn
        end local 1 // int length
        end local 0 // java.lang.Object[] reference
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  reference  [Ljava/lang/Object;
            0    1     1     length  I
    Signature: <T:Ljava/lang/Object;>([TT;I)[TT;
    MethodParameters:
           Name  Flags
      reference  
      length     

  public static <T> T[] concat(T[], T[], java.lang.Class<T>);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Class;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Object[] first
        start local 1 // java.lang.Object[] second
        start local 2 // java.lang.Class type
         0: .line 71
            aload 2 /* type */
            aload 0 /* first */
            arraylength
            aload 1 /* second */
            arraylength
            iadd
            invokestatic com.google.common.collect.ObjectArrays.newArray:(Ljava/lang/Class;I)[Ljava/lang/Object;
            astore 3 /* result */
        start local 3 // java.lang.Object[] result
         1: .line 72
            aload 0 /* first */
            iconst_0
            aload 3 /* result */
            iconst_0
            aload 0 /* first */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 73
            aload 1 /* second */
            iconst_0
            aload 3 /* result */
            aload 0 /* first */
            arraylength
            aload 1 /* second */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 74
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object[] result
        end local 2 // java.lang.Class type
        end local 1 // java.lang.Object[] second
        end local 0 // java.lang.Object[] first
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0   first  [Ljava/lang/Object;
            0    4     1  second  [Ljava/lang/Object;
            0    4     2    type  Ljava/lang/Class<TT;>;
            1    4     3  result  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>([TT;[TT;Ljava/lang/Class<TT;>;)[TT;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtIncompatible()
    MethodParameters:
        Name  Flags
      first   
      second  
      type    

  public static <T> T[] concat(T, );
    descriptor: (Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.Object element
        start local 1 // java.lang.Object[] array
         0: .line 86
            aload 1 /* array */
            aload 1 /* array */
            arraylength
            iconst_1
            iadd
            invokestatic com.google.common.collect.ObjectArrays.newArray:([Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object[] result
         1: .line 87
            aload 2 /* result */
            iconst_0
            aload 0 /* element */
            aastore
         2: .line 88
            aload 1 /* array */
            iconst_0
            aload 2 /* result */
            iconst_1
            aload 1 /* array */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 89
            aload 2 /* result */
            areturn
        end local 2 // java.lang.Object[] result
        end local 1 // java.lang.Object[] array
        end local 0 // java.lang.Object element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  element  TT;
            0    4     1    array  [Ljava/lang/Object;
            1    4     2   result  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(TT;[TT;)[TT;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
         Name  Flags
      element  
      array    

  public static <T> T[] concat(T[], );
    descriptor: ([Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.Object[] array
        start local 1 // java.lang.Object element
         0: .line 101
            aload 0 /* array */
            aload 0 /* array */
            arraylength
            iconst_1
            iadd
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object[] result
         1: .line 102
            aload 2 /* result */
            aload 0 /* array */
            arraylength
            aload 1 /* element */
            aastore
         2: .line 103
            aload 2 /* result */
            areturn
        end local 2 // java.lang.Object[] result
        end local 1 // java.lang.Object element
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0    array  [Ljava/lang/Object;
            0    3     1  element  TT;
            1    3     2   result  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>([TT;TT;)[TT;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        org.checkerframework.checker.nullness.qual.Nullable()
    MethodParameters:
         Name  Flags
      array    
      element  

  static <T> T[] toArrayImpl(java.util.Collection<?>, );
    descriptor: (Ljava/util/Collection;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.Collection c
        start local 1 // java.lang.Object[] array
         0: .line 128
            aload 0 /* c */
            invokeinterface java.util.Collection.size:()I
            istore 2 /* size */
        start local 2 // int size
         1: .line 129
            aload 1 /* array */
            arraylength
            iload 2 /* size */
            if_icmpge 3
         2: .line 130
            aload 1 /* array */
            iload 2 /* size */
            invokestatic com.google.common.collect.ObjectArrays.newArray:([Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 1 /* array */
         3: .line 132
      StackMap locals: int
      StackMap stack:
            aload 0 /* c */
            aload 1 /* array */
            invokestatic com.google.common.collect.ObjectArrays.fillArray:(Ljava/lang/Iterable;[Ljava/lang/Object;)[Ljava/lang/Object;
            pop
         4: .line 133
            aload 1 /* array */
            arraylength
            iload 2 /* size */
            if_icmple 6
         5: .line 134
            aload 1 /* array */
            iload 2 /* size */
            aconst_null
            aastore
         6: .line 136
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            areturn
        end local 2 // int size
        end local 1 // java.lang.Object[] array
        end local 0 // java.util.Collection c
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0      c  Ljava/util/Collection<*>;
            0    7     1  array  [Ljava/lang/Object;
            1    7     2   size  I
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<*>;[TT;)[TT;
    MethodParameters:
       Name  Flags
      c      
      array  

  static <T> T[] toArrayImpl([], int, int, );
    descriptor: ([Ljava/lang/Object;II[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.lang.Object[] src
        start local 1 // int offset
        start local 2 // int len
        start local 3 // java.lang.Object[] dst
         0: .line 151
            iload 1 /* offset */
            iload 1 /* offset */
            iload 2 /* len */
            iadd
            aload 0 /* src */
            arraylength
            invokestatic com.google.common.base.Preconditions.checkPositionIndexes:(III)V
         1: .line 152
            aload 3 /* dst */
            arraylength
            iload 2 /* len */
            if_icmpge 4
         2: .line 153
            aload 3 /* dst */
            iload 2 /* len */
            invokestatic com.google.common.collect.ObjectArrays.newArray:([Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 3 /* dst */
         3: .line 154
            goto 6
      StackMap locals:
      StackMap stack:
         4: aload 3 /* dst */
            arraylength
            iload 2 /* len */
            if_icmple 6
         5: .line 155
            aload 3 /* dst */
            iload 2 /* len */
            aconst_null
            aastore
         6: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            iload 1 /* offset */
            aload 3 /* dst */
            iconst_0
            iload 2 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 158
            aload 3 /* dst */
            areturn
        end local 3 // java.lang.Object[] dst
        end local 2 // int len
        end local 1 // int offset
        end local 0 // java.lang.Object[] src
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0     src  [Ljava/lang/Object;
            0    8     1  offset  I
            0    8     2     len  I
            0    8     3     dst  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>([Ljava/lang/Object;II[TT;)[TT;
    MethodParameters:
        Name  Flags
      src     
      offset  
      len     
      dst     

  static [] toArrayImpl(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)[Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Collection c
         0: .line 174
            aload 0 /* c */
            aload 0 /* c */
            invokeinterface java.util.Collection.size:()I
            anewarray java.lang.Object
            invokestatic com.google.common.collect.ObjectArrays.fillArray:(Ljava/lang/Iterable;[Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 0 // java.util.Collection c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     c  Ljava/util/Collection<*>;
    Signature: (Ljava/util/Collection<*>;)[Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      c     

  static java.lang.Object[] copyAsObjectArray(java.lang.Object[], int, int);
    descriptor: ([Ljava/lang/Object;II)[Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Object[] elements
        start local 1 // int offset
        start local 2 // int length
         0: .line 182
            iload 1 /* offset */
            iload 1 /* offset */
            iload 2 /* length */
            iadd
            aload 0 /* elements */
            arraylength
            invokestatic com.google.common.base.Preconditions.checkPositionIndexes:(III)V
         1: .line 183
            iload 2 /* length */
            ifne 3
         2: .line 184
            iconst_0
            anewarray java.lang.Object
            areturn
         3: .line 186
      StackMap locals:
      StackMap stack:
            iload 2 /* length */
            anewarray java.lang.Object
            astore 3 /* result */
        start local 3 // java.lang.Object[] result
         4: .line 187
            aload 0 /* elements */
            iload 1 /* offset */
            aload 3 /* result */
            iconst_0
            iload 2 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 188
            aload 3 /* result */
            areturn
        end local 3 // java.lang.Object[] result
        end local 2 // int length
        end local 1 // int offset
        end local 0 // java.lang.Object[] elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  elements  [Ljava/lang/Object;
            0    6     1    offset  I
            0    6     2    length  I
            4    6     3    result  [Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      elements  
      offset    
      length    

  private static [] fillArray(java.lang.Iterable<?>, []);
    descriptor: (Ljava/lang/Iterable;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.Iterable elements
        start local 1 // java.lang.Object[] array
         0: .line 193
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: .line 194
            aload 0 /* elements */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: java.lang.Iterable java.lang.Object[] int top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 3 /* element */
        start local 3 // java.lang.Object element
         3: .line 195
            aload 1 /* array */
            iload 2 /* i */
            iinc 2 /* i */ 1
            aload 3 /* element */
            aastore
        end local 3 // java.lang.Object element
         4: .line 194
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 197
            aload 1 /* array */
            areturn
        end local 2 // int i
        end local 1 // java.lang.Object[] array
        end local 0 // java.lang.Iterable elements
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  elements  Ljava/lang/Iterable<*>;
            0    6     1     array  [Ljava/lang/Object;
            1    6     2         i  I
            3    4     3   element  Ljava/lang/Object;
    Signature: (Ljava/lang/Iterable<*>;[Ljava/lang/Object;)[Ljava/lang/Object;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
          Name  Flags
      elements  
      array     

  static void swap(java.lang.Object[], int, int);
    descriptor: ([Ljava/lang/Object;II)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.Object[] array
        start local 1 // int i
        start local 2 // int j
         0: .line 202
            aload 0 /* array */
            iload 1 /* i */
            aaload
            astore 3 /* temp */
        start local 3 // java.lang.Object temp
         1: .line 203
            aload 0 /* array */
            iload 1 /* i */
            aload 0 /* array */
            iload 2 /* j */
            aaload
            aastore
         2: .line 204
            aload 0 /* array */
            iload 2 /* j */
            aload 3 /* temp */
            aastore
         3: .line 205
            return
        end local 3 // java.lang.Object temp
        end local 2 // int j
        end local 1 // int i
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  array  [Ljava/lang/Object;
            0    4     1      i  I
            0    4     2      j  I
            1    4     3   temp  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      array  
      i      
      j      

  static java.lang.Object[] checkElementsNotNull(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] array
         0: .line 209
            aload 0 /* array */
            aload 0 /* array */
            arraylength
            invokestatic com.google.common.collect.ObjectArrays.checkElementsNotNull:([Ljava/lang/Object;I)[Ljava/lang/Object;
            areturn
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  array  [Ljava/lang/Object;
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
       Name  Flags
      array  

  static java.lang.Object[] checkElementsNotNull(java.lang.Object[], int);
    descriptor: ([Ljava/lang/Object;I)[Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Object[] array
        start local 1 // int length
         0: .line 214
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 4
         2: .line 215
      StackMap locals: int
      StackMap stack:
            aload 0 /* array */
            iload 2 /* i */
            aaload
            iload 2 /* i */
            invokestatic com.google.common.collect.ObjectArrays.checkElementNotNull:(Ljava/lang/Object;I)Ljava/lang/Object;
            pop
         3: .line 214
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* i */
            iload 1 /* length */
            if_icmplt 2
        end local 2 // int i
         5: .line 217
            aload 0 /* array */
            areturn
        end local 1 // int length
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0   array  [Ljava/lang/Object;
            0    6     1  length  I
            1    5     2       i  I
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
        Name  Flags
      array   
      length  

  static java.lang.Object checkElementNotNull(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.Object element
        start local 1 // int index
         0: .line 224
            aload 0 /* element */
            ifnonnull 2
         1: .line 225
            new java.lang.NullPointerException
            dup
            new java.lang.StringBuilder
            dup
            ldc "at index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* element */
            areturn
        end local 1 // int index
        end local 0 // java.lang.Object element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  element  Ljava/lang/Object;
            0    3     1    index  I
    RuntimeInvisibleAnnotations: 
      com.google.errorprone.annotations.CanIgnoreReturnValue()
    MethodParameters:
         Name  Flags
      element  
      index    
}
SourceFile: "ObjectArrays.java"
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.GwtCompatible(emulated = true)