public class sun.nio.fs.Globs
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.nio.fs.Globs
  super_class: java.lang.Object
{
  private static final java.lang.String regexMetaChars;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: ".^$+{[]|()"

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

  private static char EOL;
    descriptor: C
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 43
            iconst_0
            putstatic sun.nio.fs.Globs.EOL:C
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.fs.Globs this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.nio.fs.Globs this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/fs/Globs;

  private static boolean isRegexMeta(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 37
            ldc ".^$+{[]|()"
            iload 0 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private static boolean isGlobMeta(char);
    descriptor: (C)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // char c
         0: .line 41
            ldc "\\*?[{"
            iload 0 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     c  C
    MethodParameters:
      Name  Flags
      c     

  private static char next(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)C
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String glob
        start local 1 // int i
         0: .line 46
            iload 1 /* i */
            aload 0 /* glob */
            invokevirtual java.lang.String.length:()I
            if_icmpge 2
         1: .line 47
            aload 0 /* glob */
            iload 1 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            ireturn
         2: .line 49
      StackMap locals:
      StackMap stack:
            getstatic sun.nio.fs.Globs.EOL:C
            ireturn
        end local 1 // int i
        end local 0 // java.lang.String glob
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  glob  Ljava/lang/String;
            0    3     1     i  I
    MethodParameters:
      Name  Flags
      glob  
      i     

  private static java.lang.String toRegexPattern(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=2
        start local 0 // java.lang.String globPattern
        start local 1 // boolean isDos
         0: .line 58
            iconst_0
            istore 2 /* inGroup */
        start local 2 // boolean inGroup
         1: .line 59
            new java.lang.StringBuilder
            dup
            ldc "^"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 3 /* regex */
        start local 3 // java.lang.StringBuilder regex
         2: .line 61
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: .line 62
            goto 104
         4: .line 63
      StackMap locals: int java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* globPattern */
            iload 4 /* i */
            iinc 4 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         5: .line 64
            iload 5 /* c */
            lookupswitch { // 8
                   42: 87
                   44: 82
                   47: 15
                   63: 96
                   91: 20
                   92: 6
                  123: 69
                  125: 76
              default: 101
          }
         6: .line 67
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            aload 0 /* globPattern */
            invokevirtual java.lang.String.length:()I
            if_icmpne 10
         7: .line 68
            new java.util.regex.PatternSyntaxException
            dup
            ldc "No character to escape"
         8: .line 69
            aload 0 /* globPattern */
            iload 4 /* i */
            iconst_1
            isub
         9: .line 68
            invokespecial java.util.regex.PatternSyntaxException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
            athrow
        10: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* globPattern */
            iload 4 /* i */
            iinc 4 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 6 /* next */
        start local 6 // char next
        11: .line 72
            iload 6 /* next */
            invokestatic sun.nio.fs.Globs.isGlobMeta:(C)Z
            ifne 12
            iload 6 /* next */
            invokestatic sun.nio.fs.Globs.isRegexMeta:(C)Z
            ifeq 13
        12: .line 73
      StackMap locals: int
      StackMap stack:
            aload 3 /* regex */
            bipush 92
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        13: .line 75
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            iload 6 /* next */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 76
            goto 104
        end local 6 // char next
        15: .line 78
      StackMap locals:
      StackMap stack:
            iload 1 /* isDos */
            ifeq 18
        16: .line 79
            aload 3 /* regex */
            ldc "\\\\"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 80
            goto 104
        18: .line 81
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        19: .line 83
            goto 104
        20: .line 86
      StackMap locals:
      StackMap stack:
            iload 1 /* isDos */
            ifeq 23
        21: .line 87
            aload 3 /* regex */
            ldc "[[^\\\\]&&["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 88
            goto 24
        23: .line 89
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            ldc "[[^/]&&["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 91
      StackMap locals:
      StackMap stack:
            aload 0 /* globPattern */
            iload 4 /* i */
            invokestatic sun.nio.fs.Globs.next:(Ljava/lang/String;I)C
            bipush 94
            if_icmpne 28
        25: .line 93
            aload 3 /* regex */
            ldc "\\^"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        26: .line 94
            iinc 4 /* i */ 1
        27: .line 95
            goto 34
        28: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* globPattern */
            iload 4 /* i */
            invokestatic sun.nio.fs.Globs.next:(Ljava/lang/String;I)C
            bipush 33
            if_icmpne 31
        29: .line 98
            aload 3 /* regex */
            bipush 94
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        30: .line 99
            iinc 4 /* i */ 1
        31: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* globPattern */
            iload 4 /* i */
            invokestatic sun.nio.fs.Globs.next:(Ljava/lang/String;I)C
            bipush 45
            if_icmpne 34
        32: .line 103
            aload 3 /* regex */
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        33: .line 104
            iinc 4 /* i */ 1
        34: .line 107
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* hasRangeStart */
        start local 7 // boolean hasRangeStart
        35: .line 108
            iconst_0
            istore 8 /* last */
        start local 8 // char last
        36: .line 109
            goto 64
        37: .line 110
      StackMap locals: java.lang.String int int java.lang.StringBuilder int int top int int
      StackMap stack:
            aload 0 /* globPattern */
            iload 4 /* i */
            iinc 4 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        38: .line 111
            iload 5 /* c */
            bipush 93
            if_icmpne 40
        39: .line 112
            goto 65
        40: .line 114
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 47
            if_icmpeq 41
            iload 1 /* isDos */
            ifeq 44
            iload 5 /* c */
            bipush 92
            if_icmpne 44
        41: .line 115
      StackMap locals:
      StackMap stack:
            new java.util.regex.PatternSyntaxException
            dup
            ldc "Explicit 'name separator' in class"
        42: .line 116
            aload 0 /* globPattern */
            iload 4 /* i */
            iconst_1
            isub
        43: .line 115
            invokespecial java.util.regex.PatternSyntaxException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
            athrow
        44: .line 119
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 92
            if_icmpeq 46
            iload 5 /* c */
            bipush 91
            if_icmpeq 46
        45: .line 120
            iload 5 /* c */
            bipush 38
            if_icmpne 47
            aload 0 /* globPattern */
            iload 4 /* i */
            invokestatic sun.nio.fs.Globs.next:(Ljava/lang/String;I)C
            bipush 38
            if_icmpne 47
        46: .line 122
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            bipush 92
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        47: .line 124
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        48: .line 126
            iload 5 /* c */
            bipush 45
            if_icmpne 62
        49: .line 127
            iload 7 /* hasRangeStart */
            ifne 53
        50: .line 128
            new java.util.regex.PatternSyntaxException
            dup
            ldc "Invalid range"
        51: .line 129
            aload 0 /* globPattern */
            iload 4 /* i */
            iconst_1
            isub
        52: .line 128
            invokespecial java.util.regex.PatternSyntaxException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
            athrow
        53: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* globPattern */
            iload 4 /* i */
            iinc 4 /* i */ 1
            invokestatic sun.nio.fs.Globs.next:(Ljava/lang/String;I)C
            dup
            istore 5 /* c */
            getstatic sun.nio.fs.Globs.EOL:C
            if_icmpeq 65
            iload 5 /* c */
            bipush 93
            if_icmpne 55
        54: .line 132
            goto 65
        55: .line 134
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            iload 8 /* last */
            if_icmpge 59
        56: .line 135
            new java.util.regex.PatternSyntaxException
            dup
            ldc "Invalid range"
        57: .line 136
            aload 0 /* globPattern */
            iload 4 /* i */
            iconst_3
            isub
        58: .line 135
            invokespecial java.util.regex.PatternSyntaxException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
            athrow
        59: .line 138
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        60: .line 139
            iconst_0
            istore 7 /* hasRangeStart */
        61: .line 140
            goto 64
        62: .line 141
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* hasRangeStart */
        63: .line 142
            iload 5 /* c */
            istore 8 /* last */
        64: .line 109
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            aload 0 /* globPattern */
            invokevirtual java.lang.String.length:()I
            if_icmplt 37
        65: .line 145
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            bipush 93
            if_icmpeq 67
        66: .line 146
            new java.util.regex.PatternSyntaxException
            dup
            ldc "Missing ']"
            aload 0 /* globPattern */
            iload 4 /* i */
            iconst_1
            isub
            invokespecial java.util.regex.PatternSyntaxException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
            athrow
        67: .line 148
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            ldc "]]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        68: .line 149
            goto 104
        end local 8 // char last
        end local 7 // boolean hasRangeStart
        69: .line 151
      StackMap locals: java.lang.String int int java.lang.StringBuilder int int
      StackMap stack:
            iload 2 /* inGroup */
            ifeq 73
        70: .line 152
            new java.util.regex.PatternSyntaxException
            dup
            ldc "Cannot nest groups"
        71: .line 153
            aload 0 /* globPattern */
            iload 4 /* i */
            iconst_1
            isub
        72: .line 152
            invokespecial java.util.regex.PatternSyntaxException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
            athrow
        73: .line 155
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            ldc "(?:(?:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        74: .line 156
            iconst_1
            istore 2 /* inGroup */
        75: .line 157
            goto 104
        76: .line 159
      StackMap locals:
      StackMap stack:
            iload 2 /* inGroup */
            ifeq 80
        77: .line 160
            aload 3 /* regex */
            ldc "))"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        78: .line 161
            iconst_0
            istore 2 /* inGroup */
        79: .line 162
            goto 104
        80: .line 163
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        81: .line 165
            goto 104
        82: .line 167
      StackMap locals:
      StackMap stack:
            iload 2 /* inGroup */
            ifeq 85
        83: .line 168
            aload 3 /* regex */
            ldc ")|(?:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        84: .line 169
            goto 104
        85: .line 170
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        86: .line 172
            goto 104
        87: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* globPattern */
            iload 4 /* i */
            invokestatic sun.nio.fs.Globs.next:(Ljava/lang/String;I)C
            bipush 42
            if_icmpne 91
        88: .line 176
            aload 3 /* regex */
            ldc ".*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        89: .line 177
            iinc 4 /* i */ 1
        90: .line 178
            goto 104
        91: .line 180
      StackMap locals:
      StackMap stack:
            iload 1 /* isDos */
            ifeq 94
        92: .line 181
            aload 3 /* regex */
            ldc "[^\\\\]*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        93: .line 182
            goto 104
        94: .line 183
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            ldc "[^/]*"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        95: .line 186
            goto 104
        96: .line 188
      StackMap locals:
      StackMap stack:
            iload 1 /* isDos */
            ifeq 99
        97: .line 189
            aload 3 /* regex */
            ldc "[^\\\\]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        98: .line 190
            goto 104
        99: .line 191
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            ldc "[^/]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       100: .line 193
            goto 104
       101: .line 196
      StackMap locals:
      StackMap stack:
            iload 5 /* c */
            invokestatic sun.nio.fs.Globs.isRegexMeta:(C)Z
            ifeq 103
       102: .line 197
            aload 3 /* regex */
            bipush 92
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       103: .line 199
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 5 // char c
       104: .line 62
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            aload 0 /* globPattern */
            invokevirtual java.lang.String.length:()I
            if_icmplt 4
       105: .line 203
            iload 2 /* inGroup */
            ifeq 107
       106: .line 204
            new java.util.regex.PatternSyntaxException
            dup
            ldc "Missing '}"
            aload 0 /* globPattern */
            iload 4 /* i */
            iconst_1
            isub
            invokespecial java.util.regex.PatternSyntaxException.<init>:(Ljava/lang/String;Ljava/lang/String;I)V
            athrow
       107: .line 207
      StackMap locals:
      StackMap stack:
            aload 3 /* regex */
            bipush 36
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // int i
        end local 3 // java.lang.StringBuilder regex
        end local 2 // boolean inGroup
        end local 1 // boolean isDos
        end local 0 // java.lang.String globPattern
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  108     0    globPattern  Ljava/lang/String;
            0  108     1          isDos  Z
            1  108     2        inGroup  Z
            2  108     3          regex  Ljava/lang/StringBuilder;
            3  108     4              i  I
            5  104     5              c  C
           11   15     6           next  C
           35   69     7  hasRangeStart  Z
           36   69     8           last  C
    MethodParameters:
             Name  Flags
      globPattern  
      isDos        

  static java.lang.String toUnixRegexPattern(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String globPattern
         0: .line 211
            aload 0 /* globPattern */
            iconst_0
            invokestatic sun.nio.fs.Globs.toRegexPattern:(Ljava/lang/String;Z)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String globPattern
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  globPattern  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      globPattern  

  static java.lang.String toWindowsRegexPattern(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String globPattern
         0: .line 215
            aload 0 /* globPattern */
            iconst_1
            invokestatic sun.nio.fs.Globs.toRegexPattern:(Ljava/lang/String;Z)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String globPattern
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  globPattern  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      globPattern  
}
SourceFile: "Globs.java"