final class java.util.ArraysParallelSortHelpers$FJObject$Merger<T> extends java.util.concurrent.CountedCompleter<java.lang.Void>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.util.ArraysParallelSortHelpers$FJObject$Merger
  super_class: java.util.concurrent.CountedCompleter
{
  static final long serialVersionUID;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2446542900576103244

  final T[] a;
    descriptor: [Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Signature: [TT;

  final T[] w;
    descriptor: [Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Signature: [TT;

  final int lbase;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int lsize;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int rbase;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int rsize;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int wbase;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  final int gran;
    descriptor: I
    flags: (0x0010) ACC_FINAL

  java.util.Comparator<? super T> comparator;
    descriptor: Ljava/util/Comparator;
    flags: (0x0000) 
    Signature: Ljava/util/Comparator<-TT;>;

  void <init>(java.util.concurrent.CountedCompleter<?>, T[], T[], int, int, int, int, int, int, java.util.Comparator<? super T>);
    descriptor: (Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIIIILjava/util/Comparator;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=11, args_size=11
        start local 0 // java.util.ArraysParallelSortHelpers$FJObject$Merger this
        start local 1 // java.util.concurrent.CountedCompleter par
        start local 2 // java.lang.Object[] a
        start local 3 // java.lang.Object[] w
        start local 4 // int lbase
        start local 5 // int lsize
        start local 6 // int rbase
        start local 7 // int rsize
        start local 8 // int wbase
        start local 9 // int gran
        start local 10 // java.util.Comparator comparator
         0: .line 159
            aload 0 /* this */
            aload 1 /* par */
            invokespecial java.util.concurrent.CountedCompleter.<init>:(Ljava/util/concurrent/CountedCompleter;)V
         1: .line 160
            aload 0 /* this */
            aload 2 /* a */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Merger.a:[Ljava/lang/Object;
            aload 0 /* this */
            aload 3 /* w */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Merger.w:[Ljava/lang/Object;
         2: .line 161
            aload 0 /* this */
            iload 4 /* lbase */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Merger.lbase:I
            aload 0 /* this */
            iload 5 /* lsize */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Merger.lsize:I
         3: .line 162
            aload 0 /* this */
            iload 6 /* rbase */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Merger.rbase:I
            aload 0 /* this */
            iload 7 /* rsize */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Merger.rsize:I
         4: .line 163
            aload 0 /* this */
            iload 8 /* wbase */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Merger.wbase:I
            aload 0 /* this */
            iload 9 /* gran */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Merger.gran:I
         5: .line 164
            aload 0 /* this */
            aload 10 /* comparator */
            putfield java.util.ArraysParallelSortHelpers$FJObject$Merger.comparator:Ljava/util/Comparator;
         6: .line 165
            return
        end local 10 // java.util.Comparator comparator
        end local 9 // int gran
        end local 8 // int wbase
        end local 7 // int rsize
        end local 6 // int rbase
        end local 5 // int lsize
        end local 4 // int lbase
        end local 3 // java.lang.Object[] w
        end local 2 // java.lang.Object[] a
        end local 1 // java.util.concurrent.CountedCompleter par
        end local 0 // java.util.ArraysParallelSortHelpers$FJObject$Merger this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljava/util/ArraysParallelSortHelpers$FJObject$Merger<TT;>;
            0    7     1         par  Ljava/util/concurrent/CountedCompleter<*>;
            0    7     2           a  [Ljava/lang/Object;
            0    7     3           w  [Ljava/lang/Object;
            0    7     4       lbase  I
            0    7     5       lsize  I
            0    7     6       rbase  I
            0    7     7       rsize  I
            0    7     8       wbase  I
            0    7     9        gran  I
            0    7    10  comparator  Ljava/util/Comparator<-TT;>;
    Signature: (Ljava/util/concurrent/CountedCompleter<*>;[TT;[TT;IIIIIILjava/util/Comparator<-TT;>;)V
    MethodParameters:
            Name  Flags
      par         
      a           
      w           
      lbase       
      lsize       
      rbase       
      rsize       
      wbase       
      gran        
      comparator  

  public final void compute();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=12, locals=15, args_size=1
        start local 0 // java.util.ArraysParallelSortHelpers$FJObject$Merger this
         0: .line 168
            aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Merger.comparator:Ljava/util/Comparator;
            astore 1 /* c */
        start local 1 // java.util.Comparator c
         1: .line 169
            aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Merger.a:[Ljava/lang/Object;
            astore 2 /* a */
        start local 2 // java.lang.Object[] a
         2: aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Merger.w:[Ljava/lang/Object;
            astore 3 /* w */
        start local 3 // java.lang.Object[] w
         3: .line 170
            aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Merger.lbase:I
            istore 4 /* lb */
        start local 4 // int lb
         4: aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Merger.lsize:I
            istore 5 /* ln */
        start local 5 // int ln
         5: aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Merger.rbase:I
            istore 6 /* rb */
        start local 6 // int rb
         6: .line 171
            aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Merger.rsize:I
            istore 7 /* rn */
        start local 7 // int rn
         7: aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Merger.wbase:I
            istore 8 /* k */
        start local 8 // int k
         8: aload 0 /* this */
            getfield java.util.ArraysParallelSortHelpers$FJObject$Merger.gran:I
            istore 9 /* g */
        start local 9 // int g
         9: .line 172
            aload 2 /* a */
            ifnull 11
            aload 3 /* w */
            ifnull 11
            iload 4 /* lb */
            iflt 11
            iload 6 /* rb */
            iflt 11
            iload 8 /* k */
            iflt 11
        10: .line 173
            aload 1 /* c */
            ifnonnull 12
        11: .line 174
      StackMap locals: java.util.ArraysParallelSortHelpers$FJObject$Merger java.util.Comparator java.lang.Object[] java.lang.Object[] int int int int int int
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
        12: .line 176
      StackMap locals:
      StackMap stack:
            iload 5 /* ln */
            iload 7 /* rn */
            if_icmplt 26
        13: .line 177
            iload 5 /* ln */
            iload 9 /* g */
            if_icmpgt 15
        14: .line 178
            goto 47
        15: .line 179
      StackMap locals:
      StackMap stack:
            iload 7 /* rn */
            istore 11 /* rh */
        start local 11 // int rh
        16: .line 180
            aload 2 /* a */
            iload 5 /* ln */
            iconst_1
            iushr
            dup
            istore 10 /* lh */
        start local 10 // int lh
        17: iload 4 /* lb */
            iadd
            aaload
            astore 12 /* split */
        start local 12 // java.lang.Object split
        18: .line 181
            iconst_0
            istore 13 /* lo */
        start local 13 // int lo
        19: goto 24
        20: .line 182
      StackMap locals: java.util.ArraysParallelSortHelpers$FJObject$Merger java.util.Comparator java.lang.Object[] java.lang.Object[] int int int int int int int int java.lang.Object int
      StackMap stack:
            iload 13 /* lo */
            iload 11 /* rh */
            iadd
            iconst_1
            iushr
            istore 14 /* rm */
        start local 14 // int rm
        21: .line 183
            aload 1 /* c */
            aload 12 /* split */
            aload 2 /* a */
            iload 14 /* rm */
            iload 6 /* rb */
            iadd
            aaload
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifgt 23
        22: .line 184
            iload 14 /* rm */
            istore 11 /* rh */
            goto 24
        23: .line 186
      StackMap locals: int
      StackMap stack:
            iload 14 /* rm */
            iconst_1
            iadd
            istore 13 /* lo */
        end local 14 // int rm
        24: .line 181
      StackMap locals:
      StackMap stack:
            iload 13 /* lo */
            iload 11 /* rh */
            if_icmplt 20
        end local 13 // int lo
        end local 12 // java.lang.Object split
        25: .line 188
            goto 38
        end local 11 // int rh
        end local 10 // int lh
        26: .line 190
      StackMap locals: java.util.ArraysParallelSortHelpers$FJObject$Merger java.util.Comparator java.lang.Object[] java.lang.Object[] int int int int int int
      StackMap stack:
            iload 7 /* rn */
            iload 9 /* g */
            if_icmpgt 28
        27: .line 191
            goto 47
        28: .line 192
      StackMap locals:
      StackMap stack:
            iload 5 /* ln */
            istore 10 /* lh */
        start local 10 // int lh
        29: .line 193
            aload 2 /* a */
            iload 7 /* rn */
            iconst_1
            iushr
            dup
            istore 11 /* rh */
        start local 11 // int rh
        30: iload 6 /* rb */
            iadd
            aaload
            astore 12 /* split */
        start local 12 // java.lang.Object split
        31: .line 194
            iconst_0
            istore 13 /* lo */
        start local 13 // int lo
        32: goto 37
        33: .line 195
      StackMap locals: java.util.ArraysParallelSortHelpers$FJObject$Merger java.util.Comparator java.lang.Object[] java.lang.Object[] int int int int int int int int java.lang.Object int
      StackMap stack:
            iload 13 /* lo */
            iload 10 /* lh */
            iadd
            iconst_1
            iushr
            istore 14 /* lm */
        start local 14 // int lm
        34: .line 196
            aload 1 /* c */
            aload 12 /* split */
            aload 2 /* a */
            iload 14 /* lm */
            iload 4 /* lb */
            iadd
            aaload
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifgt 36
        35: .line 197
            iload 14 /* lm */
            istore 10 /* lh */
            goto 37
        36: .line 199
      StackMap locals: int
      StackMap stack:
            iload 14 /* lm */
            iconst_1
            iadd
            istore 13 /* lo */
        end local 14 // int lm
        37: .line 194
      StackMap locals:
      StackMap stack:
            iload 13 /* lo */
            iload 10 /* lh */
            if_icmplt 33
        end local 13 // int lo
        end local 12 // java.lang.Object split
        38: .line 202
      StackMap locals:
      StackMap stack:
            new java.util.ArraysParallelSortHelpers$FJObject$Merger
            dup
            aload 0 /* this */
            aload 2 /* a */
            aload 3 /* w */
            iload 4 /* lb */
            iload 10 /* lh */
            iadd
            iload 5 /* ln */
            iload 10 /* lh */
            isub
        39: .line 203
            iload 6 /* rb */
            iload 11 /* rh */
            iadd
            iload 7 /* rn */
            iload 11 /* rh */
            isub
        40: .line 204
            iload 8 /* k */
            iload 10 /* lh */
            iadd
            iload 11 /* rh */
            iadd
            iload 9 /* g */
            aload 1 /* c */
        41: .line 202
            invokespecial java.util.ArraysParallelSortHelpers$FJObject$Merger.<init>:(Ljava/util/concurrent/CountedCompleter;[Ljava/lang/Object;[Ljava/lang/Object;IIIIIILjava/util/Comparator;)V
            astore 12 /* m */
        start local 12 // java.util.ArraysParallelSortHelpers$FJObject$Merger m
        42: .line 205
            iload 11 /* rh */
            istore 7 /* rn */
        43: .line 206
            iload 10 /* lh */
            istore 5 /* ln */
        44: .line 207
            aload 0 /* this */
            iconst_1
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Merger.addToPendingCount:(I)V
        45: .line 208
            aload 12 /* m */
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Merger.fork:()Ljava/util/concurrent/ForkJoinTask;
            pop
        end local 12 // java.util.ArraysParallelSortHelpers$FJObject$Merger m
        end local 11 // int rh
        end local 10 // int lh
        46: .line 175
            goto 12
        47: .line 211
      StackMap locals:
      StackMap stack:
            iload 4 /* lb */
            iload 5 /* ln */
            iadd
            istore 10 /* lf */
        start local 10 // int lf
        48: iload 6 /* rb */
            iload 7 /* rn */
            iadd
            istore 11 /* rf */
        start local 11 // int rf
        49: .line 212
            goto 57
        50: .line 214
      StackMap locals: int int
      StackMap stack:
            aload 1 /* c */
            aload 2 /* a */
            iload 4 /* lb */
            aaload
            dup
            astore 13 /* al */
        start local 13 // java.lang.Object al
        51: aload 2 /* a */
            iload 6 /* rb */
            aaload
            dup
            astore 14 /* ar */
        start local 14 // java.lang.Object ar
        52: invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ifgt 55
        53: .line 215
            iinc 4 /* lb */ 1
            aload 13 /* al */
            astore 12 /* t */
        start local 12 // java.lang.Object t
        54: .line 216
            goto 56
        end local 12 // java.lang.Object t
        55: .line 218
      StackMap locals: java.util.ArraysParallelSortHelpers$FJObject$Merger java.util.Comparator java.lang.Object[] java.lang.Object[] int int int int int int int int top java.lang.Object java.lang.Object
      StackMap stack:
            iinc 6 /* rb */ 1
            aload 14 /* ar */
            astore 12 /* t */
        start local 12 // java.lang.Object t
        56: .line 220
      StackMap locals: java.util.ArraysParallelSortHelpers$FJObject$Merger java.util.Comparator java.lang.Object[] java.lang.Object[] int int int int int int int int java.lang.Object java.lang.Object java.lang.Object
      StackMap stack:
            aload 3 /* w */
            iload 8 /* k */
            iinc 8 /* k */ 1
            aload 12 /* t */
            aastore
        end local 14 // java.lang.Object ar
        end local 13 // java.lang.Object al
        end local 12 // java.lang.Object t
        57: .line 212
      StackMap locals:
      StackMap stack:
            iload 4 /* lb */
            iload 10 /* lf */
            if_icmpge 58
            iload 6 /* rb */
            iload 11 /* rf */
            if_icmplt 50
        58: .line 222
      StackMap locals:
      StackMap stack:
            iload 6 /* rb */
            iload 11 /* rf */
            if_icmpge 60
        59: .line 223
            aload 2 /* a */
            iload 6 /* rb */
            aload 3 /* w */
            iload 8 /* k */
            iload 11 /* rf */
            iload 6 /* rb */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            goto 62
        60: .line 224
      StackMap locals:
      StackMap stack:
            iload 4 /* lb */
            iload 10 /* lf */
            if_icmpge 62
        61: .line 225
            aload 2 /* a */
            iload 4 /* lb */
            aload 3 /* w */
            iload 8 /* k */
            iload 10 /* lf */
            iload 4 /* lb */
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        62: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.util.ArraysParallelSortHelpers$FJObject$Merger.tryComplete:()V
        63: .line 228
            return
        end local 11 // int rf
        end local 10 // int lf
        end local 9 // int g
        end local 8 // int k
        end local 7 // int rn
        end local 6 // int rb
        end local 5 // int ln
        end local 4 // int lb
        end local 3 // java.lang.Object[] w
        end local 2 // java.lang.Object[] a
        end local 1 // java.util.Comparator c
        end local 0 // java.util.ArraysParallelSortHelpers$FJObject$Merger this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   64     0   this  Ljava/util/ArraysParallelSortHelpers$FJObject$Merger<TT;>;
            1   64     1      c  Ljava/util/Comparator<-TT;>;
            2   64     2      a  [Ljava/lang/Object;
            3   64     3      w  [Ljava/lang/Object;
            4   64     4     lb  I
            5   64     5     ln  I
            6   64     6     rb  I
            7   64     7     rn  I
            8   64     8      k  I
            9   64     9      g  I
           17   26    10     lh  I
           29   46    10     lh  I
           16   26    11     rh  I
           30   46    11     rh  I
           18   25    12  split  TT;
           19   25    13     lo  I
           21   24    14     rm  I
           31   38    12  split  TT;
           32   38    13     lo  I
           34   37    14     lm  I
           42   46    12      m  Ljava/util/ArraysParallelSortHelpers$FJObject$Merger<TT;>;
           48   64    10     lf  I
           49   64    11     rf  I
           54   55    12      t  TT;
           56   57    12      t  TT;
           51   57    13     al  TT;
           52   57    14     ar  TT;
}
Signature: <T:Ljava/lang/Object;>Ljava/util/concurrent/CountedCompleter<Ljava/lang/Void;>;
SourceFile: "ArraysParallelSortHelpers.java"
NestHost: java.util.ArraysParallelSortHelpers
InnerClasses:
  final FJObject = java.util.ArraysParallelSortHelpers$FJObject of java.util.ArraysParallelSortHelpers
  final Merger = java.util.ArraysParallelSortHelpers$FJObject$Merger of java.util.ArraysParallelSortHelpers$FJObject