public class org.springframework.util.AntPathMatcher$AntPathStringMatcher
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.util.AntPathMatcher$AntPathStringMatcher
  super_class: java.lang.Object
{
  private static final java.util.regex.Pattern GLOB_PATTERN;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String DEFAULT_VARIABLE_PATTERN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "(.*)"

  private final java.util.regex.Pattern pattern;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.lang.String> variableNames;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

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

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.util.AntPathMatcher$AntPathStringMatcher this
        start local 1 // java.lang.String pattern
         0: .line 636
            aload 0 /* this */
            aload 1 /* pattern */
            iconst_1
            invokespecial org.springframework.util.AntPathMatcher$AntPathStringMatcher.<init>:(Ljava/lang/String;Z)V
         1: .line 637
            return
        end local 1 // java.lang.String pattern
        end local 0 // org.springframework.util.AntPathMatcher$AntPathStringMatcher this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/springframework/util/AntPathMatcher$AntPathStringMatcher;
            0    2     1  pattern  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      pattern  

  public void <init>(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.springframework.util.AntPathMatcher$AntPathStringMatcher this
        start local 1 // java.lang.String pattern
        start local 2 // boolean caseSensitive
         0: .line 639
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 633
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.springframework.util.AntPathMatcher$AntPathStringMatcher.variableNames:Ljava/util/List;
         2: .line 640
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* patternBuilder */
        start local 3 // java.lang.StringBuilder patternBuilder
         3: .line 641
            getstatic org.springframework.util.AntPathMatcher$AntPathStringMatcher.GLOB_PATTERN:Ljava/util/regex/Pattern;
            aload 1 /* pattern */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 4 /* matcher */
        start local 4 // java.util.regex.Matcher matcher
         4: .line 642
            iconst_0
            istore 5 /* end */
        start local 5 // int end
         5: .line 643
            goto 27
         6: .line 644
      StackMap locals: org.springframework.util.AntPathMatcher$AntPathStringMatcher java.lang.String int java.lang.StringBuilder java.util.regex.Matcher int
      StackMap stack:
            aload 3 /* patternBuilder */
            aload 0 /* this */
            aload 1 /* pattern */
            iload 5 /* end */
            aload 4 /* matcher */
            invokevirtual java.util.regex.Matcher.start:()I
            invokevirtual org.springframework.util.AntPathMatcher$AntPathStringMatcher.quote:(Ljava/lang/String;II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 645
            aload 4 /* matcher */
            invokevirtual java.util.regex.Matcher.group:()Ljava/lang/String;
            astore 6 /* match */
        start local 6 // java.lang.String match
         8: .line 646
            ldc "?"
            aload 6 /* match */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 647
            aload 3 /* patternBuilder */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        10: .line 648
            goto 26
        11: .line 649
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "*"
            aload 6 /* match */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 650
            aload 3 /* patternBuilder */
            ldc ".*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 651
            goto 26
        14: .line 652
      StackMap locals:
      StackMap stack:
            aload 6 /* match */
            ldc "{"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 26
            aload 6 /* match */
            ldc "}"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 26
        15: .line 653
            aload 6 /* match */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 7 /* colonIdx */
        start local 7 // int colonIdx
        16: .line 654
            iload 7 /* colonIdx */
            iconst_m1
            if_icmpne 20
        17: .line 655
            aload 3 /* patternBuilder */
            ldc "(.*)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 656
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPathStringMatcher.variableNames:Ljava/util/List;
            aload 4 /* matcher */
            iconst_1
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 657
            goto 26
        20: .line 659
      StackMap locals: int
      StackMap stack:
            aload 6 /* match */
            iload 7 /* colonIdx */
            iconst_1
            iadd
            aload 6 /* match */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 8 /* variablePattern */
        start local 8 // java.lang.String variablePattern
        21: .line 660
            aload 3 /* patternBuilder */
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        22: .line 661
            aload 3 /* patternBuilder */
            aload 8 /* variablePattern */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 662
            aload 3 /* patternBuilder */
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        24: .line 663
            aload 6 /* match */
            iconst_1
            iload 7 /* colonIdx */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 9 /* variableName */
        start local 9 // java.lang.String variableName
        25: .line 664
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPathStringMatcher.variableNames:Ljava/util/List;
            aload 9 /* variableName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.String variableName
        end local 8 // java.lang.String variablePattern
        end local 7 // int colonIdx
        26: .line 667
      StackMap locals:
      StackMap stack:
            aload 4 /* matcher */
            invokevirtual java.util.regex.Matcher.end:()I
            istore 5 /* end */
        end local 6 // java.lang.String match
        27: .line 643
      StackMap locals:
      StackMap stack:
            aload 4 /* matcher */
            invokevirtual java.util.regex.Matcher.find:()Z
            ifne 6
        28: .line 669
            aload 3 /* patternBuilder */
            aload 0 /* this */
            aload 1 /* pattern */
            iload 5 /* end */
            aload 1 /* pattern */
            invokevirtual java.lang.String.length:()I
            invokevirtual org.springframework.util.AntPathMatcher$AntPathStringMatcher.quote:(Ljava/lang/String;II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 670
            aload 0 /* this */
            iload 2 /* caseSensitive */
            ifeq 30
            aload 3 /* patternBuilder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            goto 31
        30: .line 671
      StackMap locals:
      StackMap stack: org.springframework.util.AntPathMatcher$AntPathStringMatcher
            aload 3 /* patternBuilder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_2
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
        31: .line 670
      StackMap locals: org.springframework.util.AntPathMatcher$AntPathStringMatcher java.lang.String int java.lang.StringBuilder java.util.regex.Matcher int
      StackMap stack: org.springframework.util.AntPathMatcher$AntPathStringMatcher java.util.regex.Pattern
            putfield org.springframework.util.AntPathMatcher$AntPathStringMatcher.pattern:Ljava/util/regex/Pattern;
        32: .line 672
            return
        end local 5 // int end
        end local 4 // java.util.regex.Matcher matcher
        end local 3 // java.lang.StringBuilder patternBuilder
        end local 2 // boolean caseSensitive
        end local 1 // java.lang.String pattern
        end local 0 // org.springframework.util.AntPathMatcher$AntPathStringMatcher this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   33     0             this  Lorg/springframework/util/AntPathMatcher$AntPathStringMatcher;
            0   33     1          pattern  Ljava/lang/String;
            0   33     2    caseSensitive  Z
            3   33     3   patternBuilder  Ljava/lang/StringBuilder;
            4   33     4          matcher  Ljava/util/regex/Matcher;
            5   33     5              end  I
            8   27     6            match  Ljava/lang/String;
           16   26     7         colonIdx  I
           21   26     8  variablePattern  Ljava/lang/String;
           25   26     9     variableName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      pattern        
      caseSensitive  

  private java.lang.String quote(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.springframework.util.AntPathMatcher$AntPathStringMatcher this
        start local 1 // java.lang.String s
        start local 2 // int start
        start local 3 // int end
         0: .line 675
            iload 2 /* start */
            iload 3 /* end */
            if_icmpne 2
         1: .line 676
            ldc ""
            areturn
         2: .line 678
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            iload 2 /* start */
            iload 3 /* end */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.util.regex.Pattern.quote:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 3 // int end
        end local 2 // int start
        end local 1 // java.lang.String s
        end local 0 // org.springframework.util.AntPathMatcher$AntPathStringMatcher this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/springframework/util/AntPathMatcher$AntPathStringMatcher;
            0    3     1      s  Ljava/lang/String;
            0    3     2  start  I
            0    3     3    end  I
    MethodParameters:
       Name  Flags
      s      
      start  
      end    

  public boolean matchStrings(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.springframework.util.AntPathMatcher$AntPathStringMatcher this
        start local 1 // java.lang.String str
        start local 2 // java.util.Map uriTemplateVariables
         0: .line 686
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPathStringMatcher.pattern:Ljava/util/regex/Pattern;
            aload 1 /* str */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 3 /* matcher */
        start local 3 // java.util.regex.Matcher matcher
         1: .line 687
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 17
         2: .line 688
            aload 2 /* uriTemplateVariables */
            ifnull 16
         3: .line 690
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPathStringMatcher.variableNames:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.groupCount:()I
            if_icmpeq 9
         4: .line 691
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The number of capturing groups in the pattern segment "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 692
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPathStringMatcher.pattern:Ljava/util/regex/Pattern;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not match the number of URI template variables it defines, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 693
            ldc "which can occur if capturing groups are used in a URI template regex. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 694
            ldc "Use non-capturing groups instead."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 691
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 696
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
            iconst_1
            istore 4 /* i */
        start local 4 // int i
        10: goto 15
        11: .line 697
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.AntPathMatcher$AntPathStringMatcher.variableNames:Ljava/util/List;
            iload 4 /* i */
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* name */
        start local 5 // java.lang.String name
        12: .line 698
            aload 3 /* matcher */
            iload 4 /* i */
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            astore 6 /* value */
        start local 6 // java.lang.String value
        13: .line 699
            aload 2 /* uriTemplateVariables */
            aload 5 /* name */
            aload 6 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.String value
        end local 5 // java.lang.String name
        14: .line 696
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 4 /* i */
            aload 3 /* matcher */
            invokevirtual java.util.regex.Matcher.groupCount:()I
            if_icmple 11
        end local 4 // int i
        16: .line 702
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        17: .line 705
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // java.util.regex.Matcher matcher
        end local 2 // java.util.Map uriTemplateVariables
        end local 1 // java.lang.String str
        end local 0 // org.springframework.util.AntPathMatcher$AntPathStringMatcher this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   18     0                  this  Lorg/springframework/util/AntPathMatcher$AntPathStringMatcher;
            0   18     1                   str  Ljava/lang/String;
            0   18     2  uriTemplateVariables  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1   18     3               matcher  Ljava/util/regex/Matcher;
           10   16     4                     i  I
           12   14     5                  name  Ljava/lang/String;
           13   14     6                 value  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
                      Name  Flags
      str                   
      uriTemplateVariables  
}
SourceFile: "AntPathMatcher.java"
NestHost: org.springframework.util.AntPathMatcher
InnerClasses:
  protected AntPathStringMatcher = org.springframework.util.AntPathMatcher$AntPathStringMatcher of org.springframework.util.AntPathMatcher