public abstract class org.springframework.web.util.UriComponents implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.web.util.UriComponents
  super_class: java.lang.Object
{
  private static final java.util.regex.Pattern NAMES_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.String scheme;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private final java.lang.String fragment;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 51
            ldc "\\{([^/]+?)}"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.springframework.web.util.UriComponents.NAMES_PATTERN:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.springframework.web.util.UriComponents this
        start local 1 // java.lang.String scheme
        start local 2 // java.lang.String fragment
         0: .line 61
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            aload 1 /* scheme */
            putfield org.springframework.web.util.UriComponents.scheme:Ljava/lang/String;
         2: .line 63
            aload 0 /* this */
            aload 2 /* fragment */
            putfield org.springframework.web.util.UriComponents.fragment:Ljava/lang/String;
         3: .line 64
            return
        end local 2 // java.lang.String fragment
        end local 1 // java.lang.String scheme
        end local 0 // org.springframework.web.util.UriComponents this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/springframework/web/util/UriComponents;
            0    4     1    scheme  Ljava/lang/String;
            0    4     2  fragment  Ljava/lang/String;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      scheme    
      fragment  

  public final java.lang.String getScheme();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.util.UriComponents this
         0: .line 74
            aload 0 /* this */
            getfield org.springframework.web.util.UriComponents.scheme:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.web.util.UriComponents this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/util/UriComponents;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public final java.lang.String getFragment();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.util.UriComponents this
         0: .line 82
            aload 0 /* this */
            getfield org.springframework.web.util.UriComponents.fragment:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.web.util.UriComponents this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/util/UriComponents;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public abstract java.lang.String getSchemeSpecificPart();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public abstract java.lang.String getUserInfo();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public abstract java.lang.String getHost();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public abstract int getPort();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String getPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public abstract java.util.List<java.lang.String> getPathSegments();
    descriptor: ()Ljava/util/List;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public abstract java.lang.String getQuery();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public abstract org.springframework.util.MultiValueMap<java.lang.String, java.lang.String> getQueryParams();
    descriptor: ()Lorg/springframework/util/MultiValueMap;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Lorg/springframework/util/MultiValueMap<Ljava/lang/String;Ljava/lang/String;>;

  public final org.springframework.web.util.UriComponents encode();
    descriptor: ()Lorg/springframework/web/util/UriComponents;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.web.util.UriComponents this
         0: .line 142
            aload 0 /* this */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual org.springframework.web.util.UriComponents.encode:(Ljava/nio/charset/Charset;)Lorg/springframework/web/util/UriComponents;
            areturn
        end local 0 // org.springframework.web.util.UriComponents this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/util/UriComponents;

  public abstract org.springframework.web.util.UriComponents encode(java.nio.charset.Charset);
    descriptor: (Ljava/nio/charset/Charset;)Lorg/springframework/web/util/UriComponents;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      charset  

  public final org.springframework.web.util.UriComponents expand(java.util.Map<java.lang.String, ?>);
    descriptor: (Ljava/util/Map;)Lorg/springframework/web/util/UriComponents;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.web.util.UriComponents this
        start local 1 // java.util.Map uriVariables
         0: .line 160
            aload 1 /* uriVariables */
            ldc "'uriVariables' must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 161
            aload 0 /* this */
            new org.springframework.web.util.UriComponents$MapTemplateVariables
            dup
            aload 1 /* uriVariables */
            invokespecial org.springframework.web.util.UriComponents$MapTemplateVariables.<init>:(Ljava/util/Map;)V
            invokevirtual org.springframework.web.util.UriComponents.expandInternal:(Lorg/springframework/web/util/UriComponents$UriTemplateVariables;)Lorg/springframework/web/util/UriComponents;
            areturn
        end local 1 // java.util.Map uriVariables
        end local 0 // org.springframework.web.util.UriComponents this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/springframework/web/util/UriComponents;
            0    2     1  uriVariables  Ljava/util/Map<Ljava/lang/String;*>;
    Signature: (Ljava/util/Map<Ljava/lang/String;*>;)Lorg/springframework/web/util/UriComponents;
    MethodParameters:
              Name  Flags
      uriVariables  

  public final org.springframework.web.util.UriComponents expand(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)Lorg/springframework/web/util/UriComponents;
    flags: (0x0091) ACC_PUBLIC, ACC_FINAL, ACC_VARARGS
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.springframework.web.util.UriComponents this
        start local 1 // java.lang.Object[] uriVariableValues
         0: .line 171
            aload 1 /* uriVariableValues */
            ldc "'uriVariableValues' must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 172
            aload 0 /* this */
            new org.springframework.web.util.UriComponents$VarArgsTemplateVariables
            dup
            aload 1 /* uriVariableValues */
            invokespecial org.springframework.web.util.UriComponents$VarArgsTemplateVariables.<init>:([Ljava/lang/Object;)V
            invokevirtual org.springframework.web.util.UriComponents.expandInternal:(Lorg/springframework/web/util/UriComponents$UriTemplateVariables;)Lorg/springframework/web/util/UriComponents;
            areturn
        end local 1 // java.lang.Object[] uriVariableValues
        end local 0 // org.springframework.web.util.UriComponents this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/springframework/web/util/UriComponents;
            0    2     1  uriVariableValues  [Ljava/lang/Object;
    MethodParameters:
                   Name  Flags
      uriVariableValues  

  public final org.springframework.web.util.UriComponents expand(org.springframework.web.util.UriComponents$UriTemplateVariables);
    descriptor: (Lorg/springframework/web/util/UriComponents$UriTemplateVariables;)Lorg/springframework/web/util/UriComponents;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.util.UriComponents this
        start local 1 // org.springframework.web.util.UriComponents$UriTemplateVariables uriVariables
         0: .line 182
            aload 1 /* uriVariables */
            ldc "'uriVariables' must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 183
            aload 0 /* this */
            aload 1 /* uriVariables */
            invokevirtual org.springframework.web.util.UriComponents.expandInternal:(Lorg/springframework/web/util/UriComponents$UriTemplateVariables;)Lorg/springframework/web/util/UriComponents;
            areturn
        end local 1 // org.springframework.web.util.UriComponents$UriTemplateVariables uriVariables
        end local 0 // org.springframework.web.util.UriComponents this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/springframework/web/util/UriComponents;
            0    2     1  uriVariables  Lorg/springframework/web/util/UriComponents$UriTemplateVariables;
    MethodParameters:
              Name  Flags
      uriVariables  

  abstract org.springframework.web.util.UriComponents expandInternal(org.springframework.web.util.UriComponents$UriTemplateVariables);
    descriptor: (Lorg/springframework/web/util/UriComponents$UriTemplateVariables;)Lorg/springframework/web/util/UriComponents;
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
              Name  Flags
      uriVariables  

  public abstract org.springframework.web.util.UriComponents normalize();
    descriptor: ()Lorg/springframework/web/util/UriComponents;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.String toUriString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.net.URI toUri();
    descriptor: ()Ljava/net/URI;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public final java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.util.UriComponents this
         0: .line 227
            aload 0 /* this */
            invokevirtual org.springframework.web.util.UriComponents.toUriString:()Ljava/lang/String;
            areturn
        end local 0 // org.springframework.web.util.UriComponents this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/util/UriComponents;

  protected abstract void copyToUriComponentsBuilder(org.springframework.web.util.UriComponentsBuilder);
    descriptor: (Lorg/springframework/web/util/UriComponentsBuilder;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      builder  

  static java.lang.String expandUriComponent(java.lang.String, org.springframework.web.util.UriComponents$UriTemplateVariables);
    descriptor: (Ljava/lang/String;Lorg/springframework/web/util/UriComponents$UriTemplateVariables;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String source
        start local 1 // org.springframework.web.util.UriComponents$UriTemplateVariables uriVariables
         0: .line 241
            aload 0 /* source */
            aload 1 /* uriVariables */
            aconst_null
            invokestatic org.springframework.web.util.UriComponents.expandUriComponent:(Ljava/lang/String;Lorg/springframework/web/util/UriComponents$UriTemplateVariables;Ljava/util/function/UnaryOperator;)Ljava/lang/String;
            areturn
        end local 1 // org.springframework.web.util.UriComponents$UriTemplateVariables uriVariables
        end local 0 // java.lang.String source
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0        source  Ljava/lang/String;
            0    1     1  uriVariables  Lorg/springframework/web/util/UriComponents$UriTemplateVariables;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
    MethodParameters:
              Name  Flags
      source        
      uriVariables  

  static java.lang.String expandUriComponent(java.lang.String, org.springframework.web.util.UriComponents$UriTemplateVariables, java.util.function.UnaryOperator<java.lang.String>);
    descriptor: (Ljava/lang/String;Lorg/springframework/web/util/UriComponents$UriTemplateVariables;Ljava/util/function/UnaryOperator;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // java.lang.String source
        start local 1 // org.springframework.web.util.UriComponents$UriTemplateVariables uriVariables
        start local 2 // java.util.function.UnaryOperator encoder
         0: .line 248
            aload 0 /* source */
            ifnonnull 2
         1: .line 249
            aconst_null
            areturn
         2: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            bipush 123
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 4
         3: .line 252
            aload 0 /* source */
            areturn
         4: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* source */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 6
         5: .line 255
            aload 0 /* source */
            invokestatic org.springframework.web.util.UriComponents.sanitizeSource:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* source */
         6: .line 257
      StackMap locals:
      StackMap stack:
            getstatic org.springframework.web.util.UriComponents.NAMES_PATTERN:Ljava/util/regex/Pattern;
            aload 0 /* source */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 3 /* matcher */
        start local 3 // java.util.regex.Matcher matcher
         7: .line 258
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 4 /* sb */
        start local 4 // java.lang.StringBuffer sb
         8: .line 259
            goto 19
         9: .line 260
      StackMap locals: java.util.regex.Matcher java.lang.StringBuffer
      StackMap stack:
            aload 3 /* matcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 5 /* match */
        start local 5 // java.lang.String match
        10: .line 261
            aload 5 /* match */
            invokestatic org.springframework.web.util.UriComponents.getVariableName:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* varName */
        start local 6 // java.lang.String varName
        11: .line 262
            aload 1 /* uriVariables */
            aload 6 /* varName */
            invokeinterface org.springframework.web.util.UriComponents$UriTemplateVariables.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            astore 7 /* varValue */
        start local 7 // java.lang.Object varValue
        12: .line 263
            getstatic org.springframework.web.util.UriComponents$UriTemplateVariables.SKIP_VALUE:Ljava/lang/Object;
            aload 7 /* varValue */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 264
            goto 19
        14: .line 266
      StackMap locals: java.lang.String java.lang.String java.lang.Object
      StackMap stack:
            aload 7 /* varValue */
            invokestatic org.springframework.web.util.UriComponents.getVariableValueAsString:(Ljava/lang/Object;)Ljava/lang/String;
            astore 8 /* formatted */
        start local 8 // java.lang.String formatted
        15: .line 267
            aload 2 /* encoder */
            ifnull 16
            aload 2 /* encoder */
            aload 8 /* formatted */
            invokeinterface java.util.function.UnaryOperator.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            goto 17
      StackMap locals: java.lang.String
      StackMap stack:
        16: aload 8 /* formatted */
            invokestatic java.util.regex.Matcher.quoteReplacement:(Ljava/lang/String;)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        17: astore 8 /* formatted */
        18: .line 268
            aload 3 /* matcher */
            aload 4 /* sb */
            aload 8 /* formatted */
            invokevirtual java.util.regex.Matcher.appendReplacement:(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;
            pop
        end local 8 // java.lang.String formatted
        end local 7 // java.lang.Object varValue
        end local 6 // java.lang.String varName
        end local 5 // java.lang.String match
        19: .line 259
      StackMap locals: java.lang.String org.springframework.web.util.UriComponents$UriTemplateVariables java.util.function.UnaryOperator java.util.regex.Matcher java.lang.StringBuffer
      StackMap stack:
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifne 9
        20: .line 270
            aload 3 /* matcher */
            aload 4 /* sb */
            invokevirtual java.util.regex.Matcher.appendTail:(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;
            pop
        21: .line 271
            aload 4 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.StringBuffer sb
        end local 3 // java.util.regex.Matcher matcher
        end local 2 // java.util.function.UnaryOperator encoder
        end local 1 // org.springframework.web.util.UriComponents$UriTemplateVariables uriVariables
        end local 0 // java.lang.String source
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0        source  Ljava/lang/String;
            0   22     1  uriVariables  Lorg/springframework/web/util/UriComponents$UriTemplateVariables;
            0   22     2       encoder  Ljava/util/function/UnaryOperator<Ljava/lang/String;>;
            7   22     3       matcher  Ljava/util/regex/Matcher;
            8   22     4            sb  Ljava/lang/StringBuffer;
           10   19     5         match  Ljava/lang/String;
           11   19     6       varName  Ljava/lang/String;
           12   19     7      varValue  Ljava/lang/Object;
           15   19     8     formatted  Ljava/lang/String;
    Signature: (Ljava/lang/String;Lorg/springframework/web/util/UriComponents$UriTemplateVariables;Ljava/util/function/UnaryOperator<Ljava/lang/String;>;)Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
      1:
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      source        
      uriVariables  
      encoder       

  private static java.lang.String sanitizeSource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.lang.String source
         0: .line 278
            iconst_0
            istore 1 /* level */
        start local 1 // int level
         1: .line 279
            iconst_0
            istore 2 /* lastCharIndex */
        start local 2 // int lastCharIndex
         2: .line 280
            aload 0 /* source */
            invokevirtual java.lang.String.length:()I
            newarray 5
            astore 3 /* chars */
        start local 3 // char[] chars
         3: .line 281
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 14
         5: .line 282
      StackMap locals: java.lang.String int int char[] int
      StackMap stack:
            aload 0 /* source */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         6: .line 283
            iload 5 /* c */
            bipush 123
            if_icmpne 8
         7: .line 284
            iinc 1 /* level */ 1
         8: .line 286
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            bipush 125
            if_icmpne 10
         9: .line 287
            iinc 1 /* level */ -1
        10: .line 289
      StackMap locals:
      StackMap stack:
            iload 1 /* level */
            iconst_1
            if_icmpgt 13
            iload 1 /* level */
            iconst_1
            if_icmpne 12
            iload 5 /* c */
            bipush 125
            if_icmpne 12
        11: .line 290
            goto 13
        12: .line 292
      StackMap locals:
      StackMap stack:
            aload 3 /* chars */
            iload 2 /* lastCharIndex */
            iinc 2 /* lastCharIndex */ 1
            iload 5 /* c */
            castore
        end local 5 // char c
        13: .line 281
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            aload 0 /* source */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 4 // int i
        15: .line 294
            new java.lang.String
            dup
            aload 3 /* chars */
            iconst_0
            iload 2 /* lastCharIndex */
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 3 // char[] chars
        end local 2 // int lastCharIndex
        end local 1 // int level
        end local 0 // java.lang.String source
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0         source  Ljava/lang/String;
            1   16     1          level  I
            2   16     2  lastCharIndex  I
            3   16     3          chars  [C
            4   15     4              i  I
            6   13     5              c  C
    MethodParameters:
        Name  Flags
      source  

  private static java.lang.String getVariableName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String match
         0: .line 298
            aload 0 /* match */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 1 /* colonIdx */
        start local 1 // int colonIdx
         1: .line 299
            iload 1 /* colonIdx */
            iconst_m1
            if_icmpeq 2
            aload 0 /* match */
            iconst_0
            iload 1 /* colonIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            goto 3
      StackMap locals: int
      StackMap stack:
         2: aload 0 /* match */
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
        end local 1 // int colonIdx
        end local 0 // java.lang.String match
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0     match  Ljava/lang/String;
            1    4     1  colonIdx  I
    MethodParameters:
       Name  Flags
      match  

  private static java.lang.String getVariableValueAsString(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object variableValue
         0: .line 303
            aload 0 /* variableValue */
            ifnull 1
            aload 0 /* variableValue */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // java.lang.Object variableValue
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0  variableValue  Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      variableValue  
}
SourceFile: "UriComponents.java"
NestMembers:
  org.springframework.web.util.UriComponents$MapTemplateVariables  org.springframework.web.util.UriComponents$UriTemplateVariables  org.springframework.web.util.UriComponents$VarArgsTemplateVariables
InnerClasses:
  private MapTemplateVariables = org.springframework.web.util.UriComponents$MapTemplateVariables of org.springframework.web.util.UriComponents
  public abstract UriTemplateVariables = org.springframework.web.util.UriComponents$UriTemplateVariables of org.springframework.web.util.UriComponents
  private VarArgsTemplateVariables = org.springframework.web.util.UriComponents$VarArgsTemplateVariables of org.springframework.web.util.UriComponents