class java.lang.StringCoding
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.lang.StringCoding
  super_class: java.lang.Object
{
  private static final java.lang.ThreadLocal<java.lang.ref.SoftReference<java.lang.StringCoding$StringDecoder>> decoder;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/lang/ref/SoftReference<Ljava/lang/StringCoding$StringDecoder;>;>;

  private static final java.lang.ThreadLocal<java.lang.ref.SoftReference<java.lang.StringCoding$StringEncoder>> encoder;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/lang/ref/SoftReference<Ljava/lang/StringCoding$StringEncoder;>;>;

  private static final java.nio.charset.Charset ISO_8859_1;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.nio.charset.Charset US_ASCII;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.nio.charset.Charset UTF_8;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static boolean warnUnsupportedCharset;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 60
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
         1: .line 59
            putstatic java.lang.StringCoding.decoder:Ljava/lang/ThreadLocal;
         2: .line 62
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
         3: .line 61
            putstatic java.lang.StringCoding.encoder:Ljava/lang/ThreadLocal;
         4: .line 64
            ldc "iso-8859-1"
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            putstatic java.lang.StringCoding.ISO_8859_1:Ljava/nio/charset/Charset;
         5: .line 65
            ldc "us-ascii"
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            putstatic java.lang.StringCoding.US_ASCII:Ljava/nio/charset/Charset;
         6: .line 66
            ldc "utf-8"
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            putstatic java.lang.StringCoding.UTF_8:Ljava/nio/charset/Charset;
         7: .line 68
            iconst_1
            putstatic java.lang.StringCoding.warnUnsupportedCharset:Z
            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 // java.lang.StringCoding this
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // java.lang.StringCoding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/StringCoding;

  private static <T> T deref(java.lang.ThreadLocal<java.lang.ref.SoftReference<T>>);
    descriptor: (Ljava/lang/ThreadLocal;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.lang.ThreadLocal tl
         0: .line 71
            aload 0 /* tl */
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.lang.ref.SoftReference
            astore 1 /* sr */
        start local 1 // java.lang.ref.SoftReference sr
         1: .line 72
            aload 1 /* sr */
            ifnonnull 3
         2: .line 73
            aconst_null
            areturn
         3: .line 74
      StackMap locals: java.lang.ref.SoftReference
      StackMap stack:
            aload 1 /* sr */
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            areturn
        end local 1 // java.lang.ref.SoftReference sr
        end local 0 // java.lang.ThreadLocal tl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    tl  Ljava/lang/ThreadLocal<Ljava/lang/ref/SoftReference<TT;>;>;
            1    4     1    sr  Ljava/lang/ref/SoftReference<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/ThreadLocal<Ljava/lang/ref/SoftReference<TT;>;>;)TT;
    MethodParameters:
      Name  Flags
      tl    

  private static <T> void set(java.lang.ThreadLocal<java.lang.ref.SoftReference<T>>, );
    descriptor: (Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.lang.ThreadLocal tl
        start local 1 // java.lang.Object ob
         0: .line 78
            aload 0 /* tl */
            new java.lang.ref.SoftReference
            dup
            aload 1 /* ob */
            invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 79
            return
        end local 1 // java.lang.Object ob
        end local 0 // java.lang.ThreadLocal tl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    tl  Ljava/lang/ThreadLocal<Ljava/lang/ref/SoftReference<TT;>;>;
            0    2     1    ob  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/ThreadLocal<Ljava/lang/ref/SoftReference<TT;>;>;TT;)V
    MethodParameters:
      Name  Flags
      tl    
      ob    

  private static byte[] safeTrim(byte[], int, boolean);
    descriptor: ([BIZ)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // byte[] ba
        start local 1 // int len
        start local 2 // boolean isTrusted
         0: .line 84
            iload 1 /* len */
            aload 0 /* ba */
            arraylength
            if_icmpne 2
            iload 2 /* isTrusted */
            ifne 1
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnonnull 2
         1: .line 85
      StackMap locals:
      StackMap stack:
            aload 0 /* ba */
            areturn
         2: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* ba */
            iload 1 /* len */
            invokestatic java.util.Arrays.copyOf:([BI)[B
            areturn
        end local 2 // boolean isTrusted
        end local 1 // int len
        end local 0 // byte[] ba
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0         ba  [B
            0    3     1        len  I
            0    3     2  isTrusted  Z
    MethodParameters:
           Name  Flags
      ba         
      len        
      isTrusted  

  private static int scale(int, float);
    descriptor: (IF)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int len
        start local 1 // float expansionFactor
         0: .line 93
            iload 0 /* len */
            i2d
            fload 1 /* expansionFactor */
            f2d
            dmul
            d2i
            ireturn
        end local 1 // float expansionFactor
        end local 0 // int len
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0              len  I
            0    1     1  expansionFactor  F
    MethodParameters:
                 Name  Flags
      len              
      expansionFactor  

  private static java.nio.charset.Charset lookupCharset(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/nio/charset/Charset;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String csn
         0: .line 97
            aload 0 /* csn */
            invokestatic java.nio.charset.Charset.isSupported:(Ljava/lang/String;)Z
            ifeq 5
         1: .line 99
            aload 0 /* csn */
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
         2: areturn
         3: .line 100
      StackMap locals:
      StackMap stack: java.nio.charset.UnsupportedCharsetException
            astore 1 /* x */
        start local 1 // java.nio.charset.UnsupportedCharsetException x
         4: .line 101
            new java.lang.Error
            dup
            aload 1 /* x */
            invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.nio.charset.UnsupportedCharsetException x
         5: .line 104
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.String csn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   csn  Ljava/lang/String;
            4    5     1     x  Ljava/nio/charset/UnsupportedCharsetException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.nio.charset.UnsupportedCharsetException
    MethodParameters:
      Name  Flags
      csn   

  private static void warnUnsupportedCharset(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String csn
         0: .line 108
            getstatic java.lang.StringCoding.warnUnsupportedCharset:Z
            ifeq 5
         1: .line 112
            new java.lang.StringBuilder
            dup
            ldc "WARNING: Default charset "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* csn */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 113
            ldc " not supported, using ISO-8859-1 instead\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 112
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.StringCoding.err:(Ljava/lang/String;)V
         4: .line 114
            iconst_0
            putstatic java.lang.StringCoding.warnUnsupportedCharset:Z
         5: .line 116
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String csn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   csn  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      csn   

  public static boolean hasNegatives(byte[], int, int);
    descriptor: ([BII)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // byte[] ba
        start local 1 // int off
        start local 2 // int len
         0: .line 151
            iload 1 /* off */
            istore 3 /* i */
        start local 3 // int i
         1: goto 5
         2: .line 152
      StackMap locals: int
      StackMap stack:
            aload 0 /* ba */
            iload 3 /* i */
            baload
            ifge 4
         3: .line 153
            iconst_1
            ireturn
         4: .line 151
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            iload 1 /* off */
            iload 2 /* len */
            iadd
            if_icmplt 2
        end local 3 // int i
         6: .line 156
            iconst_0
            ireturn
        end local 2 // int len
        end local 1 // int off
        end local 0 // byte[] ba
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    ba  [B
            0    7     1   off  I
            0    7     2   len  I
            1    6     3     i  I
    RuntimeVisibleAnnotations: 
      jdk.internal.HotSpotIntrinsicCandidate()
    MethodParameters:
      Name  Flags
      ba    
      off   
      len   

  static java.lang.StringCoding$Result decode(java.lang.String, byte[], int, int);
    descriptor: (Ljava/lang/String;[BII)Ljava/lang/StringCoding$Result;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // java.lang.String charsetName
        start local 1 // byte[] ba
        start local 2 // int off
        start local 3 // int len
         0: .line 242
            getstatic java.lang.StringCoding.decoder:Ljava/lang/ThreadLocal;
            invokestatic java.lang.StringCoding.deref:(Ljava/lang/ThreadLocal;)Ljava/lang/Object;
            checkcast java.lang.StringCoding$StringDecoder
            astore 4 /* sd */
        start local 4 // java.lang.StringCoding$StringDecoder sd
         1: .line 243
            aload 0 /* charsetName */
            ifnonnull 2
            ldc "ISO-8859-1"
            goto 3
      StackMap locals: java.lang.StringCoding$StringDecoder
      StackMap stack:
         2: aload 0 /* charsetName */
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 5 /* csn */
        start local 5 // java.lang.String csn
         4: .line 244
            aload 4 /* sd */
            ifnull 6
            aload 5 /* csn */
            aload 4 /* sd */
            invokevirtual java.lang.StringCoding$StringDecoder.requestedCharsetName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
         5: .line 245
            aload 5 /* csn */
            aload 4 /* sd */
            invokevirtual java.lang.StringCoding$StringDecoder.charsetName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 21
         6: .line 246
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 4 /* sd */
         7: .line 248
            aload 5 /* csn */
            invokestatic java.lang.StringCoding.lookupCharset:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 6 /* cs */
        start local 6 // java.nio.charset.Charset cs
         8: .line 249
            aload 6 /* cs */
            ifnull 18
         9: .line 250
            aload 6 /* cs */
            getstatic java.lang.StringCoding.UTF_8:Ljava/nio/charset/Charset;
            if_acmpne 12
        10: .line 251
            new java.lang.StringDecoderUTF8
            dup
            aload 6 /* cs */
            aload 5 /* csn */
            invokespecial java.lang.StringDecoderUTF8.<init>:(Ljava/nio/charset/Charset;Ljava/lang/String;)V
            astore 4 /* sd */
        11: .line 252
            goto 18
      StackMap locals: java.nio.charset.Charset
      StackMap stack:
        12: aload 6 /* cs */
            getstatic java.lang.StringCoding.ISO_8859_1:Ljava/nio/charset/Charset;
            if_acmpne 15
        13: .line 253
            new java.lang.StringCoding$StringDecoder8859_1
            dup
            aload 6 /* cs */
            aload 5 /* csn */
            invokespecial java.lang.StringCoding$StringDecoder8859_1.<init>:(Ljava/nio/charset/Charset;Ljava/lang/String;)V
            astore 4 /* sd */
        14: .line 254
            goto 18
        15: .line 255
      StackMap locals:
      StackMap stack:
            new java.lang.StringCoding$StringDecoder
            dup
            aload 6 /* cs */
            aload 5 /* csn */
            invokespecial java.lang.StringCoding$StringDecoder.<init>:(Ljava/nio/charset/Charset;Ljava/lang/String;)V
            astore 4 /* sd */
        end local 6 // java.nio.charset.Charset cs
        16: .line 258
            goto 18
      StackMap locals: java.lang.String byte[] int int java.lang.StringCoding$StringDecoder java.lang.String
      StackMap stack: java.nio.charset.IllegalCharsetNameException
        17: pop
        18: .line 259
      StackMap locals:
      StackMap stack:
            aload 4 /* sd */
            ifnonnull 20
        19: .line 260
            new java.io.UnsupportedEncodingException
            dup
            aload 5 /* csn */
            invokespecial java.io.UnsupportedEncodingException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 261
      StackMap locals:
      StackMap stack:
            getstatic java.lang.StringCoding.decoder:Ljava/lang/ThreadLocal;
            aload 4 /* sd */
            invokestatic java.lang.StringCoding.set:(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
        21: .line 263
      StackMap locals:
      StackMap stack:
            aload 4 /* sd */
            aload 1 /* ba */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.lang.StringCoding$StringDecoder.decode:([BII)Ljava/lang/StringCoding$Result;
            areturn
        end local 5 // java.lang.String csn
        end local 4 // java.lang.StringCoding$StringDecoder sd
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] ba
        end local 0 // java.lang.String charsetName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0  charsetName  Ljava/lang/String;
            0   22     1           ba  [B
            0   22     2          off  I
            0   22     3          len  I
            1   22     4           sd  Ljava/lang/StringCoding$StringDecoder;
            4   22     5          csn  Ljava/lang/String;
            8   16     6           cs  Ljava/nio/charset/Charset;
      Exception table:
        from    to  target  type
           7    16      17  Class java.nio.charset.IllegalCharsetNameException
    Exceptions:
      throws java.io.UnsupportedEncodingException
    MethodParameters:
             Name  Flags
      charsetName  
      ba           
      off          
      len          

  static java.lang.StringCoding$Result decode(java.nio.charset.Charset, byte[], int, int);
    descriptor: (Ljava/nio/charset/Charset;[BII)Ljava/lang/StringCoding$Result;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // java.nio.charset.Charset cs
        start local 1 // byte[] ba
        start local 2 // int off
        start local 3 // int len
         0: .line 283
            aload 0 /* cs */
            getstatic java.lang.StringCoding.UTF_8:Ljava/nio/charset/Charset;
            if_acmpne 2
         1: .line 284
            aload 1 /* ba */
            iload 2 /* off */
            iload 3 /* len */
            new java.lang.StringCoding$Result
            dup
            invokespecial java.lang.StringCoding$Result.<init>:()V
            invokestatic java.lang.StringDecoderUTF8.decode:([BIILjava/lang/StringCoding$Result;)Ljava/lang/StringCoding$Result;
            areturn
         2: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* cs */
            invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
            astore 4 /* cd */
        start local 4 // java.nio.charset.CharsetDecoder cd
         3: .line 288
            aload 0 /* cs */
            getstatic java.lang.StringCoding.ISO_8859_1:Ljava/nio/charset/Charset;
            if_acmpeq 6
            aload 4 /* cd */
            instanceof sun.nio.cs.ArrayDecoder
            ifeq 11
         4: .line 289
            aload 4 /* cd */
            checkcast sun.nio.cs.ArrayDecoder
            invokeinterface sun.nio.cs.ArrayDecoder.isASCIICompatible:()Z
            ifeq 11
         5: .line 290
            aload 1 /* ba */
            iload 2 /* off */
            iload 3 /* len */
            invokestatic java.lang.StringCoding.hasNegatives:([BII)Z
            ifne 11
         6: .line 291
      StackMap locals: java.nio.charset.CharsetDecoder
      StackMap stack:
            getstatic java.lang.String.COMPACT_STRINGS:Z
            ifeq 10
         7: .line 292
            new java.lang.StringCoding$Result
            dup
            invokespecial java.lang.StringCoding$Result.<init>:()V
            aload 1 /* ba */
            iload 2 /* off */
            iload 2 /* off */
            iload 3 /* len */
            iadd
            invokestatic java.util.Arrays.copyOfRange:([BII)[B
         8: .line 293
            iconst_0
         9: .line 292
            invokevirtual java.lang.StringCoding$Result.with:([BB)Ljava/lang/StringCoding$Result;
            areturn
        10: .line 295
      StackMap locals:
      StackMap stack:
            new java.lang.StringCoding$Result
            dup
            invokespecial java.lang.StringCoding$Result.<init>:()V
            aload 1 /* ba */
            iload 2 /* off */
            iload 3 /* len */
            invokestatic java.lang.StringLatin1.inflate:([BII)[B
            iconst_1
            invokevirtual java.lang.StringCoding$Result.with:([BB)Ljava/lang/StringCoding$Result;
            areturn
        11: .line 298
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            aload 4 /* cd */
            invokevirtual java.nio.charset.CharsetDecoder.maxCharsPerByte:()F
            invokestatic java.lang.StringCoding.scale:(IF)I
            istore 5 /* en */
        start local 5 // int en
        12: .line 299
            iload 3 /* len */
            ifne 14
        13: .line 300
            new java.lang.StringCoding$Result
            dup
            invokespecial java.lang.StringCoding$Result.<init>:()V
            invokevirtual java.lang.StringCoding$Result.with:()Ljava/lang/StringCoding$Result;
            areturn
        14: .line 302
      StackMap locals: int
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 18
        15: .line 303
            aload 0 /* cs */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
            ifnull 18
        16: .line 304
            aload 1 /* ba */
            iload 2 /* off */
            iload 2 /* off */
            iload 3 /* len */
            iadd
            invokestatic java.util.Arrays.copyOfRange:([BII)[B
            astore 1 /* ba */
        17: .line 305
            iconst_0
            istore 2 /* off */
        18: .line 307
      StackMap locals:
      StackMap stack:
            aload 4 /* cd */
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetDecoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        19: .line 308
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetDecoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        20: .line 309
            invokevirtual java.nio.charset.CharsetDecoder.reset:()Ljava/nio/charset/CharsetDecoder;
            pop
        21: .line 311
            iload 5 /* en */
            newarray 5
            astore 6 /* ca */
        start local 6 // char[] ca
        22: .line 312
            aload 4 /* cd */
            instanceof sun.nio.cs.ArrayDecoder
            ifeq 25
        23: .line 313
            aload 4 /* cd */
            checkcast sun.nio.cs.ArrayDecoder
            aload 1 /* ba */
            iload 2 /* off */
            iload 3 /* len */
            aload 6 /* ca */
            invokeinterface sun.nio.cs.ArrayDecoder.decode:([BII[C)I
            istore 7 /* clen */
        start local 7 // int clen
        24: .line 314
            new java.lang.StringCoding$Result
            dup
            invokespecial java.lang.StringCoding$Result.<init>:()V
            aload 6 /* ca */
            iconst_0
            iload 7 /* clen */
            invokevirtual java.lang.StringCoding$Result.with:([CII)Ljava/lang/StringCoding$Result;
            areturn
        end local 7 // int clen
        25: .line 316
      StackMap locals: char[]
      StackMap stack:
            aload 1 /* ba */
            iload 2 /* off */
            iload 3 /* len */
            invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
            astore 7 /* bb */
        start local 7 // java.nio.ByteBuffer bb
        26: .line 317
            aload 6 /* ca */
            invokestatic java.nio.CharBuffer.wrap:([C)Ljava/nio/CharBuffer;
            astore 8 /* cb */
        start local 8 // java.nio.CharBuffer cb
        27: .line 319
            aload 4 /* cd */
            aload 7 /* bb */
            aload 8 /* cb */
            iconst_1
            invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;
            astore 9 /* cr */
        start local 9 // java.nio.charset.CoderResult cr
        28: .line 320
            aload 9 /* cr */
            invokevirtual java.nio.charset.CoderResult.isUnderflow:()Z
            ifne 30
        29: .line 321
            aload 9 /* cr */
            invokevirtual java.nio.charset.CoderResult.throwException:()V
        30: .line 322
      StackMap locals: java.nio.ByteBuffer java.nio.CharBuffer java.nio.charset.CoderResult
      StackMap stack:
            aload 4 /* cd */
            aload 8 /* cb */
            invokevirtual java.nio.charset.CharsetDecoder.flush:(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
            astore 9 /* cr */
        31: .line 323
            aload 9 /* cr */
            invokevirtual java.nio.charset.CoderResult.isUnderflow:()Z
            ifne 36
        32: .line 324
            aload 9 /* cr */
            invokevirtual java.nio.charset.CoderResult.throwException:()V
        end local 9 // java.nio.charset.CoderResult cr
        33: .line 325
            goto 36
      StackMap locals: java.nio.charset.Charset byte[] int int java.nio.charset.CharsetDecoder int char[] java.nio.ByteBuffer java.nio.CharBuffer
      StackMap stack: java.nio.charset.CharacterCodingException
        34: astore 9 /* x */
        start local 9 // java.nio.charset.CharacterCodingException x
        35: .line 328
            new java.lang.Error
            dup
            aload 9 /* x */
            invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 9 // java.nio.charset.CharacterCodingException x
        36: .line 330
      StackMap locals:
      StackMap stack:
            new java.lang.StringCoding$Result
            dup
            invokespecial java.lang.StringCoding$Result.<init>:()V
            aload 6 /* ca */
            iconst_0
            aload 8 /* cb */
            invokevirtual java.nio.CharBuffer.position:()I
            invokevirtual java.lang.StringCoding$Result.with:([CII)Ljava/lang/StringCoding$Result;
            areturn
        end local 8 // java.nio.CharBuffer cb
        end local 7 // java.nio.ByteBuffer bb
        end local 6 // char[] ca
        end local 5 // int en
        end local 4 // java.nio.charset.CharsetDecoder cd
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] ba
        end local 0 // java.nio.charset.Charset cs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   37     0    cs  Ljava/nio/charset/Charset;
            0   37     1    ba  [B
            0   37     2   off  I
            0   37     3   len  I
            3   37     4    cd  Ljava/nio/charset/CharsetDecoder;
           12   37     5    en  I
           22   37     6    ca  [C
           24   25     7  clen  I
           26   37     7    bb  Ljava/nio/ByteBuffer;
           27   37     8    cb  Ljava/nio/CharBuffer;
           28   33     9    cr  Ljava/nio/charset/CoderResult;
           35   36     9     x  Ljava/nio/charset/CharacterCodingException;
      Exception table:
        from    to  target  type
          27    33      34  Class java.nio.charset.CharacterCodingException
    MethodParameters:
      Name  Flags
      cs    
      ba    
      off   
      len   

  static java.lang.StringCoding$Result decode(byte[], int, int);
    descriptor: ([BII)Ljava/lang/StringCoding$Result;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // byte[] ba
        start local 1 // int off
        start local 2 // int len
         0: .line 334
            invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            astore 3 /* csn */
        start local 3 // java.lang.String csn
         1: .line 337
            aload 3 /* csn */
            aload 0 /* ba */
            iload 1 /* off */
            iload 2 /* len */
            invokestatic java.lang.StringCoding.decode:(Ljava/lang/String;[BII)Ljava/lang/StringCoding$Result;
         2: areturn
         3: .line 338
      StackMap locals: byte[] int int java.lang.String
      StackMap stack: java.io.UnsupportedEncodingException
            pop
         4: .line 339
            aload 3 /* csn */
            invokestatic java.lang.StringCoding.warnUnsupportedCharset:(Ljava/lang/String;)V
         5: .line 342
            ldc "ISO-8859-1"
            aload 0 /* ba */
            iload 1 /* off */
            iload 2 /* len */
            invokestatic java.lang.StringCoding.decode:(Ljava/lang/String;[BII)Ljava/lang/StringCoding$Result;
         6: areturn
         7: .line 343
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
            astore 4 /* x */
        start local 4 // java.io.UnsupportedEncodingException x
         8: .line 346
            new java.lang.StringBuilder
            dup
            ldc "ISO-8859-1 charset not available: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* x */
            invokevirtual java.io.UnsupportedEncodingException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.StringCoding.err:(Ljava/lang/String;)V
         9: .line 349
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        10: .line 350
            aconst_null
            areturn
        end local 4 // java.io.UnsupportedEncodingException x
        end local 3 // java.lang.String csn
        end local 2 // int len
        end local 1 // int off
        end local 0 // byte[] ba
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0    ba  [B
            0   11     1   off  I
            0   11     2   len  I
            1   11     3   csn  Ljava/lang/String;
            8   11     4     x  Ljava/io/UnsupportedEncodingException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.UnsupportedEncodingException
           5     6       7  Class java.io.UnsupportedEncodingException
    MethodParameters:
      Name  Flags
      ba    
      off   
      len   

  private static int implEncodeISOArray(byte[], int, byte[], int, int);
    descriptor: ([BI[BII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // byte[] sa
        start local 1 // int sp
        start local 2 // byte[] da
        start local 3 // int dp
        start local 4 // int len
         0: .line 429
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: .line 430
            goto 7
         2: .line 431
      StackMap locals: int
      StackMap stack:
            aload 0 /* sa */
            iload 1 /* sp */
            iinc 1 /* sp */ 1
            invokestatic java.lang.StringUTF16.getChar:([BI)C
            istore 6 /* c */
        start local 6 // char c
         3: .line 432
            iload 6 /* c */
            sipush 255
            if_icmple 5
         4: .line 433
            goto 8
         5: .line 434
      StackMap locals: int
      StackMap stack:
            aload 2 /* da */
            iload 3 /* dp */
            iinc 3 /* dp */ 1
            iload 6 /* c */
            i2b
            bastore
        end local 6 // char c
         6: .line 430
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            iload 4 /* len */
            if_icmplt 2
         8: .line 436
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            ireturn
        end local 5 // int i
        end local 4 // int len
        end local 3 // int dp
        end local 2 // byte[] da
        end local 1 // int sp
        end local 0 // byte[] sa
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0    sa  [B
            0    9     1    sp  I
            0    9     2    da  [B
            0    9     3    dp  I
            0    9     4   len  I
            1    9     5     i  I
            3    6     6     c  C
    RuntimeVisibleAnnotations: 
      jdk.internal.HotSpotIntrinsicCandidate()
    MethodParameters:
      Name  Flags
      sa    
      sp    
      da    
      dp    
      len   

  static byte[] encode8859_1(byte, byte[]);
    descriptor: (B[B)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // byte coder
        start local 1 // byte[] val
         0: .line 440
            iload 0 /* coder */
            ifne 2
         1: .line 441
            aload 1 /* val */
            aload 1 /* val */
            arraylength
            invokestatic java.util.Arrays.copyOf:([BI)[B
            areturn
         2: .line 443
      StackMap locals:
      StackMap stack:
            aload 1 /* val */
            arraylength
            iconst_1
            ishr
            istore 2 /* len */
        start local 2 // int len
         3: .line 444
            iload 2 /* len */
            newarray 8
            astore 3 /* dst */
        start local 3 // byte[] dst
         4: .line 445
            iconst_0
            istore 4 /* dp */
        start local 4 // int dp
         5: .line 446
            iconst_0
            istore 5 /* sp */
        start local 5 // int sp
         6: .line 447
            iload 2 /* len */
            istore 6 /* sl */
        start local 6 // int sl
         7: .line 448
            goto 18
         8: .line 449
      StackMap locals: int byte[] int byte[] int int int
      StackMap stack:
            aload 1 /* val */
            iload 5 /* sp */
            aload 3 /* dst */
            iload 4 /* dp */
            iload 2 /* len */
            invokestatic java.lang.StringCoding.implEncodeISOArray:([BI[BII)I
            istore 7 /* ret */
        start local 7 // int ret
         9: .line 450
            iload 5 /* sp */
            iload 7 /* ret */
            iadd
            istore 5 /* sp */
        10: .line 451
            iload 4 /* dp */
            iload 7 /* ret */
            iadd
            istore 4 /* dp */
        11: .line 452
            iload 7 /* ret */
            iload 2 /* len */
            if_icmpeq 18
        12: .line 453
            aload 1 /* val */
            iload 5 /* sp */
            iinc 5 /* sp */ 1
            invokestatic java.lang.StringUTF16.getChar:([BI)C
            istore 8 /* c */
        start local 8 // char c
        13: .line 454
            iload 8 /* c */
            invokestatic java.lang.Character.isHighSurrogate:(C)Z
            ifeq 16
            iload 5 /* sp */
            iload 6 /* sl */
            if_icmpge 16
        14: .line 455
            aload 1 /* val */
            iload 5 /* sp */
            invokestatic java.lang.StringUTF16.getChar:([BI)C
            invokestatic java.lang.Character.isLowSurrogate:(C)Z
            ifeq 16
        15: .line 456
            iinc 5 /* sp */ 1
        16: .line 458
      StackMap locals: int int
      StackMap stack:
            aload 3 /* dst */
            iload 4 /* dp */
            iinc 4 /* dp */ 1
            bipush 63
            bastore
        17: .line 459
            iload 6 /* sl */
            iload 5 /* sp */
            isub
            istore 2 /* len */
        end local 8 // char c
        end local 7 // int ret
        18: .line 448
      StackMap locals:
      StackMap stack:
            iload 5 /* sp */
            iload 6 /* sl */
            if_icmplt 8
        19: .line 462
            iload 4 /* dp */
            aload 3 /* dst */
            arraylength
            if_icmpne 21
        20: .line 463
            aload 3 /* dst */
            areturn
        21: .line 465
      StackMap locals:
      StackMap stack:
            aload 3 /* dst */
            iload 4 /* dp */
            invokestatic java.util.Arrays.copyOf:([BI)[B
            areturn
        end local 6 // int sl
        end local 5 // int sp
        end local 4 // int dp
        end local 3 // byte[] dst
        end local 2 // int len
        end local 1 // byte[] val
        end local 0 // byte coder
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0  coder  B
            0   22     1    val  [B
            3   22     2    len  I
            4   22     3    dst  [B
            5   22     4     dp  I
            6   22     5     sp  I
            7   22     6     sl  I
            9   18     7    ret  I
           13   18     8      c  C
    MethodParameters:
       Name  Flags
      coder  
      val    

  static byte[] encodeASCII(byte, byte[]);
    descriptor: (B[B)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // byte coder
        start local 1 // byte[] val
         0: .line 469
            iload 0 /* coder */
            ifne 11
         1: .line 470
            aload 1 /* val */
            arraylength
            newarray 8
            astore 2 /* dst */
        start local 2 // byte[] dst
         2: .line 471
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 9
         4: .line 472
      StackMap locals: byte[] int
      StackMap stack:
            aload 1 /* val */
            iload 3 /* i */
            baload
            ifge 7
         5: .line 473
            aload 2 /* dst */
            iload 3 /* i */
            bipush 63
            bastore
         6: .line 474
            goto 8
         7: .line 475
      StackMap locals:
      StackMap stack:
            aload 2 /* dst */
            iload 3 /* i */
            aload 1 /* val */
            iload 3 /* i */
            baload
            bastore
         8: .line 471
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 1 /* val */
            arraylength
            if_icmplt 4
        end local 3 // int i
        10: .line 478
            aload 2 /* dst */
            areturn
        end local 2 // byte[] dst
        11: .line 480
      StackMap locals:
      StackMap stack:
            aload 1 /* val */
            arraylength
            iconst_1
            ishr
            istore 2 /* len */
        start local 2 // int len
        12: .line 481
            iload 2 /* len */
            newarray 8
            astore 3 /* dst */
        start local 3 // byte[] dst
        13: .line 482
            iconst_0
            istore 4 /* dp */
        start local 4 // int dp
        14: .line 483
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        15: goto 25
        16: .line 484
      StackMap locals: int byte[] int byte[] int int
      StackMap stack:
            aload 1 /* val */
            iload 5 /* i */
            invokestatic java.lang.StringUTF16.getChar:([BI)C
            istore 6 /* c */
        start local 6 // char c
        17: .line 485
            iload 6 /* c */
            sipush 128
            if_icmpge 20
        18: .line 486
            aload 3 /* dst */
            iload 4 /* dp */
            iinc 4 /* dp */ 1
            iload 6 /* c */
            i2b
            bastore
        19: .line 487
            goto 24
        20: .line 489
      StackMap locals: int
      StackMap stack:
            iload 6 /* c */
            invokestatic java.lang.Character.isHighSurrogate:(C)Z
            ifeq 23
            iload 5 /* i */
            iconst_1
            iadd
            iload 2 /* len */
            if_icmpge 23
        21: .line 490
            aload 1 /* val */
            iload 5 /* i */
            iconst_1
            iadd
            invokestatic java.lang.StringUTF16.getChar:([BI)C
            invokestatic java.lang.Character.isLowSurrogate:(C)Z
            ifeq 23
        22: .line 491
            iinc 5 /* i */ 1
        23: .line 493
      StackMap locals:
      StackMap stack:
            aload 3 /* dst */
            iload 4 /* dp */
            iinc 4 /* dp */ 1
            bipush 63
            bastore
        end local 6 // char c
        24: .line 483
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 5 /* i */
            iload 2 /* len */
            if_icmplt 16
        end local 5 // int i
        26: .line 495
            iload 2 /* len */
            iload 4 /* dp */
            if_icmpne 28
        27: .line 496
            aload 3 /* dst */
            areturn
        28: .line 498
      StackMap locals:
      StackMap stack:
            aload 3 /* dst */
            iload 4 /* dp */
            invokestatic java.util.Arrays.copyOf:([BI)[B
            areturn
        end local 4 // int dp
        end local 3 // byte[] dst
        end local 2 // int len
        end local 1 // byte[] val
        end local 0 // byte coder
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   29     0  coder  B
            0   29     1    val  [B
            2   11     2    dst  [B
            3   10     3      i  I
           12   29     2    len  I
           13   29     3    dst  [B
           14   29     4     dp  I
           15   26     5      i  I
           17   24     6      c  C
    MethodParameters:
       Name  Flags
      coder  
      val    

  static byte[] encodeUTF8(byte, byte[]);
    descriptor: (B[B)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // byte coder
        start local 1 // byte[] val
         0: .line 502
            iconst_0
            istore 2 /* dp */
        start local 2 // int dp
         1: .line 504
            iload 0 /* coder */
            ifne 14
         2: .line 505
            aload 1 /* val */
            arraylength
            iconst_1
            ishl
            newarray 8
            astore 3 /* dst */
        start local 3 // byte[] dst
         3: .line 506
            iconst_0
            istore 4 /* sp */
        start local 4 // int sp
         4: goto 12
         5: .line 507
      StackMap locals: int byte[] int
      StackMap stack:
            aload 1 /* val */
            iload 4 /* sp */
            baload
            istore 5 /* c */
        start local 5 // byte c
         6: .line 508
            iload 5 /* c */
            ifge 10
         7: .line 509
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 192
            iload 5 /* c */
            sipush 255
            iand
            bipush 6
            ishr
            ior
            i2b
            bastore
         8: .line 510
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 128
            iload 5 /* c */
            bipush 63
            iand
            ior
            i2b
            bastore
         9: .line 511
            goto 11
        10: .line 512
      StackMap locals: int
      StackMap stack:
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            iload 5 /* c */
            bastore
        end local 5 // byte c
        11: .line 506
      StackMap locals:
      StackMap stack:
            iinc 4 /* sp */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* sp */
            aload 1 /* val */
            arraylength
            if_icmplt 5
        end local 4 // int sp
        13: .line 515
            goto 50
        end local 3 // byte[] dst
        14: .line 516
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* sp */
        start local 4 // int sp
        15: .line 517
            aload 1 /* val */
            arraylength
            iconst_1
            ishr
            istore 5 /* sl */
        start local 5 // int sl
        16: .line 518
            iload 5 /* sl */
            iconst_3
            imul
            newarray 8
            astore 3 /* dst */
        start local 3 // byte[] dst
        17: .line 520
            goto 20
        start local 6 // char c
        18: .line 522
      StackMap locals: int byte[] int byte[] int int int
      StackMap stack:
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            iload 6 /* c */
            i2b
            bastore
        19: .line 523
            iinc 4 /* sp */ 1
        end local 6 // char c
        20: .line 520
      StackMap locals:
      StackMap stack:
            iload 4 /* sp */
            iload 5 /* sl */
            if_icmpge 49
            aload 1 /* val */
            iload 4 /* sp */
            invokestatic java.lang.StringUTF16.getChar:([BI)C
            dup
            istore 6 /* c */
        start local 6 // char c
        21: sipush 128
            if_icmplt 18
        end local 6 // char c
        22: .line 525
            goto 49
        23: .line 526
      StackMap locals:
      StackMap stack:
            aload 1 /* val */
            iload 4 /* sp */
            iinc 4 /* sp */ 1
            invokestatic java.lang.StringUTF16.getChar:([BI)C
            istore 6 /* c */
        start local 6 // char c
        24: .line 527
            iload 6 /* c */
            sipush 128
            if_icmpge 27
        25: .line 528
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            iload 6 /* c */
            i2b
            bastore
        26: .line 529
            goto 49
      StackMap locals: int
      StackMap stack:
        27: iload 6 /* c */
            sipush 2048
            if_icmpge 31
        28: .line 530
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 192
            iload 6 /* c */
            bipush 6
            ishr
            ior
            i2b
            bastore
        29: .line 531
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 128
            iload 6 /* c */
            bipush 63
            iand
            ior
            i2b
            bastore
        30: .line 532
            goto 49
      StackMap locals:
      StackMap stack:
        31: iload 6 /* c */
            invokestatic java.lang.Character.isSurrogate:(C)Z
            ifeq 46
        32: .line 533
            iconst_m1
            istore 7 /* uc */
        start local 7 // int uc
        33: .line 535
            iload 6 /* c */
            invokestatic java.lang.Character.isHighSurrogate:(C)Z
            ifeq 37
            iload 4 /* sp */
            iload 5 /* sl */
            if_icmpge 37
        34: .line 536
            aload 1 /* val */
            iload 4 /* sp */
            invokestatic java.lang.StringUTF16.getChar:([BI)C
            dup
            istore 8 /* c2 */
        start local 8 // char c2
        35: invokestatic java.lang.Character.isLowSurrogate:(C)Z
            ifeq 37
        36: .line 537
            iload 6 /* c */
            iload 8 /* c2 */
            invokestatic java.lang.Character.toCodePoint:(CC)I
            istore 7 /* uc */
        end local 8 // char c2
        37: .line 539
      StackMap locals: int
      StackMap stack:
            iload 7 /* uc */
            ifge 40
        38: .line 540
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            bipush 63
            bastore
        39: .line 541
            goto 49
        40: .line 542
      StackMap locals:
      StackMap stack:
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 240
            iload 7 /* uc */
            bipush 18
            ishr
            ior
            i2b
            bastore
        41: .line 543
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 128
            iload 7 /* uc */
            bipush 12
            ishr
            bipush 63
            iand
            ior
            i2b
            bastore
        42: .line 544
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 128
            iload 7 /* uc */
            bipush 6
            ishr
            bipush 63
            iand
            ior
            i2b
            bastore
        43: .line 545
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 128
            iload 7 /* uc */
            bipush 63
            iand
            ior
            i2b
            bastore
        44: .line 546
            iinc 4 /* sp */ 1
        end local 7 // int uc
        45: .line 548
            goto 49
        46: .line 550
      StackMap locals:
      StackMap stack:
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 224
            iload 6 /* c */
            bipush 12
            ishr
            ior
            i2b
            bastore
        47: .line 551
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 128
            iload 6 /* c */
            bipush 6
            ishr
            bipush 63
            iand
            ior
            i2b
            bastore
        48: .line 552
            aload 3 /* dst */
            iload 2 /* dp */
            iinc 2 /* dp */ 1
            sipush 128
            iload 6 /* c */
            bipush 63
            iand
            ior
            i2b
            bastore
        end local 6 // char c
        49: .line 525
      StackMap locals:
      StackMap stack:
            iload 4 /* sp */
            iload 5 /* sl */
            if_icmplt 23
        end local 5 // int sl
        end local 4 // int sp
        50: .line 556
      StackMap locals:
      StackMap stack:
            iload 2 /* dp */
            aload 3 /* dst */
            arraylength
            if_icmpne 52
        51: .line 557
            aload 3 /* dst */
            areturn
        52: .line 559
      StackMap locals:
      StackMap stack:
            aload 3 /* dst */
            iload 2 /* dp */
            invokestatic java.util.Arrays.copyOf:([BI)[B
            areturn
        end local 3 // byte[] dst
        end local 2 // int dp
        end local 1 // byte[] val
        end local 0 // byte coder
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   53     0  coder  B
            0   53     1    val  [B
            1   53     2     dp  I
            3   14     3    dst  [B
           17   53     3    dst  [B
            4   13     4     sp  I
            6   11     5      c  B
           15   50     4     sp  I
           16   50     5     sl  I
           18   20     6      c  C
           21   22     6      c  C
           24   49     6      c  C
           33   45     7     uc  I
           35   37     8     c2  C
    MethodParameters:
       Name  Flags
      coder  
      val    

  static byte[] encode(java.lang.String, byte, byte[]);
    descriptor: (Ljava/lang/String;B[B)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.lang.String charsetName
        start local 1 // byte coder
        start local 2 // byte[] val
         0: .line 565
            getstatic java.lang.StringCoding.encoder:Ljava/lang/ThreadLocal;
            invokestatic java.lang.StringCoding.deref:(Ljava/lang/ThreadLocal;)Ljava/lang/Object;
            checkcast java.lang.StringCoding$StringEncoder
            astore 3 /* se */
        start local 3 // java.lang.StringCoding$StringEncoder se
         1: .line 566
            aload 0 /* charsetName */
            ifnonnull 2
            ldc "ISO-8859-1"
            goto 3
      StackMap locals: java.lang.StringCoding$StringEncoder
      StackMap stack:
         2: aload 0 /* charsetName */
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 4 /* csn */
        start local 4 // java.lang.String csn
         4: .line 567
            aload 3 /* se */
            ifnull 6
            aload 4 /* csn */
            aload 3 /* se */
            invokevirtual java.lang.StringCoding$StringEncoder.requestedCharsetName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
         5: .line 568
            aload 4 /* csn */
            aload 3 /* se */
            invokevirtual java.lang.StringCoding$StringEncoder.charsetName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
         6: .line 569
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 3 /* se */
         7: .line 571
            aload 4 /* csn */
            invokestatic java.lang.StringCoding.lookupCharset:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            astore 5 /* cs */
        start local 5 // java.nio.charset.Charset cs
         8: .line 572
            aload 5 /* cs */
            ifnull 21
         9: .line 573
            aload 5 /* cs */
            getstatic java.lang.StringCoding.UTF_8:Ljava/nio/charset/Charset;
            if_acmpne 12
        10: .line 574
            iload 1 /* coder */
            aload 2 /* val */
            invokestatic java.lang.StringCoding.encodeUTF8:(B[B)[B
        11: areturn
        12: .line 575
      StackMap locals: java.nio.charset.Charset
      StackMap stack:
            aload 5 /* cs */
            getstatic java.lang.StringCoding.ISO_8859_1:Ljava/nio/charset/Charset;
            if_acmpne 15
        13: .line 576
            iload 1 /* coder */
            aload 2 /* val */
            invokestatic java.lang.StringCoding.encode8859_1:(B[B)[B
        14: areturn
        15: .line 577
      StackMap locals:
      StackMap stack:
            aload 5 /* cs */
            getstatic java.lang.StringCoding.US_ASCII:Ljava/nio/charset/Charset;
            if_acmpne 18
        16: .line 578
            iload 1 /* coder */
            aload 2 /* val */
            invokestatic java.lang.StringCoding.encodeASCII:(B[B)[B
        17: areturn
        18: .line 580
      StackMap locals:
      StackMap stack:
            new java.lang.StringCoding$StringEncoder
            dup
            aload 5 /* cs */
            aload 4 /* csn */
            invokespecial java.lang.StringCoding$StringEncoder.<init>:(Ljava/nio/charset/Charset;Ljava/lang/String;)V
            astore 3 /* se */
        end local 5 // java.nio.charset.Charset cs
        19: .line 582
            goto 21
      StackMap locals: java.lang.String int byte[] java.lang.StringCoding$StringEncoder java.lang.String
      StackMap stack: java.nio.charset.IllegalCharsetNameException
        20: pop
        21: .line 583
      StackMap locals:
      StackMap stack:
            aload 3 /* se */
            ifnonnull 23
        22: .line 584
            new java.io.UnsupportedEncodingException
            dup
            aload 4 /* csn */
            invokespecial java.io.UnsupportedEncodingException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 586
      StackMap locals:
      StackMap stack:
            getstatic java.lang.StringCoding.encoder:Ljava/lang/ThreadLocal;
            aload 3 /* se */
            invokestatic java.lang.StringCoding.set:(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
        24: .line 588
      StackMap locals:
      StackMap stack:
            aload 3 /* se */
            iload 1 /* coder */
            aload 2 /* val */
            invokevirtual java.lang.StringCoding$StringEncoder.encode:(B[B)[B
            areturn
        end local 4 // java.lang.String csn
        end local 3 // java.lang.StringCoding$StringEncoder se
        end local 2 // byte[] val
        end local 1 // byte coder
        end local 0 // java.lang.String charsetName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   25     0  charsetName  Ljava/lang/String;
            0   25     1        coder  B
            0   25     2          val  [B
            1   25     3           se  Ljava/lang/StringCoding$StringEncoder;
            4   25     4          csn  Ljava/lang/String;
            8   19     5           cs  Ljava/nio/charset/Charset;
      Exception table:
        from    to  target  type
           7    11      20  Class java.nio.charset.IllegalCharsetNameException
          12    14      20  Class java.nio.charset.IllegalCharsetNameException
          15    17      20  Class java.nio.charset.IllegalCharsetNameException
          18    19      20  Class java.nio.charset.IllegalCharsetNameException
    Exceptions:
      throws java.io.UnsupportedEncodingException
    MethodParameters:
             Name  Flags
      charsetName  
      coder        
      val          

  static byte[] encode(java.nio.charset.Charset, byte, byte[]);
    descriptor: (Ljava/nio/charset/Charset;B[B)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // java.nio.charset.Charset cs
        start local 1 // byte coder
        start local 2 // byte[] val
         0: .line 592
            aload 0 /* cs */
            getstatic java.lang.StringCoding.UTF_8:Ljava/nio/charset/Charset;
            if_acmpne 2
         1: .line 593
            iload 1 /* coder */
            aload 2 /* val */
            invokestatic java.lang.StringCoding.encodeUTF8:(B[B)[B
            areturn
         2: .line 594
      StackMap locals:
      StackMap stack:
            aload 0 /* cs */
            getstatic java.lang.StringCoding.ISO_8859_1:Ljava/nio/charset/Charset;
            if_acmpne 4
         3: .line 595
            iload 1 /* coder */
            aload 2 /* val */
            invokestatic java.lang.StringCoding.encode8859_1:(B[B)[B
            areturn
         4: .line 596
      StackMap locals:
      StackMap stack:
            aload 0 /* cs */
            getstatic java.lang.StringCoding.US_ASCII:Ljava/nio/charset/Charset;
            if_acmpne 6
         5: .line 597
            iload 1 /* coder */
            aload 2 /* val */
            invokestatic java.lang.StringCoding.encodeASCII:(B[B)[B
            areturn
         6: .line 599
      StackMap locals:
      StackMap stack:
            aload 0 /* cs */
            invokevirtual java.nio.charset.Charset.newEncoder:()Ljava/nio/charset/CharsetEncoder;
            astore 3 /* ce */
        start local 3 // java.nio.charset.CharsetEncoder ce
         7: .line 601
            iload 1 /* coder */
            ifne 11
            aload 3 /* ce */
            instanceof sun.nio.cs.ArrayEncoder
            ifeq 11
         8: .line 602
            aload 3 /* ce */
            checkcast sun.nio.cs.ArrayEncoder
            invokeinterface sun.nio.cs.ArrayEncoder.isASCIICompatible:()Z
            ifeq 11
         9: .line 603
            aload 2 /* val */
            iconst_0
            aload 2 /* val */
            arraylength
            invokestatic java.lang.StringCoding.hasNegatives:([BII)Z
            ifne 11
        10: .line 604
            aload 2 /* val */
            aload 2 /* val */
            arraylength
            invokestatic java.util.Arrays.copyOf:([BI)[B
            areturn
        11: .line 606
      StackMap locals: java.nio.charset.CharsetEncoder
      StackMap stack:
            aload 2 /* val */
            arraylength
            iload 1 /* coder */
            ishr
            istore 4 /* len */
        start local 4 // int len
        12: .line 607
            iload 4 /* len */
            aload 3 /* ce */
            invokevirtual java.nio.charset.CharsetEncoder.maxBytesPerChar:()F
            invokestatic java.lang.StringCoding.scale:(IF)I
            istore 5 /* en */
        start local 5 // int en
        13: .line 608
            iload 5 /* en */
            newarray 8
            astore 6 /* ba */
        start local 6 // byte[] ba
        14: .line 609
            iload 4 /* len */
            ifne 16
        15: .line 610
            aload 6 /* ba */
            areturn
        16: .line 612
      StackMap locals: int int byte[]
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            ifnull 19
        17: .line 613
            aload 0 /* cs */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader0:()Ljava/lang/ClassLoader;
            ifnull 19
        18: .line 612
            iconst_0
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_1
      StackMap locals:
      StackMap stack: int
        20: istore 7 /* isTrusted */
        start local 7 // boolean isTrusted
        21: .line 614
            aload 3 /* ce */
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetEncoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;
        22: .line 615
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetEncoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;
        23: .line 616
            invokevirtual java.nio.charset.CharsetEncoder.reset:()Ljava/nio/charset/CharsetEncoder;
            pop
        24: .line 617
            aload 3 /* ce */
            instanceof sun.nio.cs.ArrayEncoder
            ifeq 32
        25: .line 618
            iload 7 /* isTrusted */
            ifne 27
        26: .line 619
            aload 2 /* val */
            aload 2 /* val */
            arraylength
            invokestatic java.util.Arrays.copyOf:([BI)[B
            astore 2 /* val */
        27: .line 621
      StackMap locals: int
      StackMap stack:
            iload 1 /* coder */
            ifne 28
            aload 3 /* ce */
            checkcast sun.nio.cs.ArrayEncoder
            aload 2 /* val */
            iconst_0
            iload 4 /* len */
            aload 6 /* ba */
            invokeinterface sun.nio.cs.ArrayEncoder.encodeFromLatin1:([BII[B)I
            goto 29
        28: .line 622
      StackMap locals:
      StackMap stack:
            aload 3 /* ce */
            checkcast sun.nio.cs.ArrayEncoder
            aload 2 /* val */
            iconst_0
            iload 4 /* len */
            aload 6 /* ba */
            invokeinterface sun.nio.cs.ArrayEncoder.encodeFromUTF16:([BII[B)I
        29: .line 621
      StackMap locals:
      StackMap stack: int
            istore 8 /* blen */
        start local 8 // int blen
        30: .line 623
            iload 8 /* blen */
            iconst_m1
            if_icmpeq 32
        31: .line 624
            aload 6 /* ba */
            iload 8 /* blen */
            iload 7 /* isTrusted */
            invokestatic java.lang.StringCoding.safeTrim:([BIZ)[B
            areturn
        end local 8 // int blen
        32: .line 627
      StackMap locals:
      StackMap stack:
            iload 1 /* coder */
            ifne 33
            aload 2 /* val */
            invokestatic java.lang.StringLatin1.toChars:([B)[C
            goto 34
        33: .line 628
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            invokestatic java.lang.StringUTF16.toChars:([B)[C
        34: .line 627
      StackMap locals:
      StackMap stack: char[]
            astore 8 /* ca */
        start local 8 // char[] ca
        35: .line 629
            aload 6 /* ba */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            astore 9 /* bb */
        start local 9 // java.nio.ByteBuffer bb
        36: .line 630
            aload 8 /* ca */
            iconst_0
            iload 4 /* len */
            invokestatic java.nio.CharBuffer.wrap:([CII)Ljava/nio/CharBuffer;
            astore 10 /* cb */
        start local 10 // java.nio.CharBuffer cb
        37: .line 632
            aload 3 /* ce */
            aload 10 /* cb */
            aload 9 /* bb */
            iconst_1
            invokevirtual java.nio.charset.CharsetEncoder.encode:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
            astore 11 /* cr */
        start local 11 // java.nio.charset.CoderResult cr
        38: .line 633
            aload 11 /* cr */
            invokevirtual java.nio.charset.CoderResult.isUnderflow:()Z
            ifne 40
        39: .line 634
            aload 11 /* cr */
            invokevirtual java.nio.charset.CoderResult.throwException:()V
        40: .line 635
      StackMap locals: java.nio.charset.Charset int byte[] java.nio.charset.CharsetEncoder int int byte[] int char[] java.nio.ByteBuffer java.nio.CharBuffer java.nio.charset.CoderResult
      StackMap stack:
            aload 3 /* ce */
            aload 9 /* bb */
            invokevirtual java.nio.charset.CharsetEncoder.flush:(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
            astore 11 /* cr */
        41: .line 636
            aload 11 /* cr */
            invokevirtual java.nio.charset.CoderResult.isUnderflow:()Z
            ifne 46
        42: .line 637
            aload 11 /* cr */
            invokevirtual java.nio.charset.CoderResult.throwException:()V
        end local 11 // java.nio.charset.CoderResult cr
        43: .line 638
            goto 46
      StackMap locals: java.nio.charset.Charset int byte[] java.nio.charset.CharsetEncoder int int byte[] int char[] java.nio.ByteBuffer java.nio.CharBuffer
      StackMap stack: java.nio.charset.CharacterCodingException
        44: astore 11 /* x */
        start local 11 // java.nio.charset.CharacterCodingException x
        45: .line 639
            new java.lang.Error
            dup
            aload 11 /* x */
            invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.nio.charset.CharacterCodingException x
        46: .line 641
      StackMap locals:
      StackMap stack:
            aload 6 /* ba */
            aload 9 /* bb */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 7 /* isTrusted */
            invokestatic java.lang.StringCoding.safeTrim:([BIZ)[B
            areturn
        end local 10 // java.nio.CharBuffer cb
        end local 9 // java.nio.ByteBuffer bb
        end local 8 // char[] ca
        end local 7 // boolean isTrusted
        end local 6 // byte[] ba
        end local 5 // int en
        end local 4 // int len
        end local 3 // java.nio.charset.CharsetEncoder ce
        end local 2 // byte[] val
        end local 1 // byte coder
        end local 0 // java.nio.charset.Charset cs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   47     0         cs  Ljava/nio/charset/Charset;
            0   47     1      coder  B
            0   47     2        val  [B
            7   47     3         ce  Ljava/nio/charset/CharsetEncoder;
           12   47     4        len  I
           13   47     5         en  I
           14   47     6         ba  [B
           21   47     7  isTrusted  Z
           30   32     8       blen  I
           35   47     8         ca  [C
           36   47     9         bb  Ljava/nio/ByteBuffer;
           37   47    10         cb  Ljava/nio/CharBuffer;
           38   43    11         cr  Ljava/nio/charset/CoderResult;
           45   46    11          x  Ljava/nio/charset/CharacterCodingException;
      Exception table:
        from    to  target  type
          37    43      44  Class java.nio.charset.CharacterCodingException
    MethodParameters:
       Name  Flags
      cs     
      coder  
      val    

  static byte[] encode(byte, byte[]);
    descriptor: (B[B)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // byte coder
        start local 1 // byte[] val
         0: .line 645
            invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            astore 2 /* csn */
        start local 2 // java.lang.String csn
         1: .line 648
            aload 2 /* csn */
            iload 0 /* coder */
            aload 1 /* val */
            invokestatic java.lang.StringCoding.encode:(Ljava/lang/String;B[B)[B
         2: areturn
         3: .line 649
      StackMap locals: int byte[] java.lang.String
      StackMap stack: java.io.UnsupportedEncodingException
            pop
         4: .line 650
            aload 2 /* csn */
            invokestatic java.lang.StringCoding.warnUnsupportedCharset:(Ljava/lang/String;)V
         5: .line 653
            ldc "ISO-8859-1"
            iload 0 /* coder */
            aload 1 /* val */
            invokestatic java.lang.StringCoding.encode:(Ljava/lang/String;B[B)[B
         6: areturn
         7: .line 654
      StackMap locals:
      StackMap stack: java.io.UnsupportedEncodingException
            astore 3 /* x */
        start local 3 // java.io.UnsupportedEncodingException x
         8: .line 657
            new java.lang.StringBuilder
            dup
            ldc "ISO-8859-1 charset not available: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* x */
            invokevirtual java.io.UnsupportedEncodingException.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.StringCoding.err:(Ljava/lang/String;)V
         9: .line 660
            iconst_1
            invokestatic java.lang.System.exit:(I)V
        10: .line 661
            aconst_null
            areturn
        end local 3 // java.io.UnsupportedEncodingException x
        end local 2 // java.lang.String csn
        end local 1 // byte[] val
        end local 0 // byte coder
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0  coder  B
            0   11     1    val  [B
            1   11     2    csn  Ljava/lang/String;
            8   11     3      x  Ljava/io/UnsupportedEncodingException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.UnsupportedEncodingException
           5     6       7  Class java.io.UnsupportedEncodingException
    MethodParameters:
       Name  Flags
      coder  
      val    

  private static native void err(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      msg   
}
SourceFile: "StringCoding.java"
NestMembers:
  java.lang.StringCoding$Result  java.lang.StringCoding$StringDecoder  java.lang.StringCoding$StringDecoder8859_1  java.lang.StringCoding$StringEncoder
InnerClasses:
  Result = java.lang.StringCoding$Result of java.lang.StringCoding
  StringDecoder = java.lang.StringCoding$StringDecoder of java.lang.StringCoding
  private StringDecoder8859_1 = java.lang.StringCoding$StringDecoder8859_1 of java.lang.StringCoding
  private StringEncoder = java.lang.StringCoding$StringEncoder of java.lang.StringCoding