abstract class java.util.stream.Nodes$InternalNodeSpliterator<T, S extends java.util.Spliterator<T>, N extends java.util.stream.Node<T>> implements java.util.Spliterator<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: java.util.stream.Nodes$InternalNodeSpliterator
  super_class: java.lang.Object
{
  N curNode;
    descriptor: Ljava/util/stream/Node;
    flags: (0x0000) 
    Signature: TN;

  int curChildIndex;
    descriptor: I
    flags: (0x0000) 

  S lastNodeSpliterator;
    descriptor: Ljava/util/Spliterator;
    flags: (0x0000) 
    Signature: TS;

  S tryAdvanceSpliterator;
    descriptor: Ljava/util/Spliterator;
    flags: (0x0000) 
    Signature: TS;

  java.util.Deque<N> tryAdvanceStack;
    descriptor: Ljava/util/Deque;
    flags: (0x0000) 
    Signature: Ljava/util/Deque<TN;>;

  void <init>();
    descriptor: (Ljava/util/stream/Node;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
        start local 1 // java.util.stream.Node curNode
         0: .line 951
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 952
            aload 0 /* this */
            aload 1 /* curNode */
            putfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
         2: .line 953
            return
        end local 1 // java.util.stream.Node curNode
        end local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljava/util/stream/Nodes$InternalNodeSpliterator<TT;TS;TN;>;
            0    3     1  curNode  TN;
    Signature: (TN;)V
    MethodParameters:
         Name  Flags
      curNode  

  protected final java.util.Deque<N> initStack();
    descriptor: ()Ljava/util/Deque;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
         0: .line 963
            new java.util.ArrayDeque
            dup
            bipush 8
            invokespecial java.util.ArrayDeque.<init>:(I)V
            astore 1 /* stack */
        start local 1 // java.util.Deque stack
         1: .line 964
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            invokeinterface java.util.stream.Node.getChildCount:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 965
      StackMap locals: java.util.Deque int
      StackMap stack:
            aload 1 /* stack */
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            iload 2 /* i */
            invokeinterface java.util.stream.Node.getChild:(I)Ljava/util/stream/Node;
            invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
         4: .line 964
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curChildIndex:I
            if_icmpge 3
        end local 2 // int i
         6: .line 966
            aload 1 /* stack */
            areturn
        end local 1 // java.util.Deque stack
        end local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Ljava/util/stream/Nodes$InternalNodeSpliterator<TT;TS;TN;>;
            1    7     1  stack  Ljava/util/Deque<TN;>;
            2    6     2      i  I
    Signature: ()Ljava/util/Deque<TN;>;

  protected final N findNextLeafNode(java.util.Deque<N>);
    descriptor: (Ljava/util/Deque;)Ljava/util/stream/Node;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
        start local 1 // java.util.Deque stack
         0: .line 975
            aconst_null
            astore 2 /* n */
        start local 2 // java.util.stream.Node n
         1: .line 976
            goto 10
         2: .line 977
      StackMap locals: java.util.stream.Node
      StackMap stack:
            aload 2 /* n */
            invokeinterface java.util.stream.Node.getChildCount:()I
            ifne 5
         3: .line 978
            aload 2 /* n */
            invokeinterface java.util.stream.Node.count:()J
            lconst_0
            lcmp
            ifle 10
         4: .line 979
            aload 2 /* n */
            areturn
         5: .line 981
      StackMap locals:
      StackMap stack:
            aload 2 /* n */
            invokeinterface java.util.stream.Node.getChildCount:()I
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
         6: goto 9
         7: .line 982
      StackMap locals: int
      StackMap stack:
            aload 1 /* stack */
            aload 2 /* n */
            iload 3 /* i */
            invokeinterface java.util.stream.Node.getChild:(I)Ljava/util/stream/Node;
            invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
         8: .line 981
            iinc 3 /* i */ -1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            ifge 7
        end local 3 // int i
        10: .line 976
      StackMap locals:
      StackMap stack:
            aload 1 /* stack */
            invokeinterface java.util.Deque.pollFirst:()Ljava/lang/Object;
            checkcast java.util.stream.Node
            dup
            astore 2 /* n */
            ifnonnull 2
        11: .line 986
            aconst_null
            areturn
        end local 2 // java.util.stream.Node n
        end local 1 // java.util.Deque stack
        end local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Ljava/util/stream/Nodes$InternalNodeSpliterator<TT;TS;TN;>;
            0   12     1  stack  Ljava/util/Deque<TN;>;
            1   12     2      n  TN;
            6   10     3      i  I
    Signature: (Ljava/util/Deque<TN;>;)TN;
    MethodParameters:
       Name  Flags
      stack  

  protected final boolean initTryAdvance();
    descriptor: ()Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
         0: .line 991
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            ifnonnull 2
         1: .line 992
            iconst_0
            ireturn
         2: .line 994
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.tryAdvanceSpliterator:Ljava/util/Spliterator;
            ifnonnull 11
         3: .line 995
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.lastNodeSpliterator:Ljava/util/Spliterator;
            ifnonnull 10
         4: .line 997
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual java.util.stream.Nodes$InternalNodeSpliterator.initStack:()Ljava/util/Deque;
            putfield java.util.stream.Nodes$InternalNodeSpliterator.tryAdvanceStack:Ljava/util/Deque;
         5: .line 998
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.tryAdvanceStack:Ljava/util/Deque;
            invokevirtual java.util.stream.Nodes$InternalNodeSpliterator.findNextLeafNode:(Ljava/util/Deque;)Ljava/util/stream/Node;
            astore 1 /* leaf */
        start local 1 // java.util.stream.Node leaf
         6: .line 999
            aload 1 /* leaf */
            ifnull 8
         7: .line 1000
            aload 0 /* this */
            aload 1 /* leaf */
            invokeinterface java.util.stream.Node.spliterator:()Ljava/util/Spliterator;
            putfield java.util.stream.Nodes$InternalNodeSpliterator.tryAdvanceSpliterator:Ljava/util/Spliterator;
            goto 11
         8: .line 1004
      StackMap locals: java.util.stream.Node
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
         9: .line 1005
            iconst_0
            ireturn
        end local 1 // java.util.stream.Node leaf
        10: .line 1009
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.lastNodeSpliterator:Ljava/util/Spliterator;
            putfield java.util.stream.Nodes$InternalNodeSpliterator.tryAdvanceSpliterator:Ljava/util/Spliterator;
        11: .line 1011
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljava/util/stream/Nodes$InternalNodeSpliterator<TT;TS;TN;>;
            6   10     1  leaf  TN;

  public final S trySplit();
    descriptor: ()Ljava/util/Spliterator;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
         0: .line 1017
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            ifnull 1
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.tryAdvanceSpliterator:Ljava/util/Spliterator;
            ifnull 2
         1: .line 1018
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 1019
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.lastNodeSpliterator:Ljava/util/Spliterator;
            ifnull 4
         3: .line 1020
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.lastNodeSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.trySplit:()Ljava/util/Spliterator;
            areturn
         4: .line 1021
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curChildIndex:I
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            invokeinterface java.util.stream.Node.getChildCount:()I
            iconst_1
            isub
            if_icmpge 6
         5: .line 1022
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            aload 0 /* this */
            dup
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curChildIndex:I
            dup_x1
            iconst_1
            iadd
            putfield java.util.stream.Nodes$InternalNodeSpliterator.curChildIndex:I
            invokeinterface java.util.stream.Node.getChild:(I)Ljava/util/stream/Node;
            invokeinterface java.util.stream.Node.spliterator:()Ljava/util/Spliterator;
            areturn
         6: .line 1024
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curChildIndex:I
            invokeinterface java.util.stream.Node.getChild:(I)Ljava/util/stream/Node;
            putfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
         7: .line 1025
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            invokeinterface java.util.stream.Node.getChildCount:()I
            ifne 10
         8: .line 1026
            aload 0 /* this */
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            invokeinterface java.util.stream.Node.spliterator:()Ljava/util/Spliterator;
            putfield java.util.stream.Nodes$InternalNodeSpliterator.lastNodeSpliterator:Ljava/util/Spliterator;
         9: .line 1027
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.lastNodeSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.trySplit:()Ljava/util/Spliterator;
            areturn
        10: .line 1030
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield java.util.stream.Nodes$InternalNodeSpliterator.curChildIndex:I
        11: .line 1031
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            aload 0 /* this */
            dup
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curChildIndex:I
            dup_x1
            iconst_1
            iadd
            putfield java.util.stream.Nodes$InternalNodeSpliterator.curChildIndex:I
            invokeinterface java.util.stream.Node.getChild:(I)Ljava/util/stream/Node;
            invokeinterface java.util.stream.Node.spliterator:()Ljava/util/Spliterator;
            areturn
        end local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljava/util/stream/Nodes$InternalNodeSpliterator<TT;TS;TN;>;
    Signature: ()TS;

  public final long estimateSize();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
         0: .line 1038
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            ifnonnull 2
         1: .line 1039
            lconst_0
            lreturn
         2: .line 1043
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.lastNodeSpliterator:Ljava/util/Spliterator;
            ifnull 4
         3: .line 1044
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.lastNodeSpliterator:Ljava/util/Spliterator;
            invokeinterface java.util.Spliterator.estimateSize:()J
            lreturn
         4: .line 1046
      StackMap locals:
      StackMap stack:
            lconst_0
            lstore 1 /* size */
        start local 1 // long size
         5: .line 1047
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curChildIndex:I
            istore 3 /* i */
        start local 3 // int i
         6: goto 9
         7: .line 1048
      StackMap locals: long int
      StackMap stack:
            lload 1 /* size */
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            iload 3 /* i */
            invokeinterface java.util.stream.Node.getChild:(I)Ljava/util/stream/Node;
            invokeinterface java.util.stream.Node.count:()J
            ladd
            lstore 1 /* size */
         8: .line 1047
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 0 /* this */
            getfield java.util.stream.Nodes$InternalNodeSpliterator.curNode:Ljava/util/stream/Node;
            invokeinterface java.util.stream.Node.getChildCount:()I
            if_icmplt 7
        end local 3 // int i
        10: .line 1049
            lload 1 /* size */
            lreturn
        end local 1 // long size
        end local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/util/stream/Nodes$InternalNodeSpliterator<TT;TS;TN;>;
            5   11     1  size  J
            6   10     3     i  I

  public final int characteristics();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
         0: .line 1055
            bipush 64
            ireturn
        end local 0 // java.util.stream.Nodes$InternalNodeSpliterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/stream/Nodes$InternalNodeSpliterator<TT;TS;TN;>;
}
Signature: <T:Ljava/lang/Object;S::Ljava/util/Spliterator<TT;>;N::Ljava/util/stream/Node<TT;>;>Ljava/lang/Object;Ljava/util/Spliterator<TT;>;
SourceFile: "Nodes.java"
NestHost: java.util.stream.Nodes
InnerClasses:
  private abstract InternalNodeSpliterator = java.util.stream.Nodes$InternalNodeSpliterator of java.util.stream.Nodes
  private final OfDouble = java.util.stream.Nodes$InternalNodeSpliterator$OfDouble of java.util.stream.Nodes$InternalNodeSpliterator
  private final OfInt = java.util.stream.Nodes$InternalNodeSpliterator$OfInt of java.util.stream.Nodes$InternalNodeSpliterator
  private final OfLong = java.util.stream.Nodes$InternalNodeSpliterator$OfLong of java.util.stream.Nodes$InternalNodeSpliterator
  private abstract OfPrimitive = java.util.stream.Nodes$InternalNodeSpliterator$OfPrimitive of java.util.stream.Nodes$InternalNodeSpliterator
  private final OfRef = java.util.stream.Nodes$InternalNodeSpliterator$OfRef of java.util.stream.Nodes$InternalNodeSpliterator