public class io.micronaut.http.uri.UriTemplate$UriTemplateParser
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.micronaut.http.uri.UriTemplate$UriTemplateParser
  super_class: java.lang.Object
{
  private static final int STATE_TEXT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int STATE_VAR_START;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int STATE_VAR_CONTENT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int STATE_VAR_NEXT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  private static final int STATE_VAR_MODIFIER;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  private static final int STATE_VAR_NEXT_MODIFIER;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  java.lang.String templateText;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

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

  private char operator;
    descriptor: C
    flags: (0x0002) ACC_PRIVATE

  private char modifier;
    descriptor: C
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String varDelimiter;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean isQuerySegment;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.micronaut.http.uri.UriTemplate$UriTemplateParser this
        start local 1 // java.lang.String templateText
         0: .line 590
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 581
            aload 0 /* this */
            iconst_0
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
         2: .line 582
            aload 0 /* this */
            bipush 48
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
         3: .line 583
            aload 0 /* this */
            bipush 48
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.modifier:C
         4: .line 585
            aload 0 /* this */
            iconst_0
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.isQuerySegment:Z
         5: .line 591
            aload 0 /* this */
            aload 1 /* templateText */
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.templateText:Ljava/lang/String;
         6: .line 592
            return
        end local 1 // java.lang.String templateText
        end local 0 // io.micronaut.http.uri.UriTemplate$UriTemplateParser this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lio/micronaut/http/uri/UriTemplate$UriTemplateParser;
            0    7     1  templateText  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      templateText  

  protected void parse(java.util.List<io.micronaut.http.uri.UriTemplate$PathSegment>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=12, locals=18, args_size=2
        start local 0 // io.micronaut.http.uri.UriTemplate$UriTemplateParser this
        start local 1 // java.util.List segments
         0: .line 600
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.templateText:Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 2 /* chars */
        start local 2 // char[] chars
         1: .line 601
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* buff */
        start local 3 // java.lang.StringBuilder buff
         2: .line 602
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* modBuff */
        start local 4 // java.lang.StringBuilder modBuff
         3: .line 603
            iconst_0
            istore 5 /* varCount */
        start local 5 // int varCount
         4: .line 604
            aload 2 /* chars */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 125
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int top int int char[]
      StackMap stack:
         5: aload 9
            iload 7
            caload
            istore 6 /* c */
        start local 6 // char c
         6: .line 605
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
            tableswitch { // 0 - 13
                    0: 7
                    1: 116
                    2: 20
                    3: 124
                    4: 124
                    5: 124
                    6: 124
                    7: 124
                    8: 124
                    9: 124
                   10: 124
                   11: 20
                   12: 18
                   13: 18
              default: 124
          }
         7: .line 607
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[]
      StackMap stack:
            iload 6 /* c */
            bipush 123
            if_icmpne 14
         8: .line 608
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 11
         9: .line 609
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* val */
        start local 10 // java.lang.String val
        10: .line 610
            aload 0 /* this */
            aload 1 /* segments */
            aload 10 /* val */
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.isQuerySegment:Z
            invokevirtual io.micronaut.http.uri.UriTemplate$UriTemplateParser.addRawContentSegment:(Ljava/util/List;Ljava/lang/String;Z)V
        end local 10 // java.lang.String val
        11: .line 612
      StackMap locals:
      StackMap stack:
            aload 3 /* buff */
            iconst_0
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual java.lang.StringBuilder.delete:(II)Ljava/lang/StringBuilder;
            pop
        12: .line 613
            aload 0 /* this */
            iconst_1
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
        13: .line 614
            goto 124
        14: .line 616
      StackMap locals:
      StackMap stack:
            iload 6 /* c */
            bipush 63
            if_icmpeq 15
            iload 6 /* c */
            bipush 35
            if_icmpne 16
        15: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.isQuerySegment:Z
        16: .line 619
      StackMap locals:
      StackMap stack:
            aload 3 /* buff */
            iload 6 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        17: .line 620
            goto 124
        18: .line 624
      StackMap locals:
      StackMap stack:
            iload 6 /* c */
            bipush 32
            if_icmpne 20
        19: .line 625
            goto 124
        20: .line 629
      StackMap locals:
      StackMap stack:
            iload 6 /* c */
            lookupswitch { // 4
                   42: 21
                   44: 29
                   58: 21
                  125: 30
              default: 110
          }
        21: .line 632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
            bipush 12
            if_icmpeq 22
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
            bipush 13
            if_icmpne 24
        22: .line 633
      StackMap locals:
      StackMap stack:
            aload 4 /* modBuff */
            iload 6 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        23: .line 634
            goto 124
        24: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* c */
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.modifier:C
        25: .line 637
            aload 0 /* this */
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
            bipush 11
            if_icmpne 26
            bipush 13
            goto 27
      StackMap locals:
      StackMap stack: io.micronaut.http.uri.UriTemplate$UriTemplateParser
        26: bipush 12
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[]
      StackMap stack: io.micronaut.http.uri.UriTemplate$UriTemplateParser int
        27: putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
        28: .line 638
            goto 124
        29: .line 640
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 11
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
        30: .line 643
      StackMap locals:
      StackMap stack:
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 85
        31: .line 644
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* val */
        start local 10 // java.lang.String val
        32: .line 649
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
            lookupswitch { // 7
                   35: 40
                   38: 63
                   43: 33
                   46: 47
                   47: 47
                   59: 56
                   63: 63
              default: 72
          }
        33: .line 651
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_0
            istore 13 /* encode */
        start local 13 // boolean encode
        34: .line 652
            aconst_null
            astore 11 /* prefix */
        start local 11 // java.lang.String prefix
        35: .line 653
            ldc ","
            astore 12 /* delimiter */
        start local 12 // java.lang.String delimiter
        36: .line 654
            iload 5 /* varCount */
            iconst_1
            if_icmpge 37
            iconst_1
            goto 38
      StackMap locals: java.lang.String java.lang.String int
      StackMap stack:
        37: iconst_0
      StackMap locals:
      StackMap stack: int
        38: istore 14 /* repeatPrefix */
        start local 14 // boolean repeatPrefix
        39: .line 655
            goto 78
        end local 14 // boolean repeatPrefix
        end local 13 // boolean encode
        end local 12 // java.lang.String delimiter
        end local 11 // java.lang.String prefix
        40: .line 657
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* encode */
        start local 13 // boolean encode
        41: .line 658
            iload 5 /* varCount */
            iconst_1
            if_icmpge 42
            iconst_1
            goto 43
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String top top int
      StackMap stack:
        42: iconst_0
      StackMap locals:
      StackMap stack: int
        43: istore 14 /* repeatPrefix */
        start local 14 // boolean repeatPrefix
        44: .line 659
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            astore 11 /* prefix */
        start local 11 // java.lang.String prefix
        45: .line 660
            ldc ","
            astore 12 /* delimiter */
        start local 12 // java.lang.String delimiter
        46: .line 661
            goto 78
        end local 14 // boolean repeatPrefix
        end local 13 // boolean encode
        end local 12 // java.lang.String delimiter
        end local 11 // java.lang.String prefix
        47: .line 664
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String
      StackMap stack:
            iconst_1
            istore 13 /* encode */
        start local 13 // boolean encode
        48: .line 665
            iload 5 /* varCount */
            iconst_1
            if_icmpge 49
            iconst_1
            goto 50
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String top top int
      StackMap stack:
        49: iconst_0
      StackMap locals:
      StackMap stack: int
        50: istore 14 /* repeatPrefix */
        start local 14 // boolean repeatPrefix
        51: .line 666
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            astore 11 /* prefix */
        start local 11 // java.lang.String prefix
        52: .line 667
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.modifier:C
            bipush 42
            if_icmpne 53
            aload 11 /* prefix */
            goto 54
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String java.lang.String top int int
      StackMap stack:
        53: ldc ","
      StackMap locals:
      StackMap stack: java.lang.String
        54: astore 12 /* delimiter */
        start local 12 // java.lang.String delimiter
        55: .line 668
            goto 78
        end local 14 // boolean repeatPrefix
        end local 13 // boolean encode
        end local 12 // java.lang.String delimiter
        end local 11 // java.lang.String prefix
        56: .line 670
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String
      StackMap stack:
            iconst_1
            istore 13 /* encode */
        start local 13 // boolean encode
        57: .line 671
            iconst_1
            istore 14 /* repeatPrefix */
        start local 14 // boolean repeatPrefix
        58: .line 672
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* val */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 61
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* prefix */
        start local 11 // java.lang.String prefix
        59: .line 673
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.modifier:C
            bipush 42
            if_icmpne 60
            aload 11 /* prefix */
            goto 61
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String java.lang.String top int int
      StackMap stack:
        60: ldc ","
      StackMap locals:
      StackMap stack: java.lang.String
        61: astore 12 /* delimiter */
        start local 12 // java.lang.String delimiter
        62: .line 674
            goto 78
        end local 14 // boolean repeatPrefix
        end local 13 // boolean encode
        end local 12 // java.lang.String delimiter
        end local 11 // java.lang.String prefix
        63: .line 677
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String
      StackMap stack:
            iconst_1
            istore 13 /* encode */
        start local 13 // boolean encode
        64: .line 678
            iconst_1
            istore 14 /* repeatPrefix */
        start local 14 // boolean repeatPrefix
        65: .line 679
            iload 5 /* varCount */
            iconst_1
            if_icmpge 66
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* val */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 61
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 67
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String top top int int
      StackMap stack:
        66: new java.lang.StringBuilder
            dup
            aload 10 /* val */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        67: astore 11 /* prefix */
        start local 11 // java.lang.String prefix
        68: .line 680
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.modifier:C
            bipush 42
            if_icmpne 69
            new java.lang.StringBuilder
            dup
            bipush 38
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* val */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 61
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 70
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String java.lang.String top int int
      StackMap stack:
        69: ldc ","
      StackMap locals:
      StackMap stack: java.lang.String
        70: astore 12 /* delimiter */
        start local 12 // java.lang.String delimiter
        71: .line 681
            goto 78
        end local 14 // boolean repeatPrefix
        end local 13 // boolean encode
        end local 12 // java.lang.String delimiter
        end local 11 // java.lang.String prefix
        72: .line 683
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String
      StackMap stack:
            iload 5 /* varCount */
            iconst_1
            if_icmpge 73
            iconst_1
            goto 74
      StackMap locals:
      StackMap stack:
        73: iconst_0
      StackMap locals:
      StackMap stack: int
        74: istore 14 /* repeatPrefix */
        start local 14 // boolean repeatPrefix
        75: .line 684
            iconst_1
            istore 13 /* encode */
        start local 13 // boolean encode
        76: .line 685
            aconst_null
            astore 11 /* prefix */
        start local 11 // java.lang.String prefix
        77: .line 686
            ldc ","
            astore 12 /* delimiter */
        start local 12 // java.lang.String delimiter
        78: .line 688
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] java.lang.String java.lang.String java.lang.String int int
      StackMap stack:
            aload 4 /* modBuff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 15 /* modifierStr */
        start local 15 // java.lang.String modifierStr
        79: .line 689
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.modifier:C
            istore 16 /* modifierChar */
        start local 16 // char modifierChar
        80: .line 690
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
            bipush 11
            if_icmpeq 81
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
            bipush 13
            if_icmpne 82
      StackMap locals: java.lang.String int
      StackMap stack:
        81: aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.varDelimiter:Ljava/lang/String;
            goto 83
      StackMap locals:
      StackMap stack:
        82: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
        83: astore 17 /* previous */
        start local 17 // java.lang.String previous
        84: .line 691
            aload 0 /* this */
            aload 1 /* segments */
            aload 10 /* val */
            aload 11 /* prefix */
            aload 12 /* delimiter */
            iload 13 /* encode */
            iload 14 /* repeatPrefix */
            aload 15 /* modifierStr */
            iload 16 /* modifierChar */
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
            aload 17 /* previous */
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.isQuerySegment:Z
            invokevirtual io.micronaut.http.uri.UriTemplate$UriTemplateParser.addVariableSegment:(Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;CCLjava/lang/String;Z)V
        end local 17 // java.lang.String previous
        end local 16 // char modifierChar
        end local 15 // java.lang.String modifierStr
        end local 14 // boolean repeatPrefix
        end local 13 // boolean encode
        end local 12 // java.lang.String delimiter
        end local 11 // java.lang.String prefix
        end local 10 // java.lang.String val
        85: .line 693
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[]
      StackMap stack:
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
            bipush 11
            if_icmpne 86
            iload 6 /* c */
            bipush 125
            if_icmpeq 86
            iconst_1
            goto 87
      StackMap locals:
      StackMap stack:
        86: iconst_0
      StackMap locals:
      StackMap stack: int
        87: istore 10 /* hasAnotherVar */
        start local 10 // boolean hasAnotherVar
        88: .line 694
            iload 10 /* hasAnotherVar */
            ifeq 100
        89: .line 696
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
            lookupswitch { // 5
                   38: 92
                   46: 94
                   47: 94
                   59: 90
                   63: 92
              default: 96
          }
        90: .line 698
      StackMap locals: int
      StackMap stack:
            aconst_null
            astore 11 /* delimiter */
        start local 11 // java.lang.String delimiter
        91: .line 699
            goto 97
        end local 11 // java.lang.String delimiter
        92: .line 702
      StackMap locals:
      StackMap stack:
            ldc "&"
            astore 11 /* delimiter */
        start local 11 // java.lang.String delimiter
        93: .line 703
            goto 97
        end local 11 // java.lang.String delimiter
        94: .line 706
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            astore 11 /* delimiter */
        start local 11 // java.lang.String delimiter
        95: .line 707
            goto 97
        end local 11 // java.lang.String delimiter
        96: .line 709
      StackMap locals:
      StackMap stack:
            ldc ","
            astore 11 /* delimiter */
        start local 11 // java.lang.String delimiter
        97: .line 711
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 11 /* delimiter */
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.varDelimiter:Ljava/lang/String;
        98: .line 712
            iinc 5 /* varCount */ 1
        end local 11 // java.lang.String delimiter
        99: .line 713
            goto 101
       100: .line 714
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* varCount */
       101: .line 716
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 10 /* hasAnotherVar */
            ifeq 102
            bipush 11
            goto 103
      StackMap locals:
      StackMap stack: io.micronaut.http.uri.UriTemplate$UriTemplateParser
       102: iconst_0
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int int int int char[] int
      StackMap stack: io.micronaut.http.uri.UriTemplate$UriTemplateParser int
       103: putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
       104: .line 717
            aload 4 /* modBuff */
            iconst_0
            aload 4 /* modBuff */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual java.lang.StringBuilder.delete:(II)Ljava/lang/StringBuilder;
            pop
       105: .line 718
            aload 3 /* buff */
            iconst_0
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual java.lang.StringBuilder.delete:(II)Ljava/lang/StringBuilder;
            pop
       106: .line 719
            aload 0 /* this */
            bipush 48
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.modifier:C
       107: .line 720
            iload 10 /* hasAnotherVar */
            ifne 124
       108: .line 721
            aload 0 /* this */
            bipush 48
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
       109: .line 723
            goto 124
        end local 10 // boolean hasAnotherVar
       110: .line 725
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.modifier:C
            lookupswitch { // 2
                   42: 111
                   58: 112
              default: 114
          }
       111: .line 727
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Expansion modifier * must be immediately followed by a closing brace '}'"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
       112: .line 729
      StackMap locals:
      StackMap stack:
            aload 4 /* modBuff */
            iload 6 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       113: .line 730
            goto 124
       114: .line 732
      StackMap locals:
      StackMap stack:
            aload 3 /* buff */
            iload 6 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       115: .line 733
            goto 124
       116: .line 738
      StackMap locals:
      StackMap stack:
            iload 6 /* c */
            lookupswitch { // 8
                   32: 117
                   35: 118
                   38: 118
                   43: 119
                   46: 119
                   47: 119
                   59: 118
                   63: 118
              default: 122
          }
       117: .line 740
      StackMap locals:
      StackMap stack:
            goto 124
       118: .line 745
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.isQuerySegment:Z
       119: .line 749
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* c */
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.operator:C
       120: .line 750
            aload 0 /* this */
            iconst_2
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
       121: .line 751
            goto 124
       122: .line 753
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_2
            putfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
       123: .line 754
            aload 3 /* buff */
            iload 6 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 6 // char c
       124: .line 604
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int top int int char[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
       125: iload 7
            iload 8
            if_icmplt 5
       126: .line 761
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.state:I
            ifne 129
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 129
       127: .line 762
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* val */
        start local 6 // java.lang.String val
       128: .line 763
            aload 0 /* this */
            aload 1 /* segments */
            aload 6 /* val */
            aload 0 /* this */
            getfield io.micronaut.http.uri.UriTemplate$UriTemplateParser.isQuerySegment:Z
            invokevirtual io.micronaut.http.uri.UriTemplate$UriTemplateParser.addRawContentSegment:(Ljava/util/List;Ljava/lang/String;Z)V
        end local 6 // java.lang.String val
       129: .line 765
      StackMap locals: io.micronaut.http.uri.UriTemplate$UriTemplateParser java.util.List char[] java.lang.StringBuilder java.lang.StringBuilder int
      StackMap stack:
            return
        end local 5 // int varCount
        end local 4 // java.lang.StringBuilder modBuff
        end local 3 // java.lang.StringBuilder buff
        end local 2 // char[] chars
        end local 1 // java.util.List segments
        end local 0 // io.micronaut.http.uri.UriTemplate$UriTemplateParser this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  130     0           this  Lio/micronaut/http/uri/UriTemplate$UriTemplateParser;
            0  130     1       segments  Ljava/util/List<Lio/micronaut/http/uri/UriTemplate$PathSegment;>;
            1  130     2          chars  [C
            2  130     3           buff  Ljava/lang/StringBuilder;
            3  130     4        modBuff  Ljava/lang/StringBuilder;
            4  130     5       varCount  I
            6  124     6              c  C
           10   11    10            val  Ljava/lang/String;
           32   85    10            val  Ljava/lang/String;
           35   40    11         prefix  Ljava/lang/String;
           45   47    11         prefix  Ljava/lang/String;
           52   56    11         prefix  Ljava/lang/String;
           59   63    11         prefix  Ljava/lang/String;
           68   72    11         prefix  Ljava/lang/String;
           77   85    11         prefix  Ljava/lang/String;
           36   40    12      delimiter  Ljava/lang/String;
           46   47    12      delimiter  Ljava/lang/String;
           55   56    12      delimiter  Ljava/lang/String;
           62   63    12      delimiter  Ljava/lang/String;
           71   72    12      delimiter  Ljava/lang/String;
           78   85    12      delimiter  Ljava/lang/String;
           34   40    13         encode  Z
           41   47    13         encode  Z
           48   56    13         encode  Z
           57   63    13         encode  Z
           64   72    13         encode  Z
           76   85    13         encode  Z
           39   40    14   repeatPrefix  Z
           44   47    14   repeatPrefix  Z
           51   56    14   repeatPrefix  Z
           58   63    14   repeatPrefix  Z
           65   72    14   repeatPrefix  Z
           75   85    14   repeatPrefix  Z
           79   85    15    modifierStr  Ljava/lang/String;
           80   85    16   modifierChar  C
           84   85    17       previous  Ljava/lang/String;
           88  110    10  hasAnotherVar  Z
           91   92    11      delimiter  Ljava/lang/String;
           93   94    11      delimiter  Ljava/lang/String;
           95   96    11      delimiter  Ljava/lang/String;
           97   99    11      delimiter  Ljava/lang/String;
          128  129     6            val  Ljava/lang/String;
    Signature: (Ljava/util/List<Lio/micronaut/http/uri/UriTemplate$PathSegment;>;)V
    MethodParameters:
          Name  Flags
      segments  

  protected void addRawContentSegment(java.util.List<io.micronaut.http.uri.UriTemplate$PathSegment>, java.lang.String, );
    descriptor: (Ljava/util/List;Ljava/lang/String;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.micronaut.http.uri.UriTemplate$UriTemplateParser this
        start local 1 // java.util.List segments
        start local 2 // java.lang.String value
        start local 3 // boolean isQuerySegment
         0: .line 775
            aload 1 /* segments */
            new io.micronaut.http.uri.UriTemplate$UriTemplateParser$RawPathSegment
            dup
            iload 3 /* isQuerySegment */
            aload 2 /* value */
            invokespecial io.micronaut.http.uri.UriTemplate$UriTemplateParser$RawPathSegment.<init>:(ZLjava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 776
            return
        end local 3 // boolean isQuerySegment
        end local 2 // java.lang.String value
        end local 1 // java.util.List segments
        end local 0 // io.micronaut.http.uri.UriTemplate$UriTemplateParser this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lio/micronaut/http/uri/UriTemplate$UriTemplateParser;
            0    2     1        segments  Ljava/util/List<Lio/micronaut/http/uri/UriTemplate$PathSegment;>;
            0    2     2           value  Ljava/lang/String;
            0    2     3  isQuerySegment  Z
    Signature: (Ljava/util/List<Lio/micronaut/http/uri/UriTemplate$PathSegment;>;Ljava/lang/String;Z)V
    MethodParameters:
                Name  Flags
      segments        
      value           
      isQuerySegment  

  protected void addVariableSegment(java.util.List<io.micronaut.http.uri.UriTemplate$PathSegment>, java.lang.String, java.lang.String, java.lang.String, boolean, boolean, java.lang.String, char, char, java.lang.String, );
    descriptor: (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;CCLjava/lang/String;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=14, locals=12, args_size=12
        start local 0 // io.micronaut.http.uri.UriTemplate$UriTemplateParser this
        start local 1 // java.util.List segments
        start local 2 // java.lang.String variable
        start local 3 // java.lang.String prefix
        start local 4 // java.lang.String delimiter
        start local 5 // boolean encode
        start local 6 // boolean repeatPrefix
        start local 7 // java.lang.String modifierStr
        start local 8 // char modifierChar
        start local 9 // char operator
        start local 10 // java.lang.String previousDelimiter
        start local 11 // boolean isQuerySegment
         0: .line 803
            aload 1 /* segments */
            new io.micronaut.http.uri.UriTemplate$UriTemplateParser$VariablePathSegment
            dup
            aload 0 /* this */
            iload 11 /* isQuerySegment */
            aload 2 /* variable */
            aload 3 /* prefix */
            aload 4 /* delimiter */
            iload 5 /* encode */
            iload 8 /* modifierChar */
            iload 9 /* operator */
            aload 7 /* modifierStr */
            aload 10 /* previousDelimiter */
            iload 6 /* repeatPrefix */
            invokespecial io.micronaut.http.uri.UriTemplate$UriTemplateParser$VariablePathSegment.<init>:(Lio/micronaut/http/uri/UriTemplate$UriTemplateParser;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZCCLjava/lang/String;Ljava/lang/String;Z)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 804
            return
        end local 11 // boolean isQuerySegment
        end local 10 // java.lang.String previousDelimiter
        end local 9 // char operator
        end local 8 // char modifierChar
        end local 7 // java.lang.String modifierStr
        end local 6 // boolean repeatPrefix
        end local 5 // boolean encode
        end local 4 // java.lang.String delimiter
        end local 3 // java.lang.String prefix
        end local 2 // java.lang.String variable
        end local 1 // java.util.List segments
        end local 0 // io.micronaut.http.uri.UriTemplate$UriTemplateParser this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lio/micronaut/http/uri/UriTemplate$UriTemplateParser;
            0    2     1           segments  Ljava/util/List<Lio/micronaut/http/uri/UriTemplate$PathSegment;>;
            0    2     2           variable  Ljava/lang/String;
            0    2     3             prefix  Ljava/lang/String;
            0    2     4          delimiter  Ljava/lang/String;
            0    2     5             encode  Z
            0    2     6       repeatPrefix  Z
            0    2     7        modifierStr  Ljava/lang/String;
            0    2     8       modifierChar  C
            0    2     9           operator  C
            0    2    10  previousDelimiter  Ljava/lang/String;
            0    2    11     isQuerySegment  Z
    Signature: (Ljava/util/List<Lio/micronaut/http/uri/UriTemplate$PathSegment;>;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/lang/String;CCLjava/lang/String;Z)V
    MethodParameters:
                   Name  Flags
      segments           
      variable           
      prefix             
      delimiter          
      encode             
      repeatPrefix       
      modifierStr        
      modifierChar       
      operator           
      previousDelimiter  
      isQuerySegment     
}
SourceFile: "UriTemplate.java"
NestHost: io.micronaut.http.uri.UriTemplate
InnerClasses:
  protected abstract PathSegment = io.micronaut.http.uri.UriTemplate$PathSegment of io.micronaut.http.uri.UriTemplate
  protected UriTemplateParser = io.micronaut.http.uri.UriTemplate$UriTemplateParser of io.micronaut.http.uri.UriTemplate
  private RawPathSegment = io.micronaut.http.uri.UriTemplate$UriTemplateParser$RawPathSegment of io.micronaut.http.uri.UriTemplate$UriTemplateParser
  private VariablePathSegment = io.micronaut.http.uri.UriTemplate$UriTemplateParser$VariablePathSegment of io.micronaut.http.uri.UriTemplate$UriTemplateParser