final class java.util.stream.SortedOps$OfRef<T> extends java.util.stream.ReferencePipeline$StatefulOp<T, T>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.util.stream.SortedOps$OfRef
  super_class: java.util.stream.ReferencePipeline$StatefulOp
{
  private final boolean isNaturalSort;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Comparator<? super T> comparator;
    descriptor: Ljava/util/Comparator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Comparator<-TT;>;

  void <init>(java.util.stream.AbstractPipeline<?, T, ?>);
    descriptor: (Ljava/util/stream/AbstractPipeline;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.util.stream.SortedOps$OfRef this
        start local 1 // java.util.stream.AbstractPipeline upstream
         0: .line 111
            aload 0 /* this */
            aload 1 /* upstream */
            getstatic java.util.stream.StreamShape.REFERENCE:Ljava/util/stream/StreamShape;
         1: .line 112
            getstatic java.util.stream.StreamOpFlag.IS_ORDERED:I
            getstatic java.util.stream.StreamOpFlag.IS_SORTED:I
            ior
            invokespecial java.util.stream.ReferencePipeline$StatefulOp.<init>:(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
         2: .line 113
            aload 0 /* this */
            iconst_1
            putfield java.util.stream.SortedOps$OfRef.isNaturalSort:Z
         3: .line 116
            invokestatic java.util.Comparator.naturalOrder:()Ljava/util/Comparator;
            astore 2 /* comp */
        start local 2 // java.util.Comparator comp
         4: .line 117
            aload 0 /* this */
            aload 2 /* comp */
            putfield java.util.stream.SortedOps$OfRef.comparator:Ljava/util/Comparator;
         5: .line 118
            return
        end local 2 // java.util.Comparator comp
        end local 1 // java.util.stream.AbstractPipeline upstream
        end local 0 // java.util.stream.SortedOps$OfRef this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljava/util/stream/SortedOps$OfRef<TT;>;
            0    6     1  upstream  Ljava/util/stream/AbstractPipeline<*TT;*>;
            4    6     2      comp  Ljava/util/Comparator<-TT;>;
    Signature: (Ljava/util/stream/AbstractPipeline<*TT;*>;)V
    MethodParameters:
          Name  Flags
      upstream  

  void <init>(java.util.stream.AbstractPipeline<?, T, ?>, java.util.Comparator<? super T>);
    descriptor: (Ljava/util/stream/AbstractPipeline;Ljava/util/Comparator;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.util.stream.SortedOps$OfRef this
        start local 1 // java.util.stream.AbstractPipeline upstream
        start local 2 // java.util.Comparator comparator
         0: .line 126
            aload 0 /* this */
            aload 1 /* upstream */
            getstatic java.util.stream.StreamShape.REFERENCE:Ljava/util/stream/StreamShape;
         1: .line 127
            getstatic java.util.stream.StreamOpFlag.IS_ORDERED:I
            getstatic java.util.stream.StreamOpFlag.NOT_SORTED:I
            ior
            invokespecial java.util.stream.ReferencePipeline$StatefulOp.<init>:(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
         2: .line 128
            aload 0 /* this */
            iconst_0
            putfield java.util.stream.SortedOps$OfRef.isNaturalSort:Z
         3: .line 129
            aload 0 /* this */
            aload 2 /* comparator */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Comparator
            putfield java.util.stream.SortedOps$OfRef.comparator:Ljava/util/Comparator;
         4: .line 130
            return
        end local 2 // java.util.Comparator comparator
        end local 1 // java.util.stream.AbstractPipeline upstream
        end local 0 // java.util.stream.SortedOps$OfRef this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Ljava/util/stream/SortedOps$OfRef<TT;>;
            0    5     1    upstream  Ljava/util/stream/AbstractPipeline<*TT;*>;
            0    5     2  comparator  Ljava/util/Comparator<-TT;>;
    Signature: (Ljava/util/stream/AbstractPipeline<*TT;*>;Ljava/util/Comparator<-TT;>;)V
    MethodParameters:
            Name  Flags
      upstream    
      comparator  

  public java.util.stream.Sink<T> opWrapSink(int, java.util.stream.Sink<T>);
    descriptor: (ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.util.stream.SortedOps$OfRef this
        start local 1 // int flags
        start local 2 // java.util.stream.Sink sink
         0: .line 134
            aload 2 /* sink */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 138
            getstatic java.util.stream.StreamOpFlag.SORTED:Ljava/util/stream/StreamOpFlag;
            iload 1 /* flags */
            invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
            ifeq 3
            aload 0 /* this */
            getfield java.util.stream.SortedOps$OfRef.isNaturalSort:Z
            ifeq 3
         2: .line 139
            aload 2 /* sink */
            areturn
         3: .line 140
      StackMap locals:
      StackMap stack:
            getstatic java.util.stream.StreamOpFlag.SIZED:Ljava/util/stream/StreamOpFlag;
            iload 1 /* flags */
            invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
            ifeq 5
         4: .line 141
            new java.util.stream.SortedOps$SizedRefSortingSink
            dup
            aload 2 /* sink */
            aload 0 /* this */
            getfield java.util.stream.SortedOps$OfRef.comparator:Ljava/util/Comparator;
            invokespecial java.util.stream.SortedOps$SizedRefSortingSink.<init>:(Ljava/util/stream/Sink;Ljava/util/Comparator;)V
            areturn
         5: .line 143
      StackMap locals:
      StackMap stack:
            new java.util.stream.SortedOps$RefSortingSink
            dup
            aload 2 /* sink */
            aload 0 /* this */
            getfield java.util.stream.SortedOps$OfRef.comparator:Ljava/util/Comparator;
            invokespecial java.util.stream.SortedOps$RefSortingSink.<init>:(Ljava/util/stream/Sink;Ljava/util/Comparator;)V
            areturn
        end local 2 // java.util.stream.Sink sink
        end local 1 // int flags
        end local 0 // java.util.stream.SortedOps$OfRef this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Ljava/util/stream/SortedOps$OfRef<TT;>;
            0    6     1  flags  I
            0    6     2   sink  Ljava/util/stream/Sink<TT;>;
    Signature: (ILjava/util/stream/Sink<TT;>;)Ljava/util/stream/Sink<TT;>;
    MethodParameters:
       Name  Flags
      flags  
      sink   

  public <P_IN> java.util.stream.Node<T> opEvaluateParallel(java.util.stream.PipelineHelper<T>, java.util.Spliterator<P_IN>, java.util.function.IntFunction<T[]>);
    descriptor: (Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // java.util.stream.SortedOps$OfRef this
        start local 1 // java.util.stream.PipelineHelper helper
        start local 2 // java.util.Spliterator spliterator
        start local 3 // java.util.function.IntFunction generator
         0: .line 152
            getstatic java.util.stream.StreamOpFlag.SORTED:Ljava/util/stream/StreamOpFlag;
            aload 1 /* helper */
            invokevirtual java.util.stream.PipelineHelper.getStreamAndOpFlags:()I
            invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
            ifeq 2
            aload 0 /* this */
            getfield java.util.stream.SortedOps$OfRef.isNaturalSort:Z
            ifeq 2
         1: .line 153
            aload 1 /* helper */
            aload 2 /* spliterator */
            iconst_0
            aload 3 /* generator */
            invokevirtual java.util.stream.PipelineHelper.evaluate:(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
            areturn
         2: .line 157
      StackMap locals:
      StackMap stack:
            aload 1 /* helper */
            aload 2 /* spliterator */
            iconst_1
            aload 3 /* generator */
            invokevirtual java.util.stream.PipelineHelper.evaluate:(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
            aload 3 /* generator */
            invokeinterface java.util.stream.Node.asArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            astore 4 /* flattenedData */
        start local 4 // java.lang.Object[] flattenedData
         3: .line 158
            aload 4 /* flattenedData */
            aload 0 /* this */
            getfield java.util.stream.SortedOps$OfRef.comparator:Ljava/util/Comparator;
            invokestatic java.util.Arrays.parallelSort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         4: .line 159
            aload 4 /* flattenedData */
            invokestatic java.util.stream.Nodes.node:([Ljava/lang/Object;)Ljava/util/stream/Node;
            areturn
        end local 4 // java.lang.Object[] flattenedData
        end local 3 // java.util.function.IntFunction generator
        end local 2 // java.util.Spliterator spliterator
        end local 1 // java.util.stream.PipelineHelper helper
        end local 0 // java.util.stream.SortedOps$OfRef this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Ljava/util/stream/SortedOps$OfRef<TT;>;
            0    5     1         helper  Ljava/util/stream/PipelineHelper<TT;>;
            0    5     2    spliterator  Ljava/util/Spliterator<TP_IN;>;
            0    5     3      generator  Ljava/util/function/IntFunction<[TT;>;
            3    5     4  flattenedData  [Ljava/lang/Object;
    Signature: <P_IN:Ljava/lang/Object;>(Ljava/util/stream/PipelineHelper<TT;>;Ljava/util/Spliterator<TP_IN;>;Ljava/util/function/IntFunction<[TT;>;)Ljava/util/stream/Node<TT;>;
    MethodParameters:
             Name  Flags
      helper       
      spliterator  
      generator    
}
Signature: <T:Ljava/lang/Object;>Ljava/util/stream/ReferencePipeline$StatefulOp<TT;TT;>;
SourceFile: "SortedOps.java"
NestHost: java.util.stream.SortedOps
InnerClasses:
  abstract StatefulOp = java.util.stream.ReferencePipeline$StatefulOp of java.util.stream.ReferencePipeline
  private final OfRef = java.util.stream.SortedOps$OfRef of java.util.stream.SortedOps
  private final RefSortingSink = java.util.stream.SortedOps$RefSortingSink of java.util.stream.SortedOps
  private final SizedRefSortingSink = java.util.stream.SortedOps$SizedRefSortingSink of java.util.stream.SortedOps