class com.jcraft.jsch.Util
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.jcraft.jsch.Util
  super_class: java.lang.Object
{
  private static final byte[] b64;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.lang.String[] chars;
    descriptor: [Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static final byte[] empty;
    descriptor: [B
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 38
            ldc "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;)[B
            putstatic com.jcraft.jsch.Util.b64:[B
         1: .line 309
            bipush 16
            anewarray java.lang.String
            dup
            iconst_0
         2: .line 310
            ldc "0"
            aastore
            dup
            iconst_1
            ldc "1"
            aastore
            dup
            iconst_2
            ldc "2"
            aastore
            dup
            iconst_3
            ldc "3"
            aastore
            dup
            iconst_4
            ldc "4"
            aastore
            dup
            iconst_5
            ldc "5"
            aastore
            dup
            bipush 6
            ldc "6"
            aastore
            dup
            bipush 7
            ldc "7"
            aastore
            dup
            bipush 8
            ldc "8"
            aastore
            dup
            bipush 9
            ldc "9"
            aastore
            dup
            bipush 10
            ldc "a"
            aastore
            dup
            bipush 11
            ldc "b"
            aastore
            dup
            bipush 12
            ldc "c"
            aastore
            dup
            bipush 13
            ldc "d"
            aastore
            dup
            bipush 14
            ldc "e"
            aastore
            dup
            bipush 15
            ldc "f"
            aastore
         3: .line 309
            putstatic com.jcraft.jsch.Util.chars:[Ljava/lang/String;
         4: .line 442
            ldc ""
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;)[B
            putstatic com.jcraft.jsch.Util.empty:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.Util this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.jcraft.jsch.Util this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/jcraft/jsch/Util;

  private static byte val(byte);
    descriptor: (B)B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // byte foo
         0: .line 40
            iload 0 /* foo */
            bipush 61
            if_icmpne 1
            iconst_0
            ireturn
         1: .line 41
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* j */
        start local 1 // int j
         2: goto 5
         3: .line 42
      StackMap locals: int
      StackMap stack:
            iload 0 /* foo */
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 1 /* j */
            baload
            if_icmpne 4
            iload 1 /* j */
            i2b
            ireturn
         4: .line 41
      StackMap locals:
      StackMap stack:
            iinc 1 /* j */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* j */
            getstatic com.jcraft.jsch.Util.b64:[B
            arraylength
            if_icmplt 3
        end local 1 // int j
         6: .line 44
            iconst_0
            ireturn
        end local 0 // byte foo
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0   foo  B
            2    6     1     j  I
    MethodParameters:
      Name  Flags
      foo   

  static byte[] fromBase64(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // byte[] buf
        start local 1 // int start
        start local 2 // int length
         0: .line 48
            iload 2 /* length */
            newarray 8
            astore 3 /* foo */
        start local 3 // byte[] foo
         1: .line 49
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         2: .line 50
            iload 1 /* start */
            istore 5 /* i */
        start local 5 // int i
         3: goto 11
         4: .line 51
      StackMap locals: byte[] int int
      StackMap stack:
            aload 3 /* foo */
            iload 4 /* j */
            aload 0 /* buf */
            iload 5 /* i */
            baload
            invokestatic com.jcraft.jsch.Util.val:(B)B
            iconst_2
            ishl
            aload 0 /* buf */
            iload 5 /* i */
            iconst_1
            iadd
            baload
            invokestatic com.jcraft.jsch.Util.val:(B)B
            bipush 48
            iand
            iconst_4
            iushr
            ior
            i2b
            bastore
         5: .line 52
            aload 0 /* buf */
            iload 5 /* i */
            iconst_2
            iadd
            baload
            bipush 61
            if_icmpne 6
            iinc 4 /* j */ 1
            goto 12
         6: .line 53
      StackMap locals:
      StackMap stack:
            aload 3 /* foo */
            iload 4 /* j */
            iconst_1
            iadd
            aload 0 /* buf */
            iload 5 /* i */
            iconst_1
            iadd
            baload
            invokestatic com.jcraft.jsch.Util.val:(B)B
            bipush 15
            iand
            iconst_4
            ishl
            aload 0 /* buf */
            iload 5 /* i */
            iconst_2
            iadd
            baload
            invokestatic com.jcraft.jsch.Util.val:(B)B
            bipush 60
            iand
            iconst_2
            iushr
            ior
            i2b
            bastore
         7: .line 54
            aload 0 /* buf */
            iload 5 /* i */
            iconst_3
            iadd
            baload
            bipush 61
            if_icmpne 8
            iinc 4 /* j */ 2
            goto 12
         8: .line 55
      StackMap locals:
      StackMap stack:
            aload 3 /* foo */
            iload 4 /* j */
            iconst_2
            iadd
            aload 0 /* buf */
            iload 5 /* i */
            iconst_2
            iadd
            baload
            invokestatic com.jcraft.jsch.Util.val:(B)B
            iconst_3
            iand
            bipush 6
            ishl
            aload 0 /* buf */
            iload 5 /* i */
            iconst_3
            iadd
            baload
            invokestatic com.jcraft.jsch.Util.val:(B)B
            bipush 63
            iand
            ior
            i2b
            bastore
         9: .line 56
            iinc 4 /* j */ 3
        10: .line 50
            iinc 5 /* i */ 4
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            iload 1 /* start */
            iload 2 /* length */
            iadd
            if_icmplt 4
        end local 5 // int i
        12: .line 58
      StackMap locals:
      StackMap stack:
            iload 4 /* j */
            newarray 8
            astore 5 /* bar */
        start local 5 // byte[] bar
        13: .line 59
            aload 3 /* foo */
            iconst_0
            aload 5 /* bar */
            iconst_0
            iload 4 /* j */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        14: .line 60
            aload 5 /* bar */
        15: areturn
        end local 5 // byte[] bar
        end local 4 // int j
        end local 3 // byte[] foo
        16: .line 62
      StackMap locals: byte[] int int
      StackMap stack: java.lang.ArrayIndexOutOfBoundsException
            astore 3 /* e */
        start local 3 // java.lang.ArrayIndexOutOfBoundsException e
        17: .line 63
            new com.jcraft.jsch.JSchException
            dup
            ldc "fromBase64: invalid base64 data"
            aload 3 /* e */
            invokespecial com.jcraft.jsch.JSchException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.ArrayIndexOutOfBoundsException e
        end local 2 // int length
        end local 1 // int start
        end local 0 // byte[] buf
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0     buf  [B
            0   18     1   start  I
            0   18     2  length  I
            1   16     3     foo  [B
            2   16     4       j  I
            3   12     5       i  I
           13   16     5     bar  [B
           17   18     3       e  Ljava/lang/ArrayIndexOutOfBoundsException;
      Exception table:
        from    to  target  type
           0    15      16  Class java.lang.ArrayIndexOutOfBoundsException
    Exceptions:
      throws com.jcraft.jsch.JSchException
    MethodParameters:
        Name  Flags
      buf     
      start   
      length  

  static byte[] toBase64(byte[], int, int);
    descriptor: ([BII)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // byte[] buf
        start local 1 // int start
        start local 2 // int length
         0: .line 68
            iload 2 /* length */
            iconst_2
            imul
            newarray 8
            astore 3 /* tmp */
        start local 3 // byte[] tmp
         1: .line 71
            iload 2 /* length */
            iconst_3
            idiv
            iconst_3
            imul
            iload 1 /* start */
            iadd
            istore 7 /* foo */
        start local 7 // int foo
         2: .line 72
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: .line 73
            iload 1 /* start */
            istore 5 /* j */
        start local 5 // int j
         4: goto 14
         5: .line 74
      StackMap locals: byte[] int int byte[] int int top int
      StackMap stack:
            aload 0 /* buf */
            iload 5 /* j */
            baload
            iconst_2
            iushr
            bipush 63
            iand
            istore 6 /* k */
        start local 6 // int k
         6: .line 75
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 6 /* k */
            baload
            bastore
         7: .line 76
            aload 0 /* buf */
            iload 5 /* j */
            baload
            iconst_3
            iand
            iconst_4
            ishl
            aload 0 /* buf */
            iload 5 /* j */
            iconst_1
            iadd
            baload
            iconst_4
            iushr
            bipush 15
            iand
            ior
            istore 6 /* k */
         8: .line 77
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 6 /* k */
            baload
            bastore
         9: .line 78
            aload 0 /* buf */
            iload 5 /* j */
            iconst_1
            iadd
            baload
            bipush 15
            iand
            iconst_2
            ishl
            aload 0 /* buf */
            iload 5 /* j */
            iconst_2
            iadd
            baload
            bipush 6
            iushr
            iconst_3
            iand
            ior
            istore 6 /* k */
        10: .line 79
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 6 /* k */
            baload
            bastore
        11: .line 80
            aload 0 /* buf */
            iload 5 /* j */
            iconst_2
            iadd
            baload
            bipush 63
            iand
            istore 6 /* k */
        12: .line 81
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 6 /* k */
            baload
            bastore
        13: .line 73
            iinc 5 /* j */ 3
        end local 6 // int k
      StackMap locals:
      StackMap stack:
        14: iload 5 /* j */
            iload 7 /* foo */
            if_icmplt 5
        15: .line 84
            iload 1 /* start */
            iload 2 /* length */
            iadd
            iload 7 /* foo */
            isub
            istore 7 /* foo */
        16: .line 85
            iload 7 /* foo */
            iconst_1
            if_icmpne 24
        17: .line 86
            aload 0 /* buf */
            iload 5 /* j */
            baload
            iconst_2
            iushr
            bipush 63
            iand
            istore 6 /* k */
        start local 6 // int k
        18: .line 87
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 6 /* k */
            baload
            bastore
        19: .line 88
            aload 0 /* buf */
            iload 5 /* j */
            baload
            iconst_3
            iand
            iconst_4
            ishl
            bipush 63
            iand
            istore 6 /* k */
        20: .line 89
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 6 /* k */
            baload
            bastore
        21: .line 90
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            bipush 61
            bastore
        22: .line 91
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            bipush 61
            bastore
        23: .line 92
            goto 32
        end local 6 // int k
        24: .line 93
      StackMap locals:
      StackMap stack:
            iload 7 /* foo */
            iconst_2
            if_icmpne 32
        25: .line 94
            aload 0 /* buf */
            iload 5 /* j */
            baload
            iconst_2
            iushr
            bipush 63
            iand
            istore 6 /* k */
        start local 6 // int k
        26: .line 95
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 6 /* k */
            baload
            bastore
        27: .line 96
            aload 0 /* buf */
            iload 5 /* j */
            baload
            iconst_3
            iand
            iconst_4
            ishl
            aload 0 /* buf */
            iload 5 /* j */
            iconst_1
            iadd
            baload
            iconst_4
            iushr
            bipush 15
            iand
            ior
            istore 6 /* k */
        28: .line 97
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 6 /* k */
            baload
            bastore
        29: .line 98
            aload 0 /* buf */
            iload 5 /* j */
            iconst_1
            iadd
            baload
            bipush 15
            iand
            iconst_2
            ishl
            bipush 63
            iand
            istore 6 /* k */
        30: .line 99
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            getstatic com.jcraft.jsch.Util.b64:[B
            iload 6 /* k */
            baload
            bastore
        31: .line 100
            aload 3 /* tmp */
            iload 4 /* i */
            iinc 4 /* i */ 1
            bipush 61
            bastore
        end local 6 // int k
        32: .line 102
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            newarray 8
            astore 8 /* bar */
        start local 8 // byte[] bar
        33: .line 103
            aload 3 /* tmp */
            iconst_0
            aload 8 /* bar */
            iconst_0
            iload 4 /* i */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        34: .line 104
            aload 8 /* bar */
            areturn
        end local 8 // byte[] bar
        end local 7 // int foo
        end local 5 // int j
        end local 4 // int i
        end local 3 // byte[] tmp
        end local 2 // int length
        end local 1 // int start
        end local 0 // byte[] buf
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   35     0     buf  [B
            0   35     1   start  I
            0   35     2  length  I
            1   35     3     tmp  [B
            3   35     4       i  I
            4   35     5       j  I
            6   14     6       k  I
           18   24     6       k  I
           26   32     6       k  I
            2   35     7     foo  I
           33   35     8     bar  [B
    MethodParameters:
        Name  Flags
      buf     
      start   
      length  

  static java.lang.String[] split(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // java.lang.String foo
        start local 1 // java.lang.String split
         0: .line 110
            aload 0 /* foo */
            ifnonnull 2
         1: .line 111
            aconst_null
            areturn
         2: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* foo */
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;)[B
            astore 2 /* buf */
        start local 2 // byte[] buf
         3: .line 113
            new java.util.Vector
            dup
            invokespecial java.util.Vector.<init>:()V
            astore 3 /* bar */
        start local 3 // java.util.Vector bar
         4: .line 114
            iconst_0
            istore 4 /* start */
        start local 4 // int start
         5: .line 117
      StackMap locals: byte[] java.util.Vector int
      StackMap stack:
            aload 0 /* foo */
            aload 1 /* split */
            iload 4 /* start */
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            istore 5 /* index */
        start local 5 // int index
         6: .line 118
            iload 5 /* index */
            iflt 10
         7: .line 119
            aload 3 /* bar */
            aload 2 /* buf */
            iload 4 /* start */
            iload 5 /* index */
            iload 4 /* start */
            isub
            invokestatic com.jcraft.jsch.Util.byte2str:([BII)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
         8: .line 120
            iload 5 /* index */
            iconst_1
            iadd
            istore 4 /* start */
         9: .line 121
            goto 5
        10: .line 123
      StackMap locals: int
      StackMap stack:
            aload 3 /* bar */
            aload 2 /* buf */
            iload 4 /* start */
            aload 2 /* buf */
            arraylength
            iload 4 /* start */
            isub
            invokestatic com.jcraft.jsch.Util.byte2str:([BII)Ljava/lang/String;
            invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
        11: .line 126
            aload 3 /* bar */
            invokevirtual java.util.Vector.size:()I
            anewarray java.lang.String
            astore 6 /* result */
        start local 6 // java.lang.String[] result
        12: .line 127
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        13: goto 16
        14: .line 128
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 6 /* result */
            iload 7 /* i */
            aload 3 /* bar */
            iload 7 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast java.lang.String
            aastore
        15: .line 127
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 7 /* i */
            aload 6 /* result */
            arraylength
            if_icmplt 14
        end local 7 // int i
        17: .line 130
            aload 6 /* result */
            areturn
        end local 6 // java.lang.String[] result
        end local 5 // int index
        end local 4 // int start
        end local 3 // java.util.Vector bar
        end local 2 // byte[] buf
        end local 1 // java.lang.String split
        end local 0 // java.lang.String foo
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0     foo  Ljava/lang/String;
            0   18     1   split  Ljava/lang/String;
            3   18     2     buf  [B
            4   18     3     bar  Ljava/util/Vector;
            5   18     4   start  I
            6   18     5   index  I
           12   18     6  result  [Ljava/lang/String;
           13   17     7       i  I
    MethodParameters:
       Name  Flags
      foo    
      split  

  static boolean glob(byte[], byte[]);
    descriptor: ([B[B)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // byte[] pattern
        start local 1 // byte[] name
         0: .line 133
            aload 0 /* pattern */
            iconst_0
            aload 1 /* name */
            iconst_0
            invokestatic com.jcraft.jsch.Util.glob0:([BI[BI)Z
            ireturn
        end local 1 // byte[] name
        end local 0 // byte[] pattern
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  pattern  [B
            0    1     1     name  [B
    MethodParameters:
         Name  Flags
      pattern  
      name     

  private static boolean glob0(byte[], int, byte[], int);
    descriptor: ([BI[BI)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // byte[] pattern
        start local 1 // int pattern_index
        start local 2 // byte[] name
        start local 3 // int name_index
         0: .line 137
            aload 2 /* name */
            arraylength
            ifle 5
            aload 2 /* name */
            iconst_0
            baload
            bipush 46
            if_icmpne 5
         1: .line 138
            aload 0 /* pattern */
            arraylength
            ifle 4
            aload 0 /* pattern */
            iconst_0
            baload
            bipush 46
            if_icmpne 4
         2: .line 139
            aload 0 /* pattern */
            arraylength
            iconst_2
            if_icmpne 3
            aload 0 /* pattern */
            iconst_1
            baload
            bipush 42
            if_icmpne 3
            iconst_1
            ireturn
         3: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            iload 1 /* pattern_index */
            iconst_1
            iadd
            aload 2 /* name */
            iload 3 /* name_index */
            iconst_1
            iadd
            invokestatic com.jcraft.jsch.Util.glob:([BI[BI)Z
            ireturn
         4: .line 142
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         5: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            iload 1 /* pattern_index */
            aload 2 /* name */
            iload 3 /* name_index */
            invokestatic com.jcraft.jsch.Util.glob:([BI[BI)Z
            ireturn
        end local 3 // int name_index
        end local 2 // byte[] name
        end local 1 // int pattern_index
        end local 0 // byte[] pattern
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0        pattern  [B
            0    6     1  pattern_index  I
            0    6     2           name  [B
            0    6     3     name_index  I
    MethodParameters:
               Name  Flags
      pattern        
      pattern_index  
      name           
      name_index     

  private static boolean glob(byte[], int, byte[], int);
    descriptor: ([BI[BI)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // byte[] pattern
        start local 1 // int pattern_index
        start local 2 // byte[] name
        start local 3 // int name_index
         0: .line 150
            aload 0 /* pattern */
            arraylength
            istore 4 /* patternlen */
        start local 4 // int patternlen
         1: .line 151
            iload 4 /* patternlen */
            ifne 3
         2: .line 152
            iconst_0
            ireturn
         3: .line 154
      StackMap locals: int
      StackMap stack:
            aload 2 /* name */
            arraylength
            istore 5 /* namelen */
        start local 5 // int namelen
         4: .line 155
            iload 1 /* pattern_index */
            istore 6 /* i */
        start local 6 // int i
         5: .line 156
            iload 3 /* name_index */
            istore 7 /* j */
        start local 7 // int j
         6: .line 158
            goto 65
         7: .line 159
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            bipush 92
            if_icmpne 16
         8: .line 160
            iload 6 /* i */
            iconst_1
            iadd
            iload 4 /* patternlen */
            if_icmpne 10
         9: .line 161
            iconst_0
            ireturn
        10: .line 162
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
        11: .line 163
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            aload 2 /* name */
            iload 7 /* j */
            baload
            if_icmpeq 13
        12: .line 164
            iconst_0
            ireturn
        13: .line 165
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
            istore 6 /* i */
        14: .line 166
            iload 7 /* j */
            aload 2 /* name */
            iload 7 /* j */
            baload
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
            istore 7 /* j */
        15: .line 167
            goto 65
        16: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            bipush 42
            if_icmpne 52
        17: .line 171
            goto 20
        18: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            bipush 42
            if_icmpne 21
        19: .line 173
            iinc 6 /* i */ 1
        20: .line 171
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            iload 4 /* patternlen */
            if_icmplt 18
        21: .line 178
      StackMap locals:
      StackMap stack:
            iload 4 /* patternlen */
            iload 6 /* i */
            if_icmpne 23
        22: .line 179
            iconst_1
            ireturn
        23: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            istore 8 /* foo */
        start local 8 // byte foo
        24: .line 182
            iload 8 /* foo */
            bipush 63
            if_icmpne 31
        25: .line 183
            goto 29
        26: .line 184
      StackMap locals: int
      StackMap stack:
            aload 0 /* pattern */
            iload 6 /* i */
            aload 2 /* name */
            iload 7 /* j */
            invokestatic com.jcraft.jsch.Util.glob:([BI[BI)Z
            ifeq 28
        27: .line 185
            iconst_1
            ireturn
        28: .line 187
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            aload 2 /* name */
            iload 7 /* j */
            baload
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
            istore 7 /* j */
        29: .line 183
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            iload 5 /* namelen */
            if_icmplt 26
        30: .line 189
            iconst_0
            ireturn
        31: .line 191
      StackMap locals:
      StackMap stack:
            iload 8 /* foo */
            bipush 92
            if_icmpne 50
        32: .line 192
            iload 6 /* i */
            iconst_1
            iadd
            iload 4 /* patternlen */
            if_icmpne 34
        33: .line 193
            iconst_0
            ireturn
        34: .line 194
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
        35: .line 195
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            istore 8 /* foo */
        36: .line 196
            goto 44
        37: .line 197
      StackMap locals:
      StackMap stack:
            iload 8 /* foo */
            aload 2 /* name */
            iload 7 /* j */
            baload
            if_icmpne 43
        38: .line 198
            aload 0 /* pattern */
            iload 6 /* i */
            iload 8 /* foo */
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
        39: .line 199
            aload 2 /* name */
            iload 7 /* j */
            aload 2 /* name */
            iload 7 /* j */
            baload
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
        40: .line 198
            invokestatic com.jcraft.jsch.Util.glob:([BI[BI)Z
        41: .line 199
            ifeq 43
        42: .line 200
            iconst_1
            ireturn
        43: .line 203
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            aload 2 /* name */
            iload 7 /* j */
            baload
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
            istore 7 /* j */
        44: .line 196
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            iload 5 /* namelen */
            if_icmplt 37
        45: .line 205
            iconst_0
            ireturn
        46: .line 209
      StackMap locals:
      StackMap stack:
            iload 8 /* foo */
            aload 2 /* name */
            iload 7 /* j */
            baload
            if_icmpne 49
        47: .line 210
            aload 0 /* pattern */
            iload 6 /* i */
            aload 2 /* name */
            iload 7 /* j */
            invokestatic com.jcraft.jsch.Util.glob:([BI[BI)Z
            ifeq 49
        48: .line 211
            iconst_1
            ireturn
        49: .line 214
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            aload 2 /* name */
            iload 7 /* j */
            baload
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
            istore 7 /* j */
        50: .line 208
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            iload 5 /* namelen */
            if_icmplt 46
        51: .line 216
            iconst_0
            ireturn
        end local 8 // byte foo
        52: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            bipush 63
            if_icmpne 56
        53: .line 220
            iinc 6 /* i */ 1
        54: .line 221
            iload 7 /* j */
            aload 2 /* name */
            iload 7 /* j */
            baload
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
            istore 7 /* j */
        55: .line 222
            goto 65
        56: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            aload 2 /* name */
            iload 7 /* j */
            baload
            if_icmpeq 58
        57: .line 226
            iconst_0
            ireturn
        58: .line 228
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
            istore 6 /* i */
        59: .line 229
            iload 7 /* j */
            aload 2 /* name */
            iload 7 /* j */
            baload
            invokestatic com.jcraft.jsch.Util.skipUTF8Char:(B)I
            iadd
            istore 7 /* j */
        60: .line 231
            iload 7 /* j */
            iload 5 /* namelen */
            if_icmplt 65
        61: .line 232
            iload 6 /* i */
            iload 4 /* patternlen */
            if_icmplt 63
        62: .line 233
            iconst_1
            ireturn
        63: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            bipush 42
            if_icmpne 65
        64: .line 236
            goto 66
        65: .line 158
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            iload 4 /* patternlen */
            if_icmpge 66
            iload 7 /* j */
            iload 5 /* namelen */
            if_icmplt 7
        66: .line 242
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            iload 4 /* patternlen */
            if_icmpne 68
            iload 7 /* j */
            iload 5 /* namelen */
            if_icmpne 68
        67: .line 243
            iconst_1
            ireturn
        68: .line 245
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            iload 5 /* namelen */
            if_icmplt 77
        69: .line 246
            aload 0 /* pattern */
            iload 6 /* i */
            baload
            bipush 42
            if_icmpne 77
        70: .line 247
            iconst_1
            istore 8 /* ok */
        start local 8 // boolean ok
        71: .line 248
            goto 75
        72: .line 249
      StackMap locals: int
      StackMap stack:
            aload 0 /* pattern */
            iload 6 /* i */
            iinc 6 /* i */ 1
            baload
            bipush 42
            if_icmpeq 75
        73: .line 250
            iconst_0
            istore 8 /* ok */
        74: .line 251
            goto 76
        75: .line 248
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            iload 4 /* patternlen */
            if_icmplt 72
        76: .line 254
      StackMap locals:
      StackMap stack:
            iload 8 /* ok */
            ireturn
        end local 8 // boolean ok
        77: .line 257
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // int j
        end local 6 // int i
        end local 5 // int namelen
        end local 4 // int patternlen
        end local 3 // int name_index
        end local 2 // byte[] name
        end local 1 // int pattern_index
        end local 0 // byte[] pattern
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   78     0        pattern  [B
            0   78     1  pattern_index  I
            0   78     2           name  [B
            0   78     3     name_index  I
            1   78     4     patternlen  I
            4   78     5        namelen  I
            5   78     6              i  I
            6   78     7              j  I
           24   52     8            foo  B
           71   77     8             ok  Z
    MethodParameters:
               Name  Flags
      pattern        
      pattern_index  
      name           
      name_index     

  static java.lang.String quote(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.lang.String path
         0: .line 261
            aload 0 /* path */
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;)[B
            astore 1 /* _path */
        start local 1 // byte[] _path
         1: .line 262
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         2: .line 263
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 8
         4: .line 264
      StackMap locals: byte[] int int
      StackMap stack:
            aload 1 /* _path */
            iload 3 /* i */
            baload
            istore 4 /* b */
        start local 4 // byte b
         5: .line 265
            iload 4 /* b */
            bipush 92
            if_icmpeq 6
            iload 4 /* b */
            bipush 63
            if_icmpeq 6
            iload 4 /* b */
            bipush 42
            if_icmpne 7
         6: .line 266
      StackMap locals: int
      StackMap stack:
            iinc 2 /* count */ 1
        end local 4 // byte b
         7: .line 263
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 1 /* _path */
            arraylength
            if_icmplt 4
        end local 3 // int i
         9: .line 268
            iload 2 /* count */
            ifne 11
        10: .line 269
            aload 0 /* path */
            areturn
        11: .line 270
      StackMap locals:
      StackMap stack:
            aload 1 /* _path */
            arraylength
            iload 2 /* count */
            iadd
            newarray 8
            astore 3 /* _path2 */
        start local 3 // byte[] _path2
        12: .line 271
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        13: iconst_0
            istore 5 /* j */
        start local 5 // int j
        14: goto 20
        15: .line 272
      StackMap locals: byte[] int int
      StackMap stack:
            aload 1 /* _path */
            iload 4 /* i */
            baload
            istore 6 /* b */
        start local 6 // byte b
        16: .line 273
            iload 6 /* b */
            bipush 92
            if_icmpeq 17
            iload 6 /* b */
            bipush 63
            if_icmpeq 17
            iload 6 /* b */
            bipush 42
            if_icmpne 18
        17: .line 274
      StackMap locals: int
      StackMap stack:
            aload 3 /* _path2 */
            iload 5 /* j */
            iinc 5 /* j */ 1
            bipush 92
            bastore
        18: .line 276
      StackMap locals:
      StackMap stack:
            aload 3 /* _path2 */
            iload 5 /* j */
            iinc 5 /* j */ 1
            iload 6 /* b */
            bastore
        end local 6 // byte b
        19: .line 271
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 4 /* i */
            aload 1 /* _path */
            arraylength
            if_icmplt 15
        end local 5 // int j
        end local 4 // int i
        21: .line 278
            aload 3 /* _path2 */
            invokestatic com.jcraft.jsch.Util.byte2str:([B)Ljava/lang/String;
            areturn
        end local 3 // byte[] _path2
        end local 2 // int count
        end local 1 // byte[] _path
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0    path  Ljava/lang/String;
            1   22     1   _path  [B
            2   22     2   count  I
            3    9     3       i  I
            5    7     4       b  B
           12   22     3  _path2  [B
           13   21     4       i  I
           14   21     5       j  I
           16   19     6       b  B
    MethodParameters:
      Name  Flags
      path  

  static java.lang.String unquote(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.String path
         0: .line 282
            aload 0 /* path */
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;)[B
            astore 1 /* foo */
        start local 1 // byte[] foo
         1: .line 283
            aload 1 /* foo */
            invokestatic com.jcraft.jsch.Util.unquote:([B)[B
            astore 2 /* bar */
        start local 2 // byte[] bar
         2: .line 284
            aload 1 /* foo */
            arraylength
            aload 2 /* bar */
            arraylength
            if_icmpne 4
         3: .line 285
            aload 0 /* path */
            areturn
         4: .line 286
      StackMap locals: byte[] byte[]
      StackMap stack:
            aload 2 /* bar */
            invokestatic com.jcraft.jsch.Util.byte2str:([B)Ljava/lang/String;
            areturn
        end local 2 // byte[] bar
        end local 1 // byte[] foo
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  path  Ljava/lang/String;
            1    5     1   foo  [B
            2    5     2   bar  [B
    MethodParameters:
      Name  Flags
      path  

  static byte[] unquote(byte[]);
    descriptor: ([B)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // byte[] path
         0: .line 289
            aload 0 /* path */
            arraylength
            istore 1 /* pathlen */
        start local 1 // int pathlen
         1: .line 290
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: .line 291
            goto 11
         3: .line 292
      StackMap locals: int int
      StackMap stack:
            aload 0 /* path */
            iload 2 /* i */
            baload
            bipush 92
            if_icmpne 10
         4: .line 293
            iload 2 /* i */
            iconst_1
            iadd
            iload 1 /* pathlen */
            if_icmpne 6
         5: .line 294
            goto 12
         6: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* path */
            iload 2 /* i */
            iconst_1
            iadd
            aload 0 /* path */
            iload 2 /* i */
            aload 0 /* path */
            arraylength
            iload 2 /* i */
            iconst_1
            iadd
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 296
            iinc 1 /* pathlen */ -1
         8: .line 297
            iinc 2 /* i */ 1
         9: .line 298
            goto 11
        10: .line 300
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
        11: .line 291
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iload 1 /* pathlen */
            if_icmplt 3
        12: .line 302
      StackMap locals:
      StackMap stack:
            iload 1 /* pathlen */
            aload 0 /* path */
            arraylength
            if_icmpne 14
        13: .line 303
            aload 0 /* path */
            areturn
        14: .line 304
      StackMap locals:
      StackMap stack:
            iload 1 /* pathlen */
            newarray 8
            astore 3 /* foo */
        start local 3 // byte[] foo
        15: .line 305
            aload 0 /* path */
            iconst_0
            aload 3 /* foo */
            iconst_0
            iload 1 /* pathlen */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        16: .line 306
            aload 3 /* foo */
            areturn
        end local 3 // byte[] foo
        end local 2 // int i
        end local 1 // int pathlen
        end local 0 // byte[] path
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     path  [B
            1   17     1  pathlen  I
            2   17     2        i  I
           15   17     3      foo  [B
    MethodParameters:
      Name  Flags
      path  

  static java.lang.String getFingerPrint(com.jcraft.jsch.HASH, byte[]);
    descriptor: (Lcom/jcraft/jsch/HASH;[B)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.jcraft.jsch.HASH hash
        start local 1 // byte[] data
         0: .line 314
            aload 0 /* hash */
            invokeinterface com.jcraft.jsch.HASH.init:()V
         1: .line 315
            aload 0 /* hash */
            aload 1 /* data */
            iconst_0
            aload 1 /* data */
            arraylength
            invokeinterface com.jcraft.jsch.HASH.update:([BII)V
         2: .line 316
            aload 0 /* hash */
            invokeinterface com.jcraft.jsch.HASH.digest:()[B
            astore 2 /* foo */
        start local 2 // byte[] foo
         3: .line 317
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuffer sb
         4: .line 319
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 12
         6: .line 320
      StackMap locals: com.jcraft.jsch.HASH byte[] byte[] java.lang.StringBuffer top int
      StackMap stack:
            aload 2 /* foo */
            iload 5 /* i */
            baload
            sipush 255
            iand
            istore 4 /* bar */
        start local 4 // int bar
         7: .line 321
            aload 3 /* sb */
            getstatic com.jcraft.jsch.Util.chars:[Ljava/lang/String;
            iload 4 /* bar */
            iconst_4
            iushr
            bipush 15
            iand
            aaload
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         8: .line 322
            aload 3 /* sb */
            getstatic com.jcraft.jsch.Util.chars:[Ljava/lang/String;
            iload 4 /* bar */
            bipush 15
            iand
            aaload
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         9: .line 323
            iload 5 /* i */
            iconst_1
            iadd
            aload 2 /* foo */
            arraylength
            if_icmpge 11
        10: .line 324
            aload 3 /* sb */
            ldc ":"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        11: .line 319
      StackMap locals: com.jcraft.jsch.HASH byte[] byte[] java.lang.StringBuffer int int
      StackMap stack:
            iinc 5 /* i */ 1
        end local 4 // int bar
      StackMap locals: com.jcraft.jsch.HASH byte[] byte[] java.lang.StringBuffer top int
      StackMap stack:
        12: iload 5 /* i */
            aload 2 /* foo */
            arraylength
            if_icmplt 6
        end local 5 // int i
        13: .line 326
            aload 3 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
        14: areturn
        end local 3 // java.lang.StringBuffer sb
        end local 2 // byte[] foo
        15: .line 328
      StackMap locals: com.jcraft.jsch.HASH byte[]
      StackMap stack: java.lang.Exception
            pop
        16: .line 329
            ldc "???"
            areturn
        end local 1 // byte[] data
        end local 0 // com.jcraft.jsch.HASH hash
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  hash  Lcom/jcraft/jsch/HASH;
            0   17     1  data  [B
            3   15     2   foo  [B
            4   15     3    sb  Ljava/lang/StringBuffer;
            7   12     4   bar  I
            5   13     5     i  I
      Exception table:
        from    to  target  type
           0    14      15  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      hash  
      data  

  static boolean array_equals(byte[], byte[]);
    descriptor: ([B[B)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // byte[] foo
        start local 1 // byte[] bar
         0: .line 333
            aload 0 /* foo */
            arraylength
            istore 2 /* i */
        start local 2 // int i
         1: .line 334
            iload 2 /* i */
            aload 1 /* bar */
            arraylength
            if_icmpeq 2
            iconst_0
            ireturn
         2: .line 335
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 3 /* j */
        start local 3 // int j
         3: goto 6
      StackMap locals: int
      StackMap stack:
         4: aload 0 /* foo */
            iload 3 /* j */
            baload
            aload 1 /* bar */
            iload 3 /* j */
            baload
            if_icmpeq 5
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         5: iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* j */
            iload 2 /* i */
            if_icmplt 4
        end local 3 // int j
         7: .line 337
            iconst_1
            ireturn
        end local 2 // int i
        end local 1 // byte[] bar
        end local 0 // byte[] foo
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0   foo  [B
            0    8     1   bar  [B
            1    8     2     i  I
            3    7     3     j  I
    MethodParameters:
      Name  Flags
      foo   
      bar   

  static java.net.Socket createSocket(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)Ljava/net/Socket;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=10, args_size=3
        start local 0 // java.lang.String host
        start local 1 // int port
        start local 2 // int timeout
         0: .line 340
            aconst_null
            astore 3 /* socket */
        start local 3 // java.net.Socket socket
         1: .line 341
            iload 2 /* timeout */
            ifne 10
         2: .line 343
            new java.net.Socket
            dup
            aload 0 /* host */
            iload 1 /* port */
            invokespecial java.net.Socket.<init>:(Ljava/lang/String;I)V
            astore 3 /* socket */
         3: .line 344
            aload 3 /* socket */
         4: areturn
         5: .line 346
      StackMap locals: java.lang.String int int java.net.Socket
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         6: .line 347
            aload 4 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            astore 5 /* message */
        start local 5 // java.lang.String message
         7: .line 348
            aload 4 /* e */
            instanceof java.lang.Throwable
            ifeq 9
         8: .line 349
            new com.jcraft.jsch.JSchException
            dup
            aload 5 /* message */
            aload 4 /* e */
            invokespecial com.jcraft.jsch.JSchException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
         9: .line 350
      StackMap locals: java.lang.Exception java.lang.String
      StackMap stack:
            new com.jcraft.jsch.JSchException
            dup
            aload 5 /* message */
            invokespecial com.jcraft.jsch.JSchException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String message
        end local 4 // java.lang.Exception e
        10: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* host */
            astore 4 /* _host */
        start local 4 // java.lang.String _host
        11: .line 354
            iload 1 /* port */
            istore 5 /* _port */
        start local 5 // int _port
        12: .line 355
            iconst_1
            anewarray java.net.Socket
            astore 6 /* sockp */
        start local 6 // java.net.Socket[] sockp
        13: .line 356
            iconst_1
            anewarray java.lang.Exception
            astore 7 /* ee */
        start local 7 // java.lang.Exception[] ee
        14: .line 357
            ldc ""
            astore 8 /* message */
        start local 8 // java.lang.String message
        15: .line 358
            new java.lang.Thread
            dup
            new com.jcraft.jsch.Util$1
            dup
            aload 6 /* sockp */
            aload 4 /* _host */
            iload 5 /* _port */
            aload 7 /* ee */
            invokespecial com.jcraft.jsch.Util$1.<init>:([Ljava/net/Socket;Ljava/lang/String;I[Ljava/lang/Exception;)V
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
            astore 9 /* tmp */
        start local 9 // java.lang.Thread tmp
        16: .line 376
            aload 9 /* tmp */
            new java.lang.StringBuilder
            dup
            ldc "Opening Socket "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.Thread.setName:(Ljava/lang/String;)V
        17: .line 377
            aload 9 /* tmp */
            invokevirtual java.lang.Thread.start:()V
        18: .line 379
            aload 9 /* tmp */
            iload 2 /* timeout */
            i2l
            invokevirtual java.lang.Thread.join:(J)V
        19: .line 380
            ldc "timeout: "
            astore 8 /* message */
        20: .line 381
            goto 22
        21: .line 382
      StackMap locals: java.lang.String int int java.net.Socket java.lang.String int java.net.Socket[] java.lang.Exception[] java.lang.String java.lang.Thread
      StackMap stack: java.lang.InterruptedException
            pop
        22: .line 384
      StackMap locals:
      StackMap stack:
            aload 6 /* sockp */
            iconst_0
            aaload
            ifnull 25
            aload 6 /* sockp */
            iconst_0
            aaload
            invokevirtual java.net.Socket.isConnected:()Z
            ifeq 25
        23: .line 385
            aload 6 /* sockp */
            iconst_0
            aaload
            astore 3 /* socket */
        24: .line 386
            goto 31
        25: .line 388
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 8 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "socket is not established"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* message */
        26: .line 389
            aload 7 /* ee */
            iconst_0
            aaload
            ifnull 28
        27: .line 390
            aload 7 /* ee */
            iconst_0
            aaload
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            astore 8 /* message */
        28: .line 392
      StackMap locals:
      StackMap stack:
            aload 9 /* tmp */
            invokevirtual java.lang.Thread.interrupt:()V
        29: .line 393
            aconst_null
            astore 9 /* tmp */
        30: .line 394
            new com.jcraft.jsch.JSchException
            dup
            aload 8 /* message */
            aload 7 /* ee */
            iconst_0
            aaload
            invokespecial com.jcraft.jsch.JSchException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        31: .line 396
      StackMap locals:
      StackMap stack:
            aload 3 /* socket */
            areturn
        end local 9 // java.lang.Thread tmp
        end local 8 // java.lang.String message
        end local 7 // java.lang.Exception[] ee
        end local 6 // java.net.Socket[] sockp
        end local 5 // int _port
        end local 4 // java.lang.String _host
        end local 3 // java.net.Socket socket
        end local 2 // int timeout
        end local 1 // int port
        end local 0 // java.lang.String host
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   32     0     host  Ljava/lang/String;
            0   32     1     port  I
            0   32     2  timeout  I
            1   32     3   socket  Ljava/net/Socket;
            6   10     4        e  Ljava/lang/Exception;
            7   10     5  message  Ljava/lang/String;
           11   32     4    _host  Ljava/lang/String;
           12   32     5    _port  I
           13   32     6    sockp  [Ljava/net/Socket;
           14   32     7       ee  [Ljava/lang/Exception;
           15   32     8  message  Ljava/lang/String;
           16   32     9      tmp  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           2     4       5  Class java.lang.Exception
          18    20      21  Class java.lang.InterruptedException
    Exceptions:
      throws com.jcraft.jsch.JSchException
    MethodParameters:
         Name  Flags
      host     
      port     
      timeout  

  static byte[] str2byte(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String str
        start local 1 // java.lang.String encoding
         0: .line 400
            aload 0 /* str */
            ifnonnull 2
         1: .line 401
            aconst_null
            areturn
         2: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            aload 1 /* encoding */
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
         3: areturn
         4: .line 403
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
            pop
         5: .line 404
            aload 0 /* str */
            invokevirtual java.lang.String.getBytes:()[B
            areturn
        end local 1 // java.lang.String encoding
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0       str  Ljava/lang/String;
            0    6     1  encoding  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.UnsupportedEncodingException
    MethodParameters:
          Name  Flags
      str       
      encoding  

  static byte[] str2byte(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String str
         0: .line 409
            aload 0 /* str */
            ldc "UTF-8"
            invokestatic com.jcraft.jsch.Util.str2byte:(Ljava/lang/String;Ljava/lang/String;)[B
            areturn
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  static java.lang.String byte2str(byte[], java.lang.String);
    descriptor: ([BLjava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // byte[] str
        start local 1 // java.lang.String encoding
         0: .line 413
            aload 0 /* str */
            iconst_0
            aload 0 /* str */
            arraylength
            aload 1 /* encoding */
            invokestatic com.jcraft.jsch.Util.byte2str:([BIILjava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String encoding
        end local 0 // byte[] str
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0       str  [B
            0    1     1  encoding  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      str       
      encoding  

  static java.lang.String byte2str(byte[], int, int, java.lang.String);
    descriptor: ([BIILjava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // byte[] str
        start local 1 // int s
        start local 2 // int l
        start local 3 // java.lang.String encoding
         0: .line 417
            new java.lang.String
            dup
            aload 0 /* str */
            iload 1 /* s */
            iload 2 /* l */
            aload 3 /* encoding */
            invokespecial java.lang.String.<init>:([BIILjava/lang/String;)V
         1: areturn
         2: .line 418
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
            pop
         3: .line 419
            new java.lang.String
            dup
            aload 0 /* str */
            iload 1 /* s */
            iload 2 /* l */
            invokespecial java.lang.String.<init>:([BII)V
            areturn
        end local 3 // java.lang.String encoding
        end local 2 // int l
        end local 1 // int s
        end local 0 // byte[] str
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0       str  [B
            0    4     1         s  I
            0    4     2         l  I
            0    4     3  encoding  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.UnsupportedEncodingException
    MethodParameters:
          Name  Flags
      str       
      s         
      l         
      encoding  

  static java.lang.String byte2str(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // byte[] str
         0: .line 424
            aload 0 /* str */
            iconst_0
            aload 0 /* str */
            arraylength
            ldc "UTF-8"
            invokestatic com.jcraft.jsch.Util.byte2str:([BIILjava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // byte[] str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  [B
    MethodParameters:
      Name  Flags
      str   

  static java.lang.String byte2str(byte[], int, int);
    descriptor: ([BII)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // byte[] str
        start local 1 // int s
        start local 2 // int l
         0: .line 428
            aload 0 /* str */
            iload 1 /* s */
            iload 2 /* l */
            ldc "UTF-8"
            invokestatic com.jcraft.jsch.Util.byte2str:([BIILjava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // int l
        end local 1 // int s
        end local 0 // byte[] str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  [B
            0    1     1     s  I
            0    1     2     l  I
    MethodParameters:
      Name  Flags
      str   
      s     
      l     

  static java.lang.String toHex(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // byte[] str
         0: .line 432
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuffer sb
         1: .line 433
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 10
         3: .line 434
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            aload 0 /* str */
            iload 2 /* i */
            baload
            sipush 255
            iand
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            astore 3 /* foo */
        start local 3 // java.lang.String foo
         4: .line 435
            aload 1 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* foo */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 5
            ldc "0"
            goto 6
      StackMap locals: byte[] java.lang.StringBuffer int java.lang.String
      StackMap stack: java.lang.StringBuffer java.lang.StringBuilder
         5: ldc ""
      StackMap locals: byte[] java.lang.StringBuffer int java.lang.String
      StackMap stack: java.lang.StringBuffer java.lang.StringBuilder java.lang.String
         6: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* foo */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         7: .line 436
            iload 2 /* i */
            iconst_1
            iadd
            aload 0 /* str */
            arraylength
            if_icmpge 9
         8: .line 437
            aload 1 /* sb */
            ldc ":"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 3 // java.lang.String foo
         9: .line 433
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* str */
            arraylength
            if_icmplt 3
        end local 2 // int i
        11: .line 439
            aload 1 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuffer sb
        end local 0 // byte[] str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0   str  [B
            1   12     1    sb  Ljava/lang/StringBuffer;
            2   11     2     i  I
            4    9     3   foo  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  static void bzero(byte[]);
    descriptor: ([B)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // byte[] foo
         0: .line 465
            aload 0 /* foo */
            ifnonnull 2
         1: .line 466
            return
         2: .line 467
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         3: goto 6
         4: .line 468
      StackMap locals: int
      StackMap stack:
            aload 0 /* foo */
            iload 1 /* i */
            iconst_0
            bastore
         5: .line 467
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 1 /* i */
            aload 0 /* foo */
            arraylength
            if_icmplt 4
        end local 1 // int i
         7: .line 469
            return
        end local 0 // byte[] foo
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0   foo  [B
            3    7     1     i  I
    MethodParameters:
      Name  Flags
      foo   

  static java.lang.String diffString(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // java.lang.String str
        start local 1 // java.lang.String[] not_available
         0: .line 472
            aload 0 /* str */
            ldc ","
            invokestatic com.jcraft.jsch.Util.split:(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* stra */
        start local 2 // java.lang.String[] stra
         1: .line 473
            aconst_null
            astore 3 /* result */
        start local 3 // java.lang.String result
         2: .line 475
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 13
         4: .line 476
      StackMap locals: java.lang.String[] java.lang.String int
      StackMap stack:
            iconst_0
            istore 5 /* j */
        start local 5 // int j
         5: goto 9
         6: .line 477
      StackMap locals: int
      StackMap stack:
            aload 2 /* stra */
            iload 4 /* i */
            aaload
            aload 1 /* not_available */
            iload 5 /* j */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 478
            goto 12
         8: .line 476
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* j */
            aload 1 /* not_available */
            arraylength
            if_icmplt 6
        end local 5 // int j
        10: .line 481
            aload 3 /* result */
            ifnonnull 11
            aload 2 /* stra */
            iload 4 /* i */
            aaload
            astore 3 /* result */
            goto 12
        11: .line 482
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 3 /* result */
            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;
            aload 2 /* stra */
            iload 4 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* result */
        12: .line 475
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            aload 2 /* stra */
            arraylength
            if_icmplt 4
        end local 4 // int i
        14: .line 484
            aload 3 /* result */
            areturn
        end local 3 // java.lang.String result
        end local 2 // java.lang.String[] stra
        end local 1 // java.lang.String[] not_available
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0            str  Ljava/lang/String;
            0   15     1  not_available  [Ljava/lang/String;
            1   15     2           stra  [Ljava/lang/String;
            2   15     3         result  Ljava/lang/String;
            3   14     4              i  I
            5   10     5              j  I
    MethodParameters:
               Name  Flags
      str            
      not_available  

  static java.lang.String checkTilde(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String str
         0: .line 489
            aload 0 /* str */
            ldc "~"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 4
         1: .line 490
            aload 0 /* str */
            ldc "~"
            ldc "user.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 0 /* str */
         2: .line 492
            goto 4
         3: .line 493
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         4: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            areturn
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   str  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.SecurityException
    MethodParameters:
      Name  Flags
      str   

  private static int skipUTF8Char(byte);
    descriptor: (B)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte b
         0: .line 499
            iload 0 /* b */
            sipush 128
            iand
            i2b
            ifne 1
            iconst_1
            ireturn
         1: .line 500
      StackMap locals:
      StackMap stack:
            iload 0 /* b */
            sipush 224
            iand
            i2b
            bipush -64
            if_icmpne 2
            iconst_2
            ireturn
         2: .line 501
      StackMap locals:
      StackMap stack:
            iload 0 /* b */
            sipush 240
            iand
            i2b
            bipush -32
            if_icmpne 3
            iconst_3
            ireturn
         3: .line 502
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // byte b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     b  B
    MethodParameters:
      Name  Flags
      b     

  static byte[] fromFile(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // java.lang.String _file
         0: .line 506
            aload 0 /* _file */
            invokestatic com.jcraft.jsch.Util.checkTilde:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* _file */
         1: .line 507
            new java.io.File
            dup
            aload 0 /* _file */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 1 /* file */
        start local 1 // java.io.File file
         2: .line 508
            new java.io.FileInputStream
            dup
            aload 0 /* _file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 2 /* fis */
        start local 2 // java.io.FileInputStream fis
         3: .line 510
            aload 1 /* file */
            invokevirtual java.io.File.length:()J
            l2i
            newarray 8
            astore 3 /* result */
        start local 3 // byte[] result
         4: .line 511
            iconst_0
            istore 4 /* len */
        start local 4 // int len
         5: .line 513
      StackMap locals: java.lang.String java.io.File java.io.FileInputStream byte[] int
      StackMap stack:
            aload 2 /* fis */
            aload 3 /* result */
            iload 4 /* len */
            aload 3 /* result */
            arraylength
            iload 4 /* len */
            isub
            invokevirtual java.io.FileInputStream.read:([BII)I
            istore 5 /* i */
        start local 5 // int i
         6: .line 514
            iload 5 /* i */
            ifgt 8
         7: .line 515
            goto 10
         8: .line 516
      StackMap locals: int
      StackMap stack:
            iload 4 /* len */
            iload 5 /* i */
            iadd
            istore 4 /* len */
        end local 5 // int i
         9: .line 512
            goto 5
        10: .line 518
      StackMap locals:
      StackMap stack:
            aload 2 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        11: .line 519
            aload 3 /* result */
            astore 7
        12: .line 522
            aload 2 /* fis */
            ifnull 14
        13: .line 523
            aload 2 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        14: .line 519
      StackMap locals: java.lang.String java.io.File java.io.FileInputStream byte[] int top top byte[]
      StackMap stack:
            aload 7
            areturn
        end local 4 // int len
        end local 3 // byte[] result
        15: .line 521
      StackMap locals: java.lang.String java.io.File java.io.FileInputStream
      StackMap stack: java.lang.Throwable
            astore 6
        16: .line 522
            aload 2 /* fis */
            ifnull 18
        17: .line 523
            aload 2 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        18: .line 524
      StackMap locals: java.lang.String java.io.File java.io.FileInputStream top top top java.lang.Throwable
      StackMap stack:
            aload 6
            athrow
        end local 2 // java.io.FileInputStream fis
        end local 1 // java.io.File file
        end local 0 // java.lang.String _file
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0   _file  Ljava/lang/String;
            2   19     1    file  Ljava/io/File;
            3   19     2     fis  Ljava/io/FileInputStream;
            4   15     3  result  [B
            5   15     4     len  I
            6    9     5       i  I
      Exception table:
        from    to  target  type
           3    12      15  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      _file  
}
SourceFile: "Util.java"
NestMembers:
  com.jcraft.jsch.Util$1
InnerClasses:
  com.jcraft.jsch.Util$1