public class java.util.Arrays
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.util.Arrays
  super_class: java.lang.Object
{
  private static final int MIN_ARRAY_SORT_GRAN;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private static final int INSERTIONSORT_THRESHOLD;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 74
            ldc Ljava/util/Arrays;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic java.util.Arrays.$assertionsDisabled:Z
         3: .line 1330
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Arrays this
         0: .line 85
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // java.util.Arrays this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Arrays;

  static void rangeCheck(int, int, int);
    descriptor: (III)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // int arrayLength
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 115
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            if_icmple 4
         1: .line 116
            new java.lang.IllegalArgumentException
            dup
         2: .line 117
            new java.lang.StringBuilder
            dup
            ldc "fromIndex("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* fromIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") > toIndex("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* toIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 116
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 119
      StackMap locals:
      StackMap stack:
            iload 1 /* fromIndex */
            ifge 6
         5: .line 120
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            iload 1 /* fromIndex */
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(I)V
            athrow
         6: .line 122
      StackMap locals:
      StackMap stack:
            iload 2 /* toIndex */
            iload 0 /* arrayLength */
            if_icmple 8
         7: .line 123
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            iload 2 /* toIndex */
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(I)V
            athrow
         8: .line 125
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // int arrayLength
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0  arrayLength  I
            0    9     1    fromIndex  I
            0    9     2      toIndex  I
    MethodParameters:
             Name  Flags
      arrayLength  
      fromIndex    
      toIndex      

  public static void sort(int[]);
    descriptor: ([I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // int[] a
         0: .line 147
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([III[III)V
         1: .line 148
            return
        end local 0 // int[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [I
    MethodParameters:
      Name  Flags
      a     

  public static void sort(int[], int, int);
    descriptor: ([III)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // int[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 171
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 172
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([III[III)V
         2: .line 173
            return
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // int[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0          a  [I
            0    3     1  fromIndex  I
            0    3     2    toIndex  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void sort(long[]);
    descriptor: ([J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // long[] a
         0: .line 187
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([JII[JII)V
         1: .line 188
            return
        end local 0 // long[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [J
    MethodParameters:
      Name  Flags
      a     

  public static void sort(long[], int, int);
    descriptor: ([JII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // long[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 211
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 212
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([JII[JII)V
         2: .line 213
            return
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // long[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0          a  [J
            0    3     1  fromIndex  I
            0    3     2    toIndex  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void sort(short[]);
    descriptor: ([S)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // short[] a
         0: .line 227
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([SII[SII)V
         1: .line 228
            return
        end local 0 // short[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [S
    MethodParameters:
      Name  Flags
      a     

  public static void sort(short[], int, int);
    descriptor: ([SII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // short[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 251
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 252
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([SII[SII)V
         2: .line 253
            return
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // short[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0          a  [S
            0    3     1  fromIndex  I
            0    3     2    toIndex  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void sort(char[]);
    descriptor: ([C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // char[] a
         0: .line 267
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([CII[CII)V
         1: .line 268
            return
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [C
    MethodParameters:
      Name  Flags
      a     

  public static void sort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // char[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 291
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 292
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([CII[CII)V
         2: .line 293
            return
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0          a  [C
            0    3     1  fromIndex  I
            0    3     2    toIndex  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void sort(byte[]);
    descriptor: ([B)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // byte[] a
         0: .line 307
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_1
            isub
            invokestatic java.util.DualPivotQuicksort.sort:([BII)V
         1: .line 308
            return
        end local 0 // byte[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [B
    MethodParameters:
      Name  Flags
      a     

  public static void sort(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // byte[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 331
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 332
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            invokestatic java.util.DualPivotQuicksort.sort:([BII)V
         2: .line 333
            return
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // byte[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0          a  [B
            0    3     1  fromIndex  I
            0    3     2    toIndex  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void sort(float[]);
    descriptor: ([F)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // float[] a
         0: .line 355
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([FII[FII)V
         1: .line 356
            return
        end local 0 // float[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [F
    MethodParameters:
      Name  Flags
      a     

  public static void sort(float[], int, int);
    descriptor: ([FII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // float[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 387
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 388
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([FII[FII)V
         2: .line 389
            return
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // float[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0          a  [F
            0    3     1  fromIndex  I
            0    3     2    toIndex  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void sort(double[]);
    descriptor: ([D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // double[] a
         0: .line 411
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([DII[DII)V
         1: .line 412
            return
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
    MethodParameters:
      Name  Flags
      a     

  public static void sort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // double[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 443
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 444
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([DII[DII)V
         2: .line 445
            return
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0          a  [D
            0    3     1  fromIndex  I
            0    3     2    toIndex  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void parallelSort(byte[]);
    descriptor: ([B)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=4, args_size=1
        start local 0 // byte[] a
         0: .line 466
            aload 0 /* a */
            arraylength
            istore 1 /* n */
        start local 1 // int n
         1: .line 467
            iload 1 /* n */
            sipush 8192
            if_icmple 4
         2: .line 468
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 2 /* p */
        start local 2 // int p
         3: iconst_1
            if_icmpne 5
        end local 2 // int p
         4: .line 469
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iconst_0
            iload 1 /* n */
            iconst_1
            isub
            invokestatic java.util.DualPivotQuicksort.sort:([BII)V
            goto 13
        start local 2 // int p
         5: .line 471
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJByte$Sorter
            dup
         6: .line 472
            aconst_null
            aload 0 /* a */
            iload 1 /* n */
            newarray 8
            iconst_0
            iload 1 /* n */
            iconst_0
         7: .line 473
            iload 1 /* n */
            iload 2 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 3 /* g */
        start local 3 // int g
         8: sipush 8192
            if_icmpgt 10
         9: .line 474
            sipush 8192
            goto 11
      StackMap locals: byte[] int int int
      StackMap stack: new 5 new 5 null byte[] byte[] int int int
        10: iload 3 /* g */
        11: .line 471
      StackMap locals: byte[] int int int
      StackMap stack: new 5 new 5 null byte[] byte[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJByte$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[B[BIIII)V
        12: .line 474
            invokevirtual java.util.ArraysParallelSortHelpers$FJByte$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 3 // int g
        end local 2 // int p
        13: .line 475
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int n
        end local 0 // byte[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     a  [B
            1   14     1     n  I
            3    4     2     p  I
            5   13     2     p  I
            8   13     3     g  I
    MethodParameters:
      Name  Flags
      a     

  public static void parallelSort(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=3
        start local 0 // byte[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 505
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 506
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            isub
            istore 3 /* n */
        start local 3 // int n
         2: .line 507
            iload 3 /* n */
            sipush 8192
            if_icmple 5
         3: .line 508
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 4 /* p */
        start local 4 // int p
         4: iconst_1
            if_icmpne 6
        end local 4 // int p
         5: .line 509
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            invokestatic java.util.DualPivotQuicksort.sort:([BII)V
            goto 14
        start local 4 // int p
         6: .line 511
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJByte$Sorter
            dup
         7: .line 512
            aconst_null
            aload 0 /* a */
            iload 3 /* n */
            newarray 8
            iload 1 /* fromIndex */
            iload 3 /* n */
            iconst_0
         8: .line 513
            iload 3 /* n */
            iload 4 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 5 /* g */
        start local 5 // int g
         9: sipush 8192
            if_icmpgt 11
        10: .line 514
            sipush 8192
            goto 12
      StackMap locals: byte[] int int int int int
      StackMap stack: new 6 new 6 null byte[] byte[] int int int
        11: iload 5 /* g */
        12: .line 511
      StackMap locals: byte[] int int int int int
      StackMap stack: new 6 new 6 null byte[] byte[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJByte$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[B[BIIII)V
        13: .line 514
            invokevirtual java.util.ArraysParallelSortHelpers$FJByte$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 5 // int g
        end local 4 // int p
        14: .line 515
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int n
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // byte[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0          a  [B
            0   15     1  fromIndex  I
            0   15     2    toIndex  I
            2   15     3          n  I
            4    5     4          p  I
            6   14     4          p  I
            9   14     5          g  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void parallelSort(char[]);
    descriptor: ([C)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=4, args_size=1
        start local 0 // char[] a
         0: .line 536
            aload 0 /* a */
            arraylength
            istore 1 /* n */
        start local 1 // int n
         1: .line 537
            iload 1 /* n */
            sipush 8192
            if_icmple 4
         2: .line 538
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 2 /* p */
        start local 2 // int p
         3: iconst_1
            if_icmpne 5
        end local 2 // int p
         4: .line 539
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iconst_0
            iload 1 /* n */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([CII[CII)V
            goto 13
        start local 2 // int p
         5: .line 541
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJChar$Sorter
            dup
         6: .line 542
            aconst_null
            aload 0 /* a */
            iload 1 /* n */
            newarray 5
            iconst_0
            iload 1 /* n */
            iconst_0
         7: .line 543
            iload 1 /* n */
            iload 2 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 3 /* g */
        start local 3 // int g
         8: sipush 8192
            if_icmpgt 10
         9: .line 544
            sipush 8192
            goto 11
      StackMap locals: char[] int int int
      StackMap stack: new 5 new 5 null char[] char[] int int int
        10: iload 3 /* g */
        11: .line 541
      StackMap locals: char[] int int int
      StackMap stack: new 5 new 5 null char[] char[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJChar$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[C[CIIII)V
        12: .line 544
            invokevirtual java.util.ArraysParallelSortHelpers$FJChar$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 3 // int g
        end local 2 // int p
        13: .line 545
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int n
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     a  [C
            1   14     1     n  I
            3    4     2     p  I
            5   13     2     p  I
            8   13     3     g  I
    MethodParameters:
      Name  Flags
      a     

  public static void parallelSort(char[], int, int);
    descriptor: ([CII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=3
        start local 0 // char[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 575
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 576
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            isub
            istore 3 /* n */
        start local 3 // int n
         2: .line 577
            iload 3 /* n */
            sipush 8192
            if_icmple 5
         3: .line 578
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 4 /* p */
        start local 4 // int p
         4: iconst_1
            if_icmpne 6
        end local 4 // int p
         5: .line 579
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([CII[CII)V
            goto 14
        start local 4 // int p
         6: .line 581
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJChar$Sorter
            dup
         7: .line 582
            aconst_null
            aload 0 /* a */
            iload 3 /* n */
            newarray 5
            iload 1 /* fromIndex */
            iload 3 /* n */
            iconst_0
         8: .line 583
            iload 3 /* n */
            iload 4 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 5 /* g */
        start local 5 // int g
         9: sipush 8192
            if_icmpgt 11
        10: .line 584
            sipush 8192
            goto 12
      StackMap locals: char[] int int int int int
      StackMap stack: new 6 new 6 null char[] char[] int int int
        11: iload 5 /* g */
        12: .line 581
      StackMap locals: char[] int int int int int
      StackMap stack: new 6 new 6 null char[] char[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJChar$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[C[CIIII)V
        13: .line 584
            invokevirtual java.util.ArraysParallelSortHelpers$FJChar$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 5 // int g
        end local 4 // int p
        14: .line 585
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int n
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // char[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0          a  [C
            0   15     1  fromIndex  I
            0   15     2    toIndex  I
            2   15     3          n  I
            4    5     4          p  I
            6   14     4          p  I
            9   14     5          g  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void parallelSort(short[]);
    descriptor: ([S)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=4, args_size=1
        start local 0 // short[] a
         0: .line 606
            aload 0 /* a */
            arraylength
            istore 1 /* n */
        start local 1 // int n
         1: .line 607
            iload 1 /* n */
            sipush 8192
            if_icmple 4
         2: .line 608
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 2 /* p */
        start local 2 // int p
         3: iconst_1
            if_icmpne 5
        end local 2 // int p
         4: .line 609
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iconst_0
            iload 1 /* n */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([SII[SII)V
            goto 13
        start local 2 // int p
         5: .line 611
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJShort$Sorter
            dup
         6: .line 612
            aconst_null
            aload 0 /* a */
            iload 1 /* n */
            newarray 9
            iconst_0
            iload 1 /* n */
            iconst_0
         7: .line 613
            iload 1 /* n */
            iload 2 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 3 /* g */
        start local 3 // int g
         8: sipush 8192
            if_icmpgt 10
         9: .line 614
            sipush 8192
            goto 11
      StackMap locals: short[] int int int
      StackMap stack: new 5 new 5 null short[] short[] int int int
        10: iload 3 /* g */
        11: .line 611
      StackMap locals: short[] int int int
      StackMap stack: new 5 new 5 null short[] short[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJShort$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[S[SIIII)V
        12: .line 614
            invokevirtual java.util.ArraysParallelSortHelpers$FJShort$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 3 // int g
        end local 2 // int p
        13: .line 615
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int n
        end local 0 // short[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     a  [S
            1   14     1     n  I
            3    4     2     p  I
            5   13     2     p  I
            8   13     3     g  I
    MethodParameters:
      Name  Flags
      a     

  public static void parallelSort(short[], int, int);
    descriptor: ([SII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=3
        start local 0 // short[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 645
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 646
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            isub
            istore 3 /* n */
        start local 3 // int n
         2: .line 647
            iload 3 /* n */
            sipush 8192
            if_icmple 5
         3: .line 648
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 4 /* p */
        start local 4 // int p
         4: iconst_1
            if_icmpne 6
        end local 4 // int p
         5: .line 649
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([SII[SII)V
            goto 14
        start local 4 // int p
         6: .line 651
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJShort$Sorter
            dup
         7: .line 652
            aconst_null
            aload 0 /* a */
            iload 3 /* n */
            newarray 9
            iload 1 /* fromIndex */
            iload 3 /* n */
            iconst_0
         8: .line 653
            iload 3 /* n */
            iload 4 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 5 /* g */
        start local 5 // int g
         9: sipush 8192
            if_icmpgt 11
        10: .line 654
            sipush 8192
            goto 12
      StackMap locals: short[] int int int int int
      StackMap stack: new 6 new 6 null short[] short[] int int int
        11: iload 5 /* g */
        12: .line 651
      StackMap locals: short[] int int int int int
      StackMap stack: new 6 new 6 null short[] short[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJShort$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[S[SIIII)V
        13: .line 654
            invokevirtual java.util.ArraysParallelSortHelpers$FJShort$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 5 // int g
        end local 4 // int p
        14: .line 655
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int n
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // short[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0          a  [S
            0   15     1  fromIndex  I
            0   15     2    toIndex  I
            2   15     3          n  I
            4    5     4          p  I
            6   14     4          p  I
            9   14     5          g  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void parallelSort(int[]);
    descriptor: ([I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=4, args_size=1
        start local 0 // int[] a
         0: .line 676
            aload 0 /* a */
            arraylength
            istore 1 /* n */
        start local 1 // int n
         1: .line 677
            iload 1 /* n */
            sipush 8192
            if_icmple 4
         2: .line 678
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 2 /* p */
        start local 2 // int p
         3: iconst_1
            if_icmpne 5
        end local 2 // int p
         4: .line 679
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iconst_0
            iload 1 /* n */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([III[III)V
            goto 13
        start local 2 // int p
         5: .line 681
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJInt$Sorter
            dup
         6: .line 682
            aconst_null
            aload 0 /* a */
            iload 1 /* n */
            newarray 10
            iconst_0
            iload 1 /* n */
            iconst_0
         7: .line 683
            iload 1 /* n */
            iload 2 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 3 /* g */
        start local 3 // int g
         8: sipush 8192
            if_icmpgt 10
         9: .line 684
            sipush 8192
            goto 11
      StackMap locals: int[] int int int
      StackMap stack: new 5 new 5 null int[] int[] int int int
        10: iload 3 /* g */
        11: .line 681
      StackMap locals: int[] int int int
      StackMap stack: new 5 new 5 null int[] int[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJInt$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[I[IIIII)V
        12: .line 684
            invokevirtual java.util.ArraysParallelSortHelpers$FJInt$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 3 // int g
        end local 2 // int p
        13: .line 685
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int n
        end local 0 // int[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     a  [I
            1   14     1     n  I
            3    4     2     p  I
            5   13     2     p  I
            8   13     3     g  I
    MethodParameters:
      Name  Flags
      a     

  public static void parallelSort(int[], int, int);
    descriptor: ([III)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=3
        start local 0 // int[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 715
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 716
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            isub
            istore 3 /* n */
        start local 3 // int n
         2: .line 717
            iload 3 /* n */
            sipush 8192
            if_icmple 5
         3: .line 718
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 4 /* p */
        start local 4 // int p
         4: iconst_1
            if_icmpne 6
        end local 4 // int p
         5: .line 719
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([III[III)V
            goto 14
        start local 4 // int p
         6: .line 721
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJInt$Sorter
            dup
         7: .line 722
            aconst_null
            aload 0 /* a */
            iload 3 /* n */
            newarray 10
            iload 1 /* fromIndex */
            iload 3 /* n */
            iconst_0
         8: .line 723
            iload 3 /* n */
            iload 4 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 5 /* g */
        start local 5 // int g
         9: sipush 8192
            if_icmpgt 11
        10: .line 724
            sipush 8192
            goto 12
      StackMap locals: int[] int int int int int
      StackMap stack: new 6 new 6 null int[] int[] int int int
        11: iload 5 /* g */
        12: .line 721
      StackMap locals: int[] int int int int int
      StackMap stack: new 6 new 6 null int[] int[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJInt$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[I[IIIII)V
        13: .line 724
            invokevirtual java.util.ArraysParallelSortHelpers$FJInt$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 5 // int g
        end local 4 // int p
        14: .line 725
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int n
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // int[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0          a  [I
            0   15     1  fromIndex  I
            0   15     2    toIndex  I
            2   15     3          n  I
            4    5     4          p  I
            6   14     4          p  I
            9   14     5          g  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void parallelSort(long[]);
    descriptor: ([J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=4, args_size=1
        start local 0 // long[] a
         0: .line 746
            aload 0 /* a */
            arraylength
            istore 1 /* n */
        start local 1 // int n
         1: .line 747
            iload 1 /* n */
            sipush 8192
            if_icmple 4
         2: .line 748
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 2 /* p */
        start local 2 // int p
         3: iconst_1
            if_icmpne 5
        end local 2 // int p
         4: .line 749
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iconst_0
            iload 1 /* n */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([JII[JII)V
            goto 13
        start local 2 // int p
         5: .line 751
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJLong$Sorter
            dup
         6: .line 752
            aconst_null
            aload 0 /* a */
            iload 1 /* n */
            newarray 11
            iconst_0
            iload 1 /* n */
            iconst_0
         7: .line 753
            iload 1 /* n */
            iload 2 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 3 /* g */
        start local 3 // int g
         8: sipush 8192
            if_icmpgt 10
         9: .line 754
            sipush 8192
            goto 11
      StackMap locals: long[] int int int
      StackMap stack: new 5 new 5 null long[] long[] int int int
        10: iload 3 /* g */
        11: .line 751
      StackMap locals: long[] int int int
      StackMap stack: new 5 new 5 null long[] long[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJLong$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[J[JIIII)V
        12: .line 754
            invokevirtual java.util.ArraysParallelSortHelpers$FJLong$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 3 // int g
        end local 2 // int p
        13: .line 755
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int n
        end local 0 // long[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     a  [J
            1   14     1     n  I
            3    4     2     p  I
            5   13     2     p  I
            8   13     3     g  I
    MethodParameters:
      Name  Flags
      a     

  public static void parallelSort(long[], int, int);
    descriptor: ([JII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=3
        start local 0 // long[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 785
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 786
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            isub
            istore 3 /* n */
        start local 3 // int n
         2: .line 787
            iload 3 /* n */
            sipush 8192
            if_icmple 5
         3: .line 788
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 4 /* p */
        start local 4 // int p
         4: iconst_1
            if_icmpne 6
        end local 4 // int p
         5: .line 789
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([JII[JII)V
            goto 14
        start local 4 // int p
         6: .line 791
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJLong$Sorter
            dup
         7: .line 792
            aconst_null
            aload 0 /* a */
            iload 3 /* n */
            newarray 11
            iload 1 /* fromIndex */
            iload 3 /* n */
            iconst_0
         8: .line 793
            iload 3 /* n */
            iload 4 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 5 /* g */
        start local 5 // int g
         9: sipush 8192
            if_icmpgt 11
        10: .line 794
            sipush 8192
            goto 12
      StackMap locals: long[] int int int int int
      StackMap stack: new 6 new 6 null long[] long[] int int int
        11: iload 5 /* g */
        12: .line 791
      StackMap locals: long[] int int int int int
      StackMap stack: new 6 new 6 null long[] long[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJLong$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[J[JIIII)V
        13: .line 794
            invokevirtual java.util.ArraysParallelSortHelpers$FJLong$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 5 // int g
        end local 4 // int p
        14: .line 795
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int n
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // long[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0          a  [J
            0   15     1  fromIndex  I
            0   15     2    toIndex  I
            2   15     3          n  I
            4    5     4          p  I
            6   14     4          p  I
            9   14     5          g  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void parallelSort(float[]);
    descriptor: ([F)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=4, args_size=1
        start local 0 // float[] a
         0: .line 824
            aload 0 /* a */
            arraylength
            istore 1 /* n */
        start local 1 // int n
         1: .line 825
            iload 1 /* n */
            sipush 8192
            if_icmple 4
         2: .line 826
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 2 /* p */
        start local 2 // int p
         3: iconst_1
            if_icmpne 5
        end local 2 // int p
         4: .line 827
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iconst_0
            iload 1 /* n */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([FII[FII)V
            goto 13
        start local 2 // int p
         5: .line 829
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJFloat$Sorter
            dup
         6: .line 830
            aconst_null
            aload 0 /* a */
            iload 1 /* n */
            newarray 6
            iconst_0
            iload 1 /* n */
            iconst_0
         7: .line 831
            iload 1 /* n */
            iload 2 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 3 /* g */
        start local 3 // int g
         8: sipush 8192
            if_icmpgt 10
         9: .line 832
            sipush 8192
            goto 11
      StackMap locals: float[] int int int
      StackMap stack: new 5 new 5 null float[] float[] int int int
        10: iload 3 /* g */
        11: .line 829
      StackMap locals: float[] int int int
      StackMap stack: new 5 new 5 null float[] float[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJFloat$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[F[FIIII)V
        12: .line 832
            invokevirtual java.util.ArraysParallelSortHelpers$FJFloat$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 3 // int g
        end local 2 // int p
        13: .line 833
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int n
        end local 0 // float[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     a  [F
            1   14     1     n  I
            3    4     2     p  I
            5   13     2     p  I
            8   13     3     g  I
    MethodParameters:
      Name  Flags
      a     

  public static void parallelSort(float[], int, int);
    descriptor: ([FII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=3
        start local 0 // float[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 871
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 872
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            isub
            istore 3 /* n */
        start local 3 // int n
         2: .line 873
            iload 3 /* n */
            sipush 8192
            if_icmple 5
         3: .line 874
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 4 /* p */
        start local 4 // int p
         4: iconst_1
            if_icmpne 6
        end local 4 // int p
         5: .line 875
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([FII[FII)V
            goto 14
        start local 4 // int p
         6: .line 877
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJFloat$Sorter
            dup
         7: .line 878
            aconst_null
            aload 0 /* a */
            iload 3 /* n */
            newarray 6
            iload 1 /* fromIndex */
            iload 3 /* n */
            iconst_0
         8: .line 879
            iload 3 /* n */
            iload 4 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 5 /* g */
        start local 5 // int g
         9: sipush 8192
            if_icmpgt 11
        10: .line 880
            sipush 8192
            goto 12
      StackMap locals: float[] int int int int int
      StackMap stack: new 6 new 6 null float[] float[] int int int
        11: iload 5 /* g */
        12: .line 877
      StackMap locals: float[] int int int int int
      StackMap stack: new 6 new 6 null float[] float[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJFloat$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[F[FIIII)V
        13: .line 880
            invokevirtual java.util.ArraysParallelSortHelpers$FJFloat$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 5 // int g
        end local 4 // int p
        14: .line 881
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int n
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // float[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0          a  [F
            0   15     1  fromIndex  I
            0   15     2    toIndex  I
            2   15     3          n  I
            4    5     4          p  I
            6   14     4          p  I
            9   14     5          g  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static void parallelSort(double[]);
    descriptor: ([D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=4, args_size=1
        start local 0 // double[] a
         0: .line 910
            aload 0 /* a */
            arraylength
            istore 1 /* n */
        start local 1 // int n
         1: .line 911
            iload 1 /* n */
            sipush 8192
            if_icmple 4
         2: .line 912
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 2 /* p */
        start local 2 // int p
         3: iconst_1
            if_icmpne 5
        end local 2 // int p
         4: .line 913
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iconst_0
            iload 1 /* n */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([DII[DII)V
            goto 13
        start local 2 // int p
         5: .line 915
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJDouble$Sorter
            dup
         6: .line 916
            aconst_null
            aload 0 /* a */
            iload 1 /* n */
            newarray 7
            iconst_0
            iload 1 /* n */
            iconst_0
         7: .line 917
            iload 1 /* n */
            iload 2 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 3 /* g */
        start local 3 // int g
         8: sipush 8192
            if_icmpgt 10
         9: .line 918
            sipush 8192
            goto 11
      StackMap locals: double[] int int int
      StackMap stack: new 5 new 5 null double[] double[] int int int
        10: iload 3 /* g */
        11: .line 915
      StackMap locals: double[] int int int
      StackMap stack: new 5 new 5 null double[] double[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJDouble$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[D[DIIII)V
        12: .line 918
            invokevirtual java.util.ArraysParallelSortHelpers$FJDouble$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 3 // int g
        end local 2 // int p
        13: .line 919
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int n
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0     a  [D
            1   14     1     n  I
            3    4     2     p  I
            5   13     2     p  I
            8   13     3     g  I
    MethodParameters:
      Name  Flags
      a     

  public static void parallelSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=3
        start local 0 // double[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 957
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 958
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            isub
            istore 3 /* n */
        start local 3 // int n
         2: .line 959
            iload 3 /* n */
            sipush 8192
            if_icmple 5
         3: .line 960
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 4 /* p */
        start local 4 // int p
         4: iconst_1
            if_icmpne 6
        end local 4 // int p
         5: .line 961
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iconst_1
            isub
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.DualPivotQuicksort.sort:([DII[DII)V
            goto 14
        start local 4 // int p
         6: .line 963
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJDouble$Sorter
            dup
         7: .line 964
            aconst_null
            aload 0 /* a */
            iload 3 /* n */
            newarray 7
            iload 1 /* fromIndex */
            iload 3 /* n */
            iconst_0
         8: .line 965
            iload 3 /* n */
            iload 4 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 5 /* g */
        start local 5 // int g
         9: sipush 8192
            if_icmpgt 11
        10: .line 966
            sipush 8192
            goto 12
      StackMap locals: double[] int int int int int
      StackMap stack: new 6 new 6 null double[] double[] int int int
        11: iload 5 /* g */
        12: .line 963
      StackMap locals: double[] int int int int int
      StackMap stack: new 6 new 6 null double[] double[] int int int int
            invokespecial java.util.ArraysParallelSortHelpers$FJDouble$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[D[DIIII)V
        13: .line 966
            invokevirtual java.util.ArraysParallelSortHelpers$FJDouble$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 5 // int g
        end local 4 // int p
        14: .line 967
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int n
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0          a  [D
            0   15     1  fromIndex  I
            0   15     2    toIndex  I
            2   15     3          n  I
            4    5     4          p  I
            6   14     4          p  I
            9   14     5          g  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static <T extends java.lang.Comparable<? super T>> void parallelSort();
    descriptor: ([Ljava/lang/Comparable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=4, args_size=1
        start local 0 // java.lang.Comparable[] a
         0: .line 1005
            aload 0 /* a */
            arraylength
            istore 1 /* n */
        start local 1 // int n
         1: .line 1006
            iload 1 /* n */
            sipush 8192
            if_icmple 4
         2: .line 1007
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 2 /* p */
        start local 2 // int p
         3: iconst_1
            if_icmpne 5
        end local 2 // int p
         4: .line 1008
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iconst_0
            iload 1 /* n */
            getstatic java.util.Arrays$NaturalOrder.INSTANCE:Ljava/util/Arrays$NaturalOrder;
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.TimSort.sort:([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V
            goto 15
        start local 2 // int p
         5: .line 1010
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJObject$Sorter
            dup
         6: .line 1011
            aconst_null
            aload 0 /* a */
         7: .line 1012
            aload 0 /* a */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            iload 1 /* n */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Comparable[]
         8: .line 1013
            iconst_0
            iload 1 /* n */
            iconst_0
            iload 1 /* n */
            iload 2 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 3 /* g */
        start local 3 // int g
         9: sipush 8192
            if_icmpgt 11
        10: .line 1014
            sipush 8192
            goto 12
      StackMap locals: java.lang.Comparable[] int int int
      StackMap stack: new 5 new 5 null java.lang.Comparable[] java.lang.Comparable[] int int int
        11: iload 3 /* g */
      StackMap locals: java.lang.Comparable[] int int int
      StackMap stack: new 5 new 5 null java.lang.Comparable[] java.lang.Comparable[] int int int int
        12: getstatic java.util.Arrays$NaturalOrder.INSTANCE:Ljava/util/Arrays$NaturalOrder;
        13: .line 1010
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/util/Comparator;)V
        14: .line 1014
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 3 // int g
        end local 2 // int p
        15: .line 1015
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int n
        end local 0 // java.lang.Comparable[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0     a  [Ljava/lang/Comparable;
            1   16     1     n  I
            3    4     2     p  I
            5   15     2     p  I
            9   15     3     g  I
    Signature: <T::Ljava/lang/Comparable<-TT;>;>([TT;)V
    MethodParameters:
      Name  Flags
      a     

  public static <T extends java.lang.Comparable<? super T>> void parallelSort(T[], int, );
    descriptor: ([Ljava/lang/Comparable;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=6, args_size=3
        start local 0 // java.lang.Comparable[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 1063
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 1064
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            isub
            istore 3 /* n */
        start local 3 // int n
         2: .line 1065
            iload 3 /* n */
            sipush 8192
            if_icmple 5
         3: .line 1066
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 4 /* p */
        start local 4 // int p
         4: iconst_1
            if_icmpne 6
        end local 4 // int p
         5: .line 1067
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            getstatic java.util.Arrays$NaturalOrder.INSTANCE:Ljava/util/Arrays$NaturalOrder;
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.TimSort.sort:([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V
            goto 16
        start local 4 // int p
         6: .line 1069
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJObject$Sorter
            dup
         7: .line 1070
            aconst_null
            aload 0 /* a */
         8: .line 1071
            aload 0 /* a */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            iload 3 /* n */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Comparable[]
         9: .line 1072
            iload 1 /* fromIndex */
            iload 3 /* n */
            iconst_0
            iload 3 /* n */
            iload 4 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 5 /* g */
        start local 5 // int g
        10: sipush 8192
            if_icmpgt 12
        11: .line 1073
            sipush 8192
            goto 13
      StackMap locals: java.lang.Comparable[] int int int int int
      StackMap stack: new 6 new 6 null java.lang.Comparable[] java.lang.Comparable[] int int int
        12: iload 5 /* g */
      StackMap locals: java.lang.Comparable[] int int int int int
      StackMap stack: new 6 new 6 null java.lang.Comparable[] java.lang.Comparable[] int int int int
        13: getstatic java.util.Arrays$NaturalOrder.INSTANCE:Ljava/util/Arrays$NaturalOrder;
        14: .line 1069
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/util/Comparator;)V
        15: .line 1073
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 5 // int g
        end local 4 // int p
        16: .line 1074
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int n
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // java.lang.Comparable[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0          a  [Ljava/lang/Comparable;
            0   17     1  fromIndex  I
            0   17     2    toIndex  I
            2   17     3          n  I
            4    5     4          p  I
            6   16     4          p  I
           10   16     5          g  I
    Signature: <T::Ljava/lang/Comparable<-TT;>;>([TT;II)V
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  public static <T> void parallelSort(T[], java.util.Comparator<? super T>);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=5, args_size=2
        start local 0 // java.lang.Object[] a
        start local 1 // java.util.Comparator cmp
         0: .line 1111
            aload 1 /* cmp */
            ifnonnull 2
         1: .line 1112
            getstatic java.util.Arrays$NaturalOrder.INSTANCE:Ljava/util/Arrays$NaturalOrder;
            astore 1 /* cmp */
         2: .line 1113
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            arraylength
            istore 2 /* n */
        start local 2 // int n
         3: .line 1114
            iload 2 /* n */
            sipush 8192
            if_icmple 6
         4: .line 1115
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 3 /* p */
        start local 3 // int p
         5: iconst_1
            if_icmpne 7
        end local 3 // int p
         6: .line 1116
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iconst_0
            iload 2 /* n */
            aload 1 /* cmp */
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.TimSort.sort:([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V
            goto 17
        start local 3 // int p
         7: .line 1118
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJObject$Sorter
            dup
         8: .line 1119
            aconst_null
            aload 0 /* a */
         9: .line 1120
            aload 0 /* a */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            iload 2 /* n */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Object[]
        10: .line 1121
            iconst_0
            iload 2 /* n */
            iconst_0
            iload 2 /* n */
            iload 3 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 4 /* g */
        start local 4 // int g
        11: sipush 8192
            if_icmpgt 13
        12: .line 1122
            sipush 8192
            goto 14
      StackMap locals: java.lang.Object[] java.util.Comparator int int int
      StackMap stack: new 7 new 7 null java.lang.Object[] java.lang.Object[] int int int
        13: iload 4 /* g */
      StackMap locals: java.lang.Object[] java.util.Comparator int int int
      StackMap stack: new 7 new 7 null java.lang.Object[] java.lang.Object[] int int int int
        14: aload 1 /* cmp */
        15: .line 1118
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/util/Comparator;)V
        16: .line 1122
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 4 // int g
        end local 3 // int p
        17: .line 1123
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int n
        end local 1 // java.util.Comparator cmp
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0     a  [Ljava/lang/Object;
            0   18     1   cmp  Ljava/util/Comparator<-TT;>;
            3   18     2     n  I
            5    6     3     p  I
            7   17     3     p  I
           11   17     4     g  I
    Signature: <T:Ljava/lang/Object;>([TT;Ljava/util/Comparator<-TT;>;)V
    MethodParameters:
      Name  Flags
      a     
      cmp   

  public static <T> void parallelSort(T[], int, int, java.util.Comparator<? super T>);
    descriptor: ([Ljava/lang/Object;IILjava/util/Comparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=7, args_size=4
        start local 0 // java.lang.Object[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
        start local 3 // java.util.Comparator cmp
         0: .line 1171
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 1172
            aload 3 /* cmp */
            ifnonnull 3
         2: .line 1173
            getstatic java.util.Arrays$NaturalOrder.INSTANCE:Ljava/util/Arrays$NaturalOrder;
            astore 3 /* cmp */
         3: .line 1174
      StackMap locals:
      StackMap stack:
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            isub
            istore 4 /* n */
        start local 4 // int n
         4: .line 1175
            iload 4 /* n */
            sipush 8192
            if_icmple 7
         5: .line 1176
            invokestatic java.util.concurrent.ForkJoinPool.getCommonPoolParallelism:()I
            dup
            istore 5 /* p */
        start local 5 // int p
         6: iconst_1
            if_icmpne 8
        end local 5 // int p
         7: .line 1177
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            aload 3 /* cmp */
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.TimSort.sort:([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V
            goto 18
        start local 5 // int p
         8: .line 1179
      StackMap locals: int
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJObject$Sorter
            dup
         9: .line 1180
            aconst_null
            aload 0 /* a */
        10: .line 1181
            aload 0 /* a */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            iload 4 /* n */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Object[]
        11: .line 1182
            iload 1 /* fromIndex */
            iload 4 /* n */
            iconst_0
            iload 4 /* n */
            iload 5 /* p */
            iconst_2
            ishl
            idiv
            dup
            istore 6 /* g */
        start local 6 // int g
        12: sipush 8192
            if_icmpgt 14
        13: .line 1183
            sipush 8192
            goto 15
      StackMap locals: java.lang.Object[] int int java.util.Comparator int int int
      StackMap stack: new 8 new 8 null java.lang.Object[] java.lang.Object[] int int int
        14: iload 6 /* g */
      StackMap locals: java.lang.Object[] int int java.util.Comparator int int int
      StackMap stack: new 8 new 8 null java.lang.Object[] java.lang.Object[] int int int int
        15: aload 3 /* cmp */
        16: .line 1179
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Sorter.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIILjava/util/Comparator;)V
        17: .line 1183
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Sorter.invoke:()Ljava/lang/Object;
            pop
        end local 6 // int g
        end local 5 // int p
        18: .line 1184
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int n
        end local 3 // java.util.Comparator cmp
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0          a  [Ljava/lang/Object;
            0   19     1  fromIndex  I
            0   19     2    toIndex  I
            0   19     3        cmp  Ljava/util/Comparator<-TT;>;
            4   19     4          n  I
            6    7     5          p  I
            8   18     5          p  I
           12   18     6          g  I
    Signature: <T:Ljava/lang/Object;>([TT;IILjava/util/Comparator<-TT;>;)V
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    
      cmp        

  public static void sort(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // java.lang.Object[] a
         0: .line 1246
            getstatic java.util.Arrays$LegacyMergeSort.userRequested:Z
            ifeq 2
         1: .line 1247
            aload 0 /* a */
            invokestatic java.util.Arrays.legacyMergeSort:([Ljava/lang/Object;)V
            goto 3
         2: .line 1249
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.ComparableTimSort.sort:([Ljava/lang/Object;II[Ljava/lang/Object;II)V
         3: .line 1250
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     a  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      a     

  private static void legacyMergeSort(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.Object[] a
         0: .line 1254
            aload 0 /* a */
            invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 1 /* aux */
        start local 1 // java.lang.Object[] aux
         1: .line 1255
            aload 1 /* aux */
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_0
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;III)V
         2: .line 1256
            return
        end local 1 // java.lang.Object[] aux
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  [Ljava/lang/Object;
            1    3     1   aux  [Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      a     

  public static void sort(java.lang.Object[], int, int);
    descriptor: ([Ljava/lang/Object;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.lang.Object[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 1311
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 1312
            getstatic java.util.Arrays$LegacyMergeSort.userRequested:Z
            ifeq 3
         2: .line 1313
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.legacyMergeSort:([Ljava/lang/Object;II)V
            goto 4
         3: .line 1315
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.ComparableTimSort.sort:([Ljava/lang/Object;II[Ljava/lang/Object;II)V
         4: .line 1316
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0          a  [Ljava/lang/Object;
            0    5     1  fromIndex  I
            0    5     2    toIndex  I
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  private static void legacyMergeSort(java.lang.Object[], int, int);
    descriptor: ([Ljava/lang/Object;II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Object[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
         0: .line 1321
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            astore 3 /* aux */
        start local 3 // java.lang.Object[] aux
         1: .line 1322
            aload 3 /* aux */
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            ineg
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;III)V
         2: .line 1323
            return
        end local 3 // java.lang.Object[] aux
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0          a  [Ljava/lang/Object;
            0    3     1  fromIndex  I
            0    3     2    toIndex  I
            1    3     3        aux  [Ljava/lang/Object;
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    

  private static void mergeSort(java.lang.Object[], java.lang.Object[], int, int, int);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;III)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // java.lang.Object[] src
        start local 1 // java.lang.Object[] dest
        start local 2 // int low
        start local 3 // int high
        start local 4 // int off
         0: .line 1346
            iload 3 /* high */
            iload 2 /* low */
            isub
            istore 5 /* length */
        start local 5 // int length
         1: .line 1349
            iload 5 /* length */
            bipush 7
            if_icmpge 14
         2: .line 1350
            iload 2 /* low */
            istore 6 /* i */
        start local 6 // int i
         3: goto 12
         4: .line 1351
      StackMap locals: int int
      StackMap stack:
            iload 6 /* i */
            istore 7 /* j */
        start local 7 // int j
         5: goto 8
         6: .line 1353
      StackMap locals: int
      StackMap stack:
            aload 1 /* dest */
            iload 7 /* j */
            iload 7 /* j */
            iconst_1
            isub
            invokestatic java.util.Arrays.swap:([Ljava/lang/Object;II)V
         7: .line 1352
            iinc 7 /* j */ -1
         8: .line 1351
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            iload 2 /* low */
            if_icmple 11
         9: .line 1352
            aload 1 /* dest */
            iload 7 /* j */
            iconst_1
            isub
            aaload
            checkcast java.lang.Comparable
            aload 1 /* dest */
            iload 7 /* j */
            aaload
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
        10: .line 1351
            ifgt 6
        end local 7 // int j
        11: .line 1350
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 6 /* i */
            iload 3 /* high */
            if_icmplt 4
        end local 6 // int i
        13: .line 1354
            return
        14: .line 1358
      StackMap locals:
      StackMap stack:
            iload 2 /* low */
            istore 6 /* destLow */
        start local 6 // int destLow
        15: .line 1359
            iload 3 /* high */
            istore 7 /* destHigh */
        start local 7 // int destHigh
        16: .line 1360
            iload 2 /* low */
            iload 4 /* off */
            iadd
            istore 2 /* low */
        17: .line 1361
            iload 3 /* high */
            iload 4 /* off */
            iadd
            istore 3 /* high */
        18: .line 1362
            iload 2 /* low */
            iload 3 /* high */
            iadd
            iconst_1
            iushr
            istore 8 /* mid */
        start local 8 // int mid
        19: .line 1363
            aload 1 /* dest */
            aload 0 /* src */
            iload 2 /* low */
            iload 8 /* mid */
            iload 4 /* off */
            ineg
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;III)V
        20: .line 1364
            aload 1 /* dest */
            aload 0 /* src */
            iload 8 /* mid */
            iload 3 /* high */
            iload 4 /* off */
            ineg
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;III)V
        21: .line 1368
            aload 0 /* src */
            iload 8 /* mid */
            iconst_1
            isub
            aaload
            checkcast java.lang.Comparable
            aload 0 /* src */
            iload 8 /* mid */
            aaload
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ifgt 24
        22: .line 1369
            aload 0 /* src */
            iload 2 /* low */
            aload 1 /* dest */
            iload 6 /* destLow */
            iload 5 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        23: .line 1370
            return
        24: .line 1374
      StackMap locals: int int int
      StackMap stack:
            iload 6 /* destLow */
            istore 9 /* i */
        start local 9 // int i
        25: iload 2 /* low */
            istore 10 /* p */
        start local 10 // int p
        26: iload 8 /* mid */
            istore 11 /* q */
        start local 11 // int q
        27: goto 32
        28: .line 1375
      StackMap locals: int int int
      StackMap stack:
            iload 11 /* q */
            iload 3 /* high */
            if_icmpge 29
            iload 10 /* p */
            iload 8 /* mid */
            if_icmpge 30
            aload 0 /* src */
            iload 10 /* p */
            aaload
            checkcast java.lang.Comparable
            aload 0 /* src */
            iload 11 /* q */
            aaload
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ifgt 30
        29: .line 1376
      StackMap locals:
      StackMap stack:
            aload 1 /* dest */
            iload 9 /* i */
            aload 0 /* src */
            iload 10 /* p */
            iinc 10 /* p */ 1
            aaload
            aastore
            goto 31
        30: .line 1378
      StackMap locals:
      StackMap stack:
            aload 1 /* dest */
            iload 9 /* i */
            aload 0 /* src */
            iload 11 /* q */
            iinc 11 /* q */ 1
            aaload
            aastore
        31: .line 1374
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 9 /* i */
            iload 7 /* destHigh */
            if_icmplt 28
        end local 11 // int q
        end local 10 // int p
        end local 9 // int i
        33: .line 1380
            return
        end local 8 // int mid
        end local 7 // int destHigh
        end local 6 // int destLow
        end local 5 // int length
        end local 4 // int off
        end local 3 // int high
        end local 2 // int low
        end local 1 // java.lang.Object[] dest
        end local 0 // java.lang.Object[] src
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   34     0       src  [Ljava/lang/Object;
            0   34     1      dest  [Ljava/lang/Object;
            0   34     2       low  I
            0   34     3      high  I
            0   34     4       off  I
            1   34     5    length  I
            3   13     6         i  I
            5   11     7         j  I
           15   34     6   destLow  I
           16   34     7  destHigh  I
           19   34     8       mid  I
           25   33     9         i  I
           26   33    10         p  I
           27   33    11         q  I
    MethodParameters:
      Name  Flags
      src   
      dest  
      low   
      high  
      off   

  private static void swap(java.lang.Object[], int, int);
    descriptor: ([Ljava/lang/Object;II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.Object[] x
        start local 1 // int a
        start local 2 // int b
         0: .line 1386
            aload 0 /* x */
            iload 1 /* a */
            aaload
            astore 3 /* t */
        start local 3 // java.lang.Object t
         1: .line 1387
            aload 0 /* x */
            iload 1 /* a */
            aload 0 /* x */
            iload 2 /* b */
            aaload
            aastore
         2: .line 1388
            aload 0 /* x */
            iload 2 /* b */
            aload 3 /* t */
            aastore
         3: .line 1389
            return
        end local 3 // java.lang.Object t
        end local 2 // int b
        end local 1 // int a
        end local 0 // java.lang.Object[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     x  [Ljava/lang/Object;
            0    4     1     a  I
            0    4     2     b  I
            1    4     3     t  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      x     
      a     
      b     

  public static <T> void sort(T[], java.util.Comparator<? super T>);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.lang.Object[] a
        start local 1 // java.util.Comparator c
         0: .line 1435
            aload 1 /* c */
            ifnonnull 3
         1: .line 1436
            aload 0 /* a */
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
         2: .line 1437
            goto 6
         3: .line 1438
      StackMap locals:
      StackMap stack:
            getstatic java.util.Arrays$LegacyMergeSort.userRequested:Z
            ifeq 5
         4: .line 1439
            aload 0 /* a */
            aload 1 /* c */
            invokestatic java.util.Arrays.legacyMergeSort:([Ljava/lang/Object;Ljava/util/Comparator;)V
            goto 6
         5: .line 1441
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            aload 1 /* c */
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.TimSort.sort:([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V
         6: .line 1443
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.Comparator c
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     a  [Ljava/lang/Object;
            0    7     1     c  Ljava/util/Comparator<-TT;>;
    Signature: <T:Ljava/lang/Object;>([TT;Ljava/util/Comparator<-TT;>;)V
    MethodParameters:
      Name  Flags
      a     
      c     

  private static <T> void legacyMergeSort(T[], java.util.Comparator<? super T>);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // java.lang.Object[] a
        start local 1 // java.util.Comparator c
         0: .line 1447
            aload 0 /* a */
            invokevirtual java.lang.Object[].clone:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 2 /* aux */
        start local 2 // java.lang.Object[] aux
         1: .line 1448
            aload 1 /* c */
            ifnonnull 3
         2: .line 1449
            aload 2 /* aux */
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_0
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;III)V
            goto 4
         3: .line 1451
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 2 /* aux */
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            iconst_0
            aload 1 /* c */
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)V
         4: .line 1452
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object[] aux
        end local 1 // java.util.Comparator c
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     a  [Ljava/lang/Object;
            0    5     1     c  Ljava/util/Comparator<-TT;>;
            1    5     2   aux  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>([TT;Ljava/util/Comparator<-TT;>;)V
    MethodParameters:
      Name  Flags
      a     
      c     

  public static <T> void sort(T[], int, int, java.util.Comparator<? super T>);
    descriptor: ([Ljava/lang/Object;IILjava/util/Comparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // java.lang.Object[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
        start local 3 // java.util.Comparator c
         0: .line 1508
            aload 3 /* c */
            ifnonnull 3
         1: .line 1509
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;II)V
         2: .line 1510
            goto 7
         3: .line 1511
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         4: .line 1512
            getstatic java.util.Arrays$LegacyMergeSort.userRequested:Z
            ifeq 6
         5: .line 1513
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            aload 3 /* c */
            invokestatic java.util.Arrays.legacyMergeSort:([Ljava/lang/Object;IILjava/util/Comparator;)V
            goto 7
         6: .line 1515
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            aload 3 /* c */
            aconst_null
            iconst_0
            iconst_0
            invokestatic java.util.TimSort.sort:([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V
         7: .line 1517
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.Comparator c
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0          a  [Ljava/lang/Object;
            0    8     1  fromIndex  I
            0    8     2    toIndex  I
            0    8     3          c  Ljava/util/Comparator<-TT;>;
    Signature: <T:Ljava/lang/Object;>([TT;IILjava/util/Comparator<-TT;>;)V
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    
      c          

  private static <T> void legacyMergeSort(T[], int, int, java.util.Comparator<? super T>);
    descriptor: ([Ljava/lang/Object;IILjava/util/Comparator;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // java.lang.Object[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
        start local 3 // java.util.Comparator c
         0: .line 1522
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            astore 4 /* aux */
        start local 4 // java.lang.Object[] aux
         1: .line 1523
            aload 3 /* c */
            ifnonnull 3
         2: .line 1524
            aload 4 /* aux */
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            ineg
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;III)V
            goto 4
         3: .line 1526
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 4 /* aux */
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            iload 1 /* fromIndex */
            ineg
            aload 3 /* c */
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)V
         4: .line 1527
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object[] aux
        end local 3 // java.util.Comparator c
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // java.lang.Object[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0          a  [Ljava/lang/Object;
            0    5     1  fromIndex  I
            0    5     2    toIndex  I
            0    5     3          c  Ljava/util/Comparator<-TT;>;
            1    5     4        aux  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>([TT;IILjava/util/Comparator<-TT;>;)V
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    
      c          

  private static void mergeSort(java.lang.Object[], java.lang.Object[], int, int, int, java.util.Comparator);
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=13, args_size=6
        start local 0 // java.lang.Object[] src
        start local 1 // java.lang.Object[] dest
        start local 2 // int low
        start local 3 // int high
        start local 4 // int off
        start local 5 // java.util.Comparator c
         0: .line 1542
            iload 3 /* high */
            iload 2 /* low */
            isub
            istore 6 /* length */
        start local 6 // int length
         1: .line 1545
            iload 6 /* length */
            bipush 7
            if_icmpge 12
         2: .line 1546
            iload 2 /* low */
            istore 7 /* i */
        start local 7 // int i
         3: goto 10
         4: .line 1547
      StackMap locals: int int
      StackMap stack:
            iload 7 /* i */
            istore 8 /* j */
        start local 8 // int j
         5: goto 8
         6: .line 1548
      StackMap locals: int
      StackMap stack:
            aload 1 /* dest */
            iload 8 /* j */
            iload 8 /* j */
            iconst_1
            isub
            invokestatic java.util.Arrays.swap:([Ljava/lang/Object;II)V
         7: .line 1547
            iinc 8 /* j */ -1
      StackMap locals:
      StackMap stack:
         8: iload 8 /* j */
            iload 2 /* low */
            if_icmple 9
            aload 5 /* c */
            aload 1 /* dest */
            iload 8 /* j */
            iconst_1
            isub
            aaload
            aload 1 /* dest */
            iload 8 /* j */
            aaload
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifgt 6
        end local 8 // int j
         9: .line 1546
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 7 /* i */
            iload 3 /* high */
            if_icmplt 4
        end local 7 // int i
        11: .line 1549
            return
        12: .line 1553
      StackMap locals:
      StackMap stack:
            iload 2 /* low */
            istore 7 /* destLow */
        start local 7 // int destLow
        13: .line 1554
            iload 3 /* high */
            istore 8 /* destHigh */
        start local 8 // int destHigh
        14: .line 1555
            iload 2 /* low */
            iload 4 /* off */
            iadd
            istore 2 /* low */
        15: .line 1556
            iload 3 /* high */
            iload 4 /* off */
            iadd
            istore 3 /* high */
        16: .line 1557
            iload 2 /* low */
            iload 3 /* high */
            iadd
            iconst_1
            iushr
            istore 9 /* mid */
        start local 9 // int mid
        17: .line 1558
            aload 1 /* dest */
            aload 0 /* src */
            iload 2 /* low */
            iload 9 /* mid */
            iload 4 /* off */
            ineg
            aload 5 /* c */
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)V
        18: .line 1559
            aload 1 /* dest */
            aload 0 /* src */
            iload 9 /* mid */
            iload 3 /* high */
            iload 4 /* off */
            ineg
            aload 5 /* c */
            invokestatic java.util.Arrays.mergeSort:([Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)V
        19: .line 1563
            aload 5 /* c */
            aload 0 /* src */
            iload 9 /* mid */
            iconst_1
            isub
            aaload
            aload 0 /* src */
            iload 9 /* mid */
            aaload
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifgt 22
        20: .line 1564
            aload 0 /* src */
            iload 2 /* low */
            aload 1 /* dest */
            iload 7 /* destLow */
            iload 6 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 1565
            return
        22: .line 1569
      StackMap locals: int int int
      StackMap stack:
            iload 7 /* destLow */
            istore 10 /* i */
        start local 10 // int i
        23: iload 2 /* low */
            istore 11 /* p */
        start local 11 // int p
        24: iload 9 /* mid */
            istore 12 /* q */
        start local 12 // int q
        25: goto 30
        26: .line 1570
      StackMap locals: int int int
      StackMap stack:
            iload 12 /* q */
            iload 3 /* high */
            if_icmpge 27
            iload 11 /* p */
            iload 9 /* mid */
            if_icmpge 28
            aload 5 /* c */
            aload 0 /* src */
            iload 11 /* p */
            aaload
            aload 0 /* src */
            iload 12 /* q */
            aaload
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifgt 28
        27: .line 1571
      StackMap locals:
      StackMap stack:
            aload 1 /* dest */
            iload 10 /* i */
            aload 0 /* src */
            iload 11 /* p */
            iinc 11 /* p */ 1
            aaload
            aastore
            goto 29
        28: .line 1573
      StackMap locals:
      StackMap stack:
            aload 1 /* dest */
            iload 10 /* i */
            aload 0 /* src */
            iload 12 /* q */
            iinc 12 /* q */ 1
            aaload
            aastore
        29: .line 1569
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 10 /* i */
            iload 8 /* destHigh */
            if_icmplt 26
        end local 12 // int q
        end local 11 // int p
        end local 10 // int i
        31: .line 1575
            return
        end local 9 // int mid
        end local 8 // int destHigh
        end local 7 // int destLow
        end local 6 // int length
        end local 5 // java.util.Comparator c
        end local 4 // int off
        end local 3 // int high
        end local 2 // int low
        end local 1 // java.lang.Object[] dest
        end local 0 // java.lang.Object[] src
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   32     0       src  [Ljava/lang/Object;
            0   32     1      dest  [Ljava/lang/Object;
            0   32     2       low  I
            0   32     3      high  I
            0   32     4       off  I
            0   32     5         c  Ljava/util/Comparator;
            1   32     6    length  I
            3   11     7         i  I
            5    9     8         j  I
           13   32     7   destLow  I
           14   32     8  destHigh  I
           17   32     9       mid  I
           23   31    10         i  I
           24   31    11         p  I
           25   31    12         q  I
    MethodParameters:
      Name  Flags
      src   
      dest  
      low   
      high  
      off   
      c     

  public static <T> void parallelPrefix(T[], java.util.function.BinaryOperator<T>);
    descriptor: ([Ljava/lang/Object;Ljava/util/function/BinaryOperator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.lang.Object[] array
        start local 1 // java.util.function.BinaryOperator op
         0: .line 1595
            aload 1 /* op */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1596
            aload 0 /* array */
            arraylength
            ifle 6
         2: .line 1597
            new java.util.ArrayPrefixHelpers$CumulateTask
            dup
         3: .line 1598
            aconst_null
            aload 1 /* op */
            aload 0 /* array */
            iconst_0
            aload 0 /* array */
            arraylength
         4: .line 1597
            invokespecial java.util.ArrayPrefixHelpers$CumulateTask.<init>:(Ljava/util/ArrayPrefixHelpers$CumulateTask;Ljava/util/function/BinaryOperator;[Ljava/lang/Object;II)V
         5: .line 1598
            invokevirtual java.util.ArrayPrefixHelpers$CumulateTask.invoke:()Ljava/lang/Object;
            pop
         6: .line 1599
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.function.BinaryOperator op
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  array  [Ljava/lang/Object;
            0    7     1     op  Ljava/util/function/BinaryOperator<TT;>;
    Signature: <T:Ljava/lang/Object;>([TT;Ljava/util/function/BinaryOperator<TT;>;)V
    MethodParameters:
       Name  Flags
      array  
      op     

  public static <T> void parallelPrefix(T[], int, int, java.util.function.BinaryOperator<T>);
    descriptor: ([Ljava/lang/Object;IILjava/util/function/BinaryOperator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // java.lang.Object[] array
        start local 1 // int fromIndex
        start local 2 // int toIndex
        start local 3 // java.util.function.BinaryOperator op
         0: .line 1619
            aload 3 /* op */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1620
            aload 0 /* array */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         2: .line 1621
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            if_icmpge 7
         3: .line 1622
            new java.util.ArrayPrefixHelpers$CumulateTask
            dup
         4: .line 1623
            aconst_null
            aload 3 /* op */
            aload 0 /* array */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
         5: .line 1622
            invokespecial java.util.ArrayPrefixHelpers$CumulateTask.<init>:(Ljava/util/ArrayPrefixHelpers$CumulateTask;Ljava/util/function/BinaryOperator;[Ljava/lang/Object;II)V
         6: .line 1623
            invokevirtual java.util.ArrayPrefixHelpers$CumulateTask.invoke:()Ljava/lang/Object;
            pop
         7: .line 1624
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.function.BinaryOperator op
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0      array  [Ljava/lang/Object;
            0    8     1  fromIndex  I
            0    8     2    toIndex  I
            0    8     3         op  Ljava/util/function/BinaryOperator<TT;>;
    Signature: <T:Ljava/lang/Object;>([TT;IILjava/util/function/BinaryOperator<TT;>;)V
    MethodParameters:
           Name  Flags
      array      
      fromIndex  
      toIndex    
      op         

  public static void parallelPrefix(long[], java.util.function.LongBinaryOperator);
    descriptor: ([JLjava/util/function/LongBinaryOperator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // long[] array
        start local 1 // java.util.function.LongBinaryOperator op
         0: .line 1641
            aload 1 /* op */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1642
            aload 0 /* array */
            arraylength
            ifle 6
         2: .line 1643
            new java.util.ArrayPrefixHelpers$LongCumulateTask
            dup
         3: .line 1644
            aconst_null
            aload 1 /* op */
            aload 0 /* array */
            iconst_0
            aload 0 /* array */
            arraylength
         4: .line 1643
            invokespecial java.util.ArrayPrefixHelpers$LongCumulateTask.<init>:(Ljava/util/ArrayPrefixHelpers$LongCumulateTask;Ljava/util/function/LongBinaryOperator;[JII)V
         5: .line 1644
            invokevirtual java.util.ArrayPrefixHelpers$LongCumulateTask.invoke:()Ljava/lang/Object;
            pop
         6: .line 1645
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.function.LongBinaryOperator op
        end local 0 // long[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  array  [J
            0    7     1     op  Ljava/util/function/LongBinaryOperator;
    MethodParameters:
       Name  Flags
      array  
      op     

  public static void parallelPrefix(long[], int, int, java.util.function.LongBinaryOperator);
    descriptor: ([JIILjava/util/function/LongBinaryOperator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // long[] array
        start local 1 // int fromIndex
        start local 2 // int toIndex
        start local 3 // java.util.function.LongBinaryOperator op
         0: .line 1664
            aload 3 /* op */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1665
            aload 0 /* array */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         2: .line 1666
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            if_icmpge 7
         3: .line 1667
            new java.util.ArrayPrefixHelpers$LongCumulateTask
            dup
         4: .line 1668
            aconst_null
            aload 3 /* op */
            aload 0 /* array */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
         5: .line 1667
            invokespecial java.util.ArrayPrefixHelpers$LongCumulateTask.<init>:(Ljava/util/ArrayPrefixHelpers$LongCumulateTask;Ljava/util/function/LongBinaryOperator;[JII)V
         6: .line 1668
            invokevirtual java.util.ArrayPrefixHelpers$LongCumulateTask.invoke:()Ljava/lang/Object;
            pop
         7: .line 1669
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.function.LongBinaryOperator op
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // long[] array
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0      array  [J
            0    8     1  fromIndex  I
            0    8     2    toIndex  I
            0    8     3         op  Ljava/util/function/LongBinaryOperator;
    MethodParameters:
           Name  Flags
      array      
      fromIndex  
      toIndex    
      op         

  public static void parallelPrefix(double[], java.util.function.DoubleBinaryOperator);
    descriptor: ([DLjava/util/function/DoubleBinaryOperator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // double[] array
        start local 1 // java.util.function.DoubleBinaryOperator op
         0: .line 1689
            aload 1 /* op */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1690
            aload 0 /* array */
            arraylength
            ifle 6
         2: .line 1691
            new java.util.ArrayPrefixHelpers$DoubleCumulateTask
            dup
         3: .line 1692
            aconst_null
            aload 1 /* op */
            aload 0 /* array */
            iconst_0
            aload 0 /* array */
            arraylength
         4: .line 1691
            invokespecial java.util.ArrayPrefixHelpers$DoubleCumulateTask.<init>:(Ljava/util/ArrayPrefixHelpers$DoubleCumulateTask;Ljava/util/function/DoubleBinaryOperator;[DII)V
         5: .line 1692
            invokevirtual java.util.ArrayPrefixHelpers$DoubleCumulateTask.invoke:()Ljava/lang/Object;
            pop
         6: .line 1693
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.function.DoubleBinaryOperator op
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  array  [D
            0    7     1     op  Ljava/util/function/DoubleBinaryOperator;
    MethodParameters:
       Name  Flags
      array  
      op     

  public static void parallelPrefix(double[], int, int, java.util.function.DoubleBinaryOperator);
    descriptor: ([DIILjava/util/function/DoubleBinaryOperator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // double[] array
        start local 1 // int fromIndex
        start local 2 // int toIndex
        start local 3 // java.util.function.DoubleBinaryOperator op
         0: .line 1712
            aload 3 /* op */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1713
            aload 0 /* array */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         2: .line 1714
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            if_icmpge 7
         3: .line 1715
            new java.util.ArrayPrefixHelpers$DoubleCumulateTask
            dup
         4: .line 1716
            aconst_null
            aload 3 /* op */
            aload 0 /* array */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
         5: .line 1715
            invokespecial java.util.ArrayPrefixHelpers$DoubleCumulateTask.<init>:(Ljava/util/ArrayPrefixHelpers$DoubleCumulateTask;Ljava/util/function/DoubleBinaryOperator;[DII)V
         6: .line 1716
            invokevirtual java.util.ArrayPrefixHelpers$DoubleCumulateTask.invoke:()Ljava/lang/Object;
            pop
         7: .line 1717
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.function.DoubleBinaryOperator op
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0      array  [D
            0    8     1  fromIndex  I
            0    8     2    toIndex  I
            0    8     3         op  Ljava/util/function/DoubleBinaryOperator;
    MethodParameters:
           Name  Flags
      array      
      fromIndex  
      toIndex    
      op         

  public static void parallelPrefix(int[], java.util.function.IntBinaryOperator);
    descriptor: ([ILjava/util/function/IntBinaryOperator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // int[] array
        start local 1 // java.util.function.IntBinaryOperator op
         0: .line 1734
            aload 1 /* op */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1735
            aload 0 /* array */
            arraylength
            ifle 6
         2: .line 1736
            new java.util.ArrayPrefixHelpers$IntCumulateTask
            dup
         3: .line 1737
            aconst_null
            aload 1 /* op */
            aload 0 /* array */
            iconst_0
            aload 0 /* array */
            arraylength
         4: .line 1736
            invokespecial java.util.ArrayPrefixHelpers$IntCumulateTask.<init>:(Ljava/util/ArrayPrefixHelpers$IntCumulateTask;Ljava/util/function/IntBinaryOperator;[III)V
         5: .line 1737
            invokevirtual java.util.ArrayPrefixHelpers$IntCumulateTask.invoke:()Ljava/lang/Object;
            pop
         6: .line 1738
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.function.IntBinaryOperator op
        end local 0 // int[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0  array  [I
            0    7     1     op  Ljava/util/function/IntBinaryOperator;
    MethodParameters:
       Name  Flags
      array  
      op     

  public static void parallelPrefix(int[], int, int, java.util.function.IntBinaryOperator);
    descriptor: ([IIILjava/util/function/IntBinaryOperator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // int[] array
        start local 1 // int fromIndex
        start local 2 // int toIndex
        start local 3 // java.util.function.IntBinaryOperator op
         0: .line 1757
            aload 3 /* op */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1758
            aload 0 /* array */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         2: .line 1759
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            if_icmpge 7
         3: .line 1760
            new java.util.ArrayPrefixHelpers$IntCumulateTask
            dup
         4: .line 1761
            aconst_null
            aload 3 /* op */
            aload 0 /* array */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
         5: .line 1760
            invokespecial java.util.ArrayPrefixHelpers$IntCumulateTask.<init>:(Ljava/util/ArrayPrefixHelpers$IntCumulateTask;Ljava/util/function/IntBinaryOperator;[III)V
         6: .line 1761
            invokevirtual java.util.ArrayPrefixHelpers$IntCumulateTask.invoke:()Ljava/lang/Object;
            pop
         7: .line 1762
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.function.IntBinaryOperator op
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // int[] array
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0      array  [I
            0    8     1  fromIndex  I
            0    8     2    toIndex  I
            0    8     3         op  Ljava/util/function/IntBinaryOperator;
    MethodParameters:
           Name  Flags
      array      
      fromIndex  
      toIndex    
      op         

  public static int binarySearch(long[], long);
    descriptor: ([JJ)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // long[] a
        start local 1 // long key
         0: .line 1786
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            lload 1 /* key */
            invokestatic java.util.Arrays.binarySearch0:([JIIJ)I
            ireturn
        end local 1 // long key
        end local 0 // long[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  [J
            0    1     1   key  J
    MethodParameters:
      Name  Flags
      a     
      key   

  public static int binarySearch(long[], int, int, long);
    descriptor: ([JIIJ)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // long[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
        start local 3 // long key
         0: .line 1823
            aload 0 /* a */
            arraylength
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            invokestatic java.util.Arrays.rangeCheck:(III)V
         1: .line 1824
            aload 0 /* a */
            iload 1 /* fromIndex */
            iload 2 /* toIndex */
            lload 3 /* key */
            invokestatic java.util.Arrays.binarySearch0:([JIIJ)I
            ireturn
        end local 3 // long key
        end local 2 // int toIndex
        end local 1 // int fromIndex
        end local 0 // long[] a
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0          a  [J
            0    2     1  fromIndex  I
            0    2     2    toIndex  I
            0    2     3        key  J
    MethodParameters:
           Name  Flags
      a          
      fromIndex  
      toIndex    
      key        

  private static int binarySearch0(long[], int, int, long);
    descriptor: ([JIIJ)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // long[] a
        start local 1 // int fromIndex
        start local 2 // int toIndex
        start local 3 // long key
         0: .line 1830
            iload 1 /* fromIndex */
            istore 5 /* low */
        start local 5 // int low
         1: .line 1831
            iload 2 /* toIndex */
            iconst_1
            isub
            istore 6 /* high */
        start local 6 // int high
         2: .line 1833
            goto 10
         3: .line 1834
      StackMap locals: int int
      StackMap stack:
            iload 5 /* low */
            iload 6 /* high */
            iadd
            iconst_1
            iushr
            istore 7 /* mid */
        start local 7 // int mid
         4: .line 1835
            aload 0 /* a */
            iload 7 /* mid */
            laload
            lstore 8 /* midVal */
        start local 8 // long midVal
         5: .line 1837
            lload 8 /* midVal */
            lload 3 /* key */
            lcmp
            ifge 7
         6: .line 1838
            iload 7 /* mid */
            iconst_1
            iadd
            istore 5 /* low */
            goto 10
         7: .line 1839
      StackMap locals: int long
      StackMap stack:
            lload