public class org.objectweb.asm.signature.SignatureReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.objectweb.asm.signature.SignatureReader
  super_class: java.lang.Object
{
  private final java.lang.String signatureValue;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.objectweb.asm.signature.SignatureReader this
        start local 1 // java.lang.String signature
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 0 /* this */
            aload 1 /* signature */
            putfield org.objectweb.asm.signature.SignatureReader.signatureValue:Ljava/lang/String;
         2: .line 51
            return
        end local 1 // java.lang.String signature
        end local 0 // org.objectweb.asm.signature.SignatureReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/objectweb/asm/signature/SignatureReader;
            0    3     1  signature  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      signature  final

  public void accept(org.objectweb.asm.signature.SignatureVisitor);
    descriptor: (Lorg/objectweb/asm/signature/SignatureVisitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.objectweb.asm.signature.SignatureReader this
        start local 1 // org.objectweb.asm.signature.SignatureVisitor signatureVistor
         0: .line 64
            aload 0 /* this */
            getfield org.objectweb.asm.signature.SignatureReader.signatureValue:Ljava/lang/String;
            astore 2 /* signature */
        start local 2 // java.lang.String signature
         1: .line 65
            aload 2 /* signature */
            invokevirtual java.lang.String.length:()I
            istore 3 /* length */
        start local 3 // int length
         2: .line 72
            aload 2 /* signature */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 60
            if_icmpne 17
         3: .line 75
            iconst_2
            istore 4 /* offset */
        start local 4 // int offset
         4: .line 78
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 2 /* signature */
            bipush 58
            iload 4 /* offset */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* classBoundStartOffset */
        start local 6 // int classBoundStartOffset
         5: .line 79
            aload 1 /* signatureVistor */
         6: .line 80
            aload 2 /* signature */
            iload 4 /* offset */
            iconst_1
            isub
            iload 6 /* classBoundStartOffset */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
         7: .line 79
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitFormalTypeParameter:(Ljava/lang/String;)V
         8: .line 84
            iload 6 /* classBoundStartOffset */
            iconst_1
            iadd
            istore 4 /* offset */
         9: .line 85
            aload 2 /* signature */
            iload 4 /* offset */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* currentChar */
        start local 5 // char currentChar
        10: .line 86
            iload 5 /* currentChar */
            bipush 76
            if_icmpeq 11
            iload 5 /* currentChar */
            bipush 91
            if_icmpeq 11
            iload 5 /* currentChar */
            bipush 84
            if_icmpne 14
        11: .line 87
      StackMap locals: int int
      StackMap stack:
            aload 2 /* signature */
            iload 4 /* offset */
            aload 1 /* signatureVistor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitClassBound:()Lorg/objectweb/asm/signature/SignatureVisitor;
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            istore 4 /* offset */
        12: .line 92
            goto 14
        13: .line 93
      StackMap locals:
      StackMap stack:
            aload 2 /* signature */
            iload 4 /* offset */
            aload 1 /* signatureVistor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitInterfaceBound:()Lorg/objectweb/asm/signature/SignatureVisitor;
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            istore 4 /* offset */
        14: .line 92
      StackMap locals:
      StackMap stack:
            aload 2 /* signature */
            iload 4 /* offset */
            iinc 4 /* offset */ 1
            invokevirtual java.lang.String.charAt:(I)C
            dup
            istore 5 /* currentChar */
            bipush 58
            if_icmpeq 13
        end local 6 // int classBoundStartOffset
        15: .line 100
            iload 5 /* currentChar */
            bipush 62
            if_icmpne 4
        16: .line 101
            goto 18
        end local 5 // char currentChar
        end local 4 // int offset
        17: .line 102
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* offset */
        start local 4 // int offset
        18: .line 108
      StackMap locals: int
      StackMap stack:
            aload 2 /* signature */
            iload 4 /* offset */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpne 28
        19: .line 109
            iinc 4 /* offset */ 1
        20: .line 110
            goto 22
        21: .line 111
      StackMap locals:
      StackMap stack:
            aload 2 /* signature */
            iload 4 /* offset */
            aload 1 /* signatureVistor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitParameterType:()Lorg/objectweb/asm/signature/SignatureVisitor;
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            istore 4 /* offset */
        22: .line 110
      StackMap locals:
      StackMap stack:
            aload 2 /* signature */
            iload 4 /* offset */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 21
        23: .line 114
            aload 2 /* signature */
            iload 4 /* offset */
            iconst_1
            iadd
            aload 1 /* signatureVistor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitReturnType:()Lorg/objectweb/asm/signature/SignatureVisitor;
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            istore 4 /* offset */
        24: .line 115
            goto 26
        25: .line 117
      StackMap locals:
      StackMap stack:
            aload 2 /* signature */
            iload 4 /* offset */
            iconst_1
            iadd
            aload 1 /* signatureVistor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitExceptionType:()Lorg/objectweb/asm/signature/SignatureVisitor;
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            istore 4 /* offset */
        26: .line 115
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 3 /* length */
            if_icmplt 25
        27: .line 119
            goto 32
        28: .line 122
      StackMap locals:
      StackMap stack:
            aload 2 /* signature */
            iload 4 /* offset */
            aload 1 /* signatureVistor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitSuperclass:()Lorg/objectweb/asm/signature/SignatureVisitor;
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            istore 4 /* offset */
        29: .line 123
            goto 31
        30: .line 124
      StackMap locals:
      StackMap stack:
            aload 2 /* signature */
            iload 4 /* offset */
            aload 1 /* signatureVistor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitInterface:()Lorg/objectweb/asm/signature/SignatureVisitor;
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            istore 4 /* offset */
        31: .line 123
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 3 /* length */
            if_icmplt 30
        32: .line 127
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int offset
        end local 3 // int length
        end local 2 // java.lang.String signature
        end local 1 // org.objectweb.asm.signature.SignatureVisitor signatureVistor
        end local 0 // org.objectweb.asm.signature.SignatureReader this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   33     0                   this  Lorg/objectweb/asm/signature/SignatureReader;
            0   33     1        signatureVistor  Lorg/objectweb/asm/signature/SignatureVisitor;
            1   33     2              signature  Ljava/lang/String;
            2   33     3                 length  I
            4   17     4                 offset  I
           18   33     4                 offset  I
           10   17     5            currentChar  C
            5   15     6  classBoundStartOffset  I
    MethodParameters:
                 Name  Flags
      signatureVistor  final

  public void acceptType(org.objectweb.asm.signature.SignatureVisitor);
    descriptor: (Lorg/objectweb/asm/signature/SignatureVisitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.objectweb.asm.signature.SignatureReader this
        start local 1 // org.objectweb.asm.signature.SignatureVisitor signatureVisitor
         0: .line 140
            aload 0 /* this */
            getfield org.objectweb.asm.signature.SignatureReader.signatureValue:Ljava/lang/String;
            iconst_0
            aload 1 /* signatureVisitor */
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            pop
         1: .line 141
            return
        end local 1 // org.objectweb.asm.signature.SignatureVisitor signatureVisitor
        end local 0 // org.objectweb.asm.signature.SignatureReader this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/objectweb/asm/signature/SignatureReader;
            0    2     1  signatureVisitor  Lorg/objectweb/asm/signature/SignatureVisitor;
    MethodParameters:
                  Name  Flags
      signatureVisitor  final

  private static int parseType(java.lang.String, int, org.objectweb.asm.signature.SignatureVisitor);
    descriptor: (Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // java.lang.String signature
        start local 1 // int startOffset
        start local 2 // org.objectweb.asm.signature.SignatureVisitor signatureVisitor
         0: .line 153
            iload 1 /* startOffset */
            istore 3 /* offset */
        start local 3 // int offset
         1: .line 154
            aload 0 /* signature */
            iload 3 /* offset */
            iinc 3 /* offset */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* currentChar */
        start local 4 // char currentChar
         2: .line 157
            iload 4 /* currentChar */
            tableswitch { // 66 - 91
                   66: 3
                   67: 3
                   68: 3
                   69: 47
                   70: 3
                   71: 47
                   72: 47
                   73: 3
                   74: 3
                   75: 47
                   76: 9
                   77: 47
                   78: 47
                   79: 47
                   80: 47
                   81: 47
                   82: 47
                   83: 3
                   84: 6
                   85: 47
                   86: 3
                   87: 47
                   88: 47
                   89: 47
                   90: 3
                   91: 5
              default: 47
          }
         3: .line 168
      StackMap locals: int int
      StackMap stack:
            aload 2 /* signatureVisitor */
            iload 4 /* currentChar */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitBaseType:(C)V
         4: .line 169
            iload 3 /* offset */
            ireturn
         5: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* signature */
            iload 3 /* offset */
            aload 2 /* signatureVisitor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitArrayType:()Lorg/objectweb/asm/signature/SignatureVisitor;
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            ireturn
         6: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* signature */
            bipush 59
            iload 3 /* offset */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 5 /* endOffset */
        start local 5 // int endOffset
         7: .line 178
            aload 2 /* signatureVisitor */
            aload 0 /* signature */
            iload 3 /* offset */
            iload 5 /* endOffset */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitTypeVariable:(Ljava/lang/String;)V
         8: .line 179
            iload 5 /* endOffset */
            iconst_1
            iadd
            ireturn
        end local 5 // int endOffset
         9: .line 185
      StackMap locals:
      StackMap stack:
            iload 3 /* offset */
            istore 6 /* start */
        start local 6 // int start
        10: .line 186
            iconst_0
            istore 7 /* visited */
        start local 7 // boolean visited
        11: .line 187
            iconst_0
            istore 8 /* inner */
        start local 8 // boolean inner
        12: .line 190
      StackMap locals: java.lang.String int org.objectweb.asm.signature.SignatureVisitor int int top int int int
      StackMap stack:
            aload 0 /* signature */
            iload 3 /* offset */
            iinc 3 /* offset */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* currentChar */
        13: .line 191
            iload 4 /* currentChar */
            bipush 46
            if_icmpeq 14
            iload 4 /* currentChar */
            bipush 59
            if_icmpne 27
        14: .line 195
      StackMap locals:
      StackMap stack:
            iload 7 /* visited */
            ifne 20
        15: .line 196
            aload 0 /* signature */
            iload 6 /* start */
            iload 3 /* offset */
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* name */
        start local 9 // java.lang.String name
        16: .line 197
            iload 8 /* inner */
            ifeq 19
        17: .line 198
            aload 2 /* signatureVisitor */
            aload 9 /* name */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitInnerClassType:(Ljava/lang/String;)V
        18: .line 199
            goto 20
        19: .line 200
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* signatureVisitor */
            aload 9 /* name */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitClassType:(Ljava/lang/String;)V
        end local 9 // java.lang.String name
        20: .line 205
      StackMap locals:
      StackMap stack:
            iload 4 /* currentChar */
            bipush 59
            if_icmpne 23
        21: .line 206
            aload 2 /* signatureVisitor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitEnd:()V
        22: .line 207
            goto 46
        23: .line 209
      StackMap locals:
      StackMap stack:
            iload 3 /* offset */
            istore 6 /* start */
        24: .line 210
            iconst_0
            istore 7 /* visited */
        25: .line 211
            iconst_1
            istore 8 /* inner */
        26: .line 212
            goto 12
      StackMap locals:
      StackMap stack:
        27: iload 4 /* currentChar */
            bipush 60
            if_icmpne 12
        28: .line 216
            aload 0 /* signature */
            iload 6 /* start */
            iload 3 /* offset */
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* name */
        start local 9 // java.lang.String name
        29: .line 217
            iload 8 /* inner */
            ifeq 32
        30: .line 218
            aload 2 /* signatureVisitor */
            aload 9 /* name */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitInnerClassType:(Ljava/lang/String;)V
        31: .line 219
            goto 33
        32: .line 220
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* signatureVisitor */
            aload 9 /* name */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitClassType:(Ljava/lang/String;)V
        33: .line 222
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* visited */
        34: .line 224
            goto 44
        35: .line 225
      StackMap locals:
      StackMap stack:
            iload 4 /* currentChar */
            tableswitch { // 42 - 45
                   42: 36
                   43: 39
                   44: 43
                   45: 39
              default: 43
          }
        36: .line 228
      StackMap locals:
      StackMap stack:
            iinc 3 /* offset */ 1
        37: .line 229
            aload 2 /* signatureVisitor */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitTypeArgument:()V
        38: .line 230
            goto 44
        39: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* signature */
            iload 3 /* offset */
            iconst_1
            iadd
            aload 2 /* signatureVisitor */
            iload 4 /* currentChar */
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitTypeArgument:(C)Lorg/objectweb/asm/signature/SignatureVisitor;
        40: .line 235
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
        41: .line 234
            istore 3 /* offset */
        42: .line 237
            goto 44
        43: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* signature */
            iload 3 /* offset */
            aload 2 /* signatureVisitor */
            bipush 61
            invokevirtual org.objectweb.asm.signature.SignatureVisitor.visitTypeArgument:(C)Lorg/objectweb/asm/signature/SignatureVisitor;
            invokestatic org.objectweb.asm.signature.SignatureReader.parseType:(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I
            istore 3 /* offset */
        44: .line 224
      StackMap locals:
      StackMap stack:
            aload 0 /* signature */
            iload 3 /* offset */
            invokevirtual java.lang.String.charAt:(I)C
            dup
            istore 4 /* currentChar */
            bipush 62
            if_icmpne 35
        end local 9 // java.lang.String name
        45: .line 189
            goto 12
        46: .line 246
      StackMap locals:
      StackMap stack:
            iload 3 /* offset */
            ireturn
        end local 8 // boolean inner
        end local 7 // boolean visited
        end local 6 // int start
        47: .line 249
      StackMap locals: java.lang.String int org.objectweb.asm.signature.SignatureVisitor int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        end local 4 // char currentChar
        end local 3 // int offset
        end local 2 // org.objectweb.asm.signature.SignatureVisitor signatureVisitor
        end local 1 // int startOffset
        end local 0 // java.lang.String signature
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   48     0         signature  Ljava/lang/String;
            0   48     1       startOffset  I
            0   48     2  signatureVisitor  Lorg/objectweb/asm/signature/SignatureVisitor;
            1   48     3            offset  I
            2   48     4       currentChar  C
            7    9     5         endOffset  I
           10   47     6             start  I
           11   47     7           visited  Z
           12   47     8             inner  Z
           16   20     9              name  Ljava/lang/String;
           29   45     9              name  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      signature         final
      startOffset       final
      signatureVisitor  final
}
SourceFile: "SignatureReader.java"