class freemarker.ext.util.IdentityHashMap$HashIterator implements java.util.Iterator
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: freemarker.ext.util.IdentityHashMap$HashIterator
  super_class: java.lang.Object
{
  freemarker.ext.util.IdentityHashMap$Entry[] table;
    descriptor: [Lfreemarker/ext/util/IdentityHashMap$Entry;
    flags: (0x0000) 

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

  freemarker.ext.util.IdentityHashMap$Entry entry;
    descriptor: Lfreemarker/ext/util/IdentityHashMap$Entry;
    flags: (0x0000) 

  freemarker.ext.util.IdentityHashMap$Entry lastReturned;
    descriptor: Lfreemarker/ext/util/IdentityHashMap$Entry;
    flags: (0x0000) 

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

  private int expectedModCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  final freemarker.ext.util.IdentityHashMap this$0;
    descriptor: Lfreemarker/ext/util/IdentityHashMap;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(freemarker.ext.util.IdentityHashMap, int);
    descriptor: (Lfreemarker/ext/util/IdentityHashMap;I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // freemarker.ext.util.IdentityHashMap$HashIterator this
        start local 2 // int type
         0: .line 708
            aload 0 /* this */
            aload 1
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 695
            aload 0 /* this */
            aload 1
            getfield freemarker.ext.util.IdentityHashMap.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
         2: .line 696
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
            arraylength
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
         3: .line 697
            aload 0 /* this */
            aconst_null
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
         4: .line 698
            aload 0 /* this */
            aconst_null
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
         5: .line 706
            aload 0 /* this */
            aload 1
            getfield freemarker.ext.util.IdentityHashMap.modCount:I
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
         6: .line 709
            aload 0 /* this */
            iload 2 /* type */
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.type:I
         7: .line 710
            return
        end local 2 // int type
        end local 0 // freemarker.ext.util.IdentityHashMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lfreemarker/ext/util/IdentityHashMap$HashIterator;
            0    8     2  type  I
    MethodParameters:
        Name  Flags
      this$0  final
      type    

  public boolean hasNext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // freemarker.ext.util.IdentityHashMap$HashIterator this
         0: .line 713
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
            astore 1 /* e */
        start local 1 // freemarker.ext.util.IdentityHashMap$Entry e
         1: .line 714
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
            istore 2 /* i */
        start local 2 // int i
         2: .line 715
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
            astore 3 /* t */
        start local 3 // freemarker.ext.util.IdentityHashMap$Entry[] t
         3: .line 717
            goto 5
         4: .line 718
      StackMap locals: freemarker.ext.util.IdentityHashMap$Entry int freemarker.ext.util.IdentityHashMap$Entry[]
      StackMap stack:
            aload 3 /* t */
            iinc 2 /* i */ -1
            iload 2 /* i */
            aaload
            astore 1 /* e */
         5: .line 717
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            ifnonnull 6
            iload 2 /* i */
            ifgt 4
         6: .line 719
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* e */
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
         7: .line 720
            aload 0 /* this */
            iload 2 /* i */
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
         8: .line 721
            aload 1 /* e */
            ifnull 9
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         9: iconst_0
            ireturn
        end local 3 // freemarker.ext.util.IdentityHashMap$Entry[] t
        end local 2 // int i
        end local 1 // freemarker.ext.util.IdentityHashMap$Entry e
        end local 0 // freemarker.ext.util.IdentityHashMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lfreemarker/ext/util/IdentityHashMap$HashIterator;
            1   10     1     e  Lfreemarker/ext/util/IdentityHashMap$Entry;
            2   10     2     i  I
            3   10     3     t  [Lfreemarker/ext/util/IdentityHashMap$Entry;

  public java.lang.Object next();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // freemarker.ext.util.IdentityHashMap$HashIterator this
         0: .line 725
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
            getfield freemarker.ext.util.IdentityHashMap.modCount:I
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
            if_icmpeq 2
         1: .line 726
            new java.util.ConcurrentModificationException
            dup
            invokespecial java.util.ConcurrentModificationException.<init>:()V
            athrow
         2: .line 728
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
            astore 1 /* et */
        start local 1 // freemarker.ext.util.IdentityHashMap$Entry et
         3: .line 729
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
            istore 2 /* i */
        start local 2 // int i
         4: .line 730
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
            astore 3 /* t */
        start local 3 // freemarker.ext.util.IdentityHashMap$Entry[] t
         5: .line 733
            goto 7
         6: .line 734
      StackMap locals: freemarker.ext.util.IdentityHashMap$Entry int freemarker.ext.util.IdentityHashMap$Entry[]
      StackMap stack:
            aload 3 /* t */
            iinc 2 /* i */ -1
            iload 2 /* i */
            aaload
            astore 1 /* et */
         7: .line 733
      StackMap locals:
      StackMap stack:
            aload 1 /* et */
            ifnonnull 8
            iload 2 /* i */
            ifgt 6
         8: .line 736
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* et */
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
         9: .line 737
            aload 0 /* this */
            iload 2 /* i */
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.index:I
        10: .line 738
            aload 1 /* et */
            ifnull 17
        11: .line 739
            aload 0 /* this */
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
            dup_x1
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
            astore 4 /* e */
        start local 4 // freemarker.ext.util.IdentityHashMap$Entry e
        12: .line 740
            aload 0 /* this */
            aload 4 /* e */
            getfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.entry:Lfreemarker/ext/util/IdentityHashMap$Entry;
        13: .line 741
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.type:I
            ifne 14
            aload 4 /* e */
            getfield freemarker.ext.util.IdentityHashMap$Entry.key:Ljava/lang/Object;
            goto 16
      StackMap locals: freemarker.ext.util.IdentityHashMap$Entry
      StackMap stack:
        14: aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.type:I
            iconst_1
            if_icmpne 15
            aload 4 /* e */
            getfield freemarker.ext.util.IdentityHashMap$Entry.value:Ljava/lang/Object;
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 4 /* e */
      StackMap locals:
      StackMap stack: java.lang.Object
        16: areturn
        end local 4 // freemarker.ext.util.IdentityHashMap$Entry e
        17: .line 743
      StackMap locals:
      StackMap stack:
            new java.util.NoSuchElementException
            dup
            invokespecial java.util.NoSuchElementException.<init>:()V
            athrow
        end local 3 // freemarker.ext.util.IdentityHashMap$Entry[] t
        end local 2 // int i
        end local 1 // freemarker.ext.util.IdentityHashMap$Entry et
        end local 0 // freemarker.ext.util.IdentityHashMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lfreemarker/ext/util/IdentityHashMap$HashIterator;
            3   18     1    et  Lfreemarker/ext/util/IdentityHashMap$Entry;
            4   18     2     i  I
            5   18     3     t  [Lfreemarker/ext/util/IdentityHashMap$Entry;
           12   17     4     e  Lfreemarker/ext/util/IdentityHashMap$Entry;

  public void remove();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // freemarker.ext.util.IdentityHashMap$HashIterator this
         0: .line 747
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
            ifnonnull 2
         1: .line 748
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         2: .line 749
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
            getfield freemarker.ext.util.IdentityHashMap.modCount:I
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
            if_icmpeq 4
         3: .line 750
            new java.util.ConcurrentModificationException
            dup
            invokespecial java.util.ConcurrentModificationException.<init>:()V
            athrow
         4: .line 752
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
            getfield freemarker.ext.util.IdentityHashMap.table:[Lfreemarker/ext/util/IdentityHashMap$Entry;
            astore 1 /* tab */
        start local 1 // freemarker.ext.util.IdentityHashMap$Entry[] tab
         5: .line 753
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
            getfield freemarker.ext.util.IdentityHashMap$Entry.hash:I
            ldc 2147483647
            iand
            aload 1 /* tab */
            arraylength
            irem
            istore 2 /* index */
        start local 2 // int index
         6: .line 755
            aload 1 /* tab */
            iload 2 /* index */
            aaload
            astore 3 /* e */
        start local 3 // freemarker.ext.util.IdentityHashMap$Entry e
         7: aconst_null
            astore 4 /* prev */
        start local 4 // freemarker.ext.util.IdentityHashMap$Entry prev
         8: .line 756
            goto 19
         9: .line 758
      StackMap locals: freemarker.ext.util.IdentityHashMap$HashIterator freemarker.ext.util.IdentityHashMap$Entry[] int freemarker.ext.util.IdentityHashMap$Entry freemarker.ext.util.IdentityHashMap$Entry
      StackMap stack:
            aload 3 /* e */
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
            if_acmpne 18
        10: .line 759
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
            dup
            getfield freemarker.ext.util.IdentityHashMap.modCount:I
            iconst_1
            iadd
            putfield freemarker.ext.util.IdentityHashMap.modCount:I
        11: .line 760
            aload 0 /* this */
            dup
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
            iconst_1
            iadd
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.expectedModCount:I
        12: .line 761
            aload 4 /* prev */
            ifnonnull 14
        13: .line 762
            aload 1 /* tab */
            iload 2 /* index */
            aload 3 /* e */
            getfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
            aastore
            goto 15
        14: .line 764
      StackMap locals:
      StackMap stack:
            aload 4 /* prev */
            aload 3 /* e */
            getfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
            putfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
        15: .line 765
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield freemarker.ext.util.IdentityHashMap$HashIterator.this$0:Lfreemarker/ext/util/IdentityHashMap;
            dup
            getfield freemarker.ext.util.IdentityHashMap.count:I
            iconst_1
            isub
            putfield freemarker.ext.util.IdentityHashMap.count:I
        16: .line 766
            aload 0 /* this */
            aconst_null
            putfield freemarker.ext.util.IdentityHashMap$HashIterator.lastReturned:Lfreemarker/ext/util/IdentityHashMap$Entry;
        17: .line 767
            return
        18: .line 757
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            astore 4 /* prev */
            aload 3 /* e */
            getfield freemarker.ext.util.IdentityHashMap$Entry.next:Lfreemarker/ext/util/IdentityHashMap$Entry;
            astore 3 /* e */
        19: .line 756
      StackMap locals:
      StackMap stack:
            aload 3 /* e */
            ifnonnull 9
        end local 4 // freemarker.ext.util.IdentityHashMap$Entry prev
        end local 3 // freemarker.ext.util.IdentityHashMap$Entry e
        20: .line 770
            new java.util.ConcurrentModificationException
            dup
            invokespecial java.util.ConcurrentModificationException.<init>:()V
            athrow
        end local 2 // int index
        end local 1 // freemarker.ext.util.IdentityHashMap$Entry[] tab
        end local 0 // freemarker.ext.util.IdentityHashMap$HashIterator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   21     0   this  Lfreemarker/ext/util/IdentityHashMap$HashIterator;
            5   21     1    tab  [Lfreemarker/ext/util/IdentityHashMap$Entry;
            6   21     2  index  I
            7   20     3      e  Lfreemarker/ext/util/IdentityHashMap$Entry;
            8   20     4   prev  Lfreemarker/ext/util/IdentityHashMap$Entry;
}
SourceFile: "IdentityHashMap.java"
NestHost: freemarker.ext.util.IdentityHashMap
InnerClasses:
  private Entry = freemarker.ext.util.IdentityHashMap$Entry of freemarker.ext.util.IdentityHashMap
  private HashIterator = freemarker.ext.util.IdentityHashMap$HashIterator of freemarker.ext.util.IdentityHashMap