class org.jruby.ext.nkf.RubyNKF$MimeConverter extends org.jruby.ext.nkf.RubyNKF$Converter
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.jruby.ext.nkf.RubyNKF$MimeConverter
  super_class: org.jruby.ext.nkf.RubyNKF$Converter
{
  public void <init>(org.jruby.runtime.ThreadContext, java.util.Map<java.lang.String, org.jruby.ext.nkf.RubyNKF$NKFCharset>);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
        start local 1 // org.jruby.runtime.ThreadContext ctx
        start local 2 // java.util.Map opt
         0: .line 516
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* opt */
            invokespecial org.jruby.ext.nkf.RubyNKF$Converter.<init>:(Lorg/jruby/runtime/ThreadContext;Ljava/util/Map;)V
         1: .line 517
            return
        end local 2 // java.util.Map opt
        end local 1 // org.jruby.runtime.ThreadContext ctx
        end local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/nkf/RubyNKF$MimeConverter;
            0    2     1   ctx  Lorg/jruby/runtime/ThreadContext;
            0    2     2   opt  Ljava/util/Map<Ljava/lang/String;Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;>;
    Signature: (Lorg/jruby/runtime/ThreadContext;Ljava/util/Map<Ljava/lang/String;Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;>;)V
    MethodParameters:
      Name  Flags
      ctx   
      opt   

  private java.lang.String detectCharset(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
        start local 1 // java.lang.String charset
         0: .line 520
            aload 1 /* charset */
            getstatic org.jruby.ext.nkf.RubyNKF$NKFCharset.UTF8:Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;
            invokevirtual org.jruby.ext.nkf.RubyNKF$NKFCharset.getCharset:()Ljava/lang/String;
            invokevirtual java.lang.String.compareToIgnoreCase:(Ljava/lang/String;)I
            ifne 2
         1: .line 521
            getstatic org.jruby.ext.nkf.RubyNKF$NKFCharset.UTF8:Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;
            invokevirtual org.jruby.ext.nkf.RubyNKF$NKFCharset.getCharset:()Ljava/lang/String;
            areturn
         2: .line 522
      StackMap locals:
      StackMap stack:
            aload 1 /* charset */
            getstatic org.jruby.ext.nkf.RubyNKF$NKFCharset.JIS:Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;
            invokevirtual org.jruby.ext.nkf.RubyNKF$NKFCharset.getCharset:()Ljava/lang/String;
            invokevirtual java.lang.String.compareToIgnoreCase:(Ljava/lang/String;)I
            ifne 4
         3: .line 523
            getstatic org.jruby.ext.nkf.RubyNKF$NKFCharset.JIS:Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;
            invokevirtual org.jruby.ext.nkf.RubyNKF$NKFCharset.getCharset:()Ljava/lang/String;
            areturn
         4: .line 524
      StackMap locals:
      StackMap stack:
            aload 1 /* charset */
            getstatic org.jruby.ext.nkf.RubyNKF$NKFCharset.EUC:Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;
            invokevirtual org.jruby.ext.nkf.RubyNKF$NKFCharset.getCharset:()Ljava/lang/String;
            invokevirtual java.lang.String.compareToIgnoreCase:(Ljava/lang/String;)I
            ifne 6
         5: .line 525
            getstatic org.jruby.ext.nkf.RubyNKF$NKFCharset.EUC:Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;
            invokevirtual org.jruby.ext.nkf.RubyNKF$NKFCharset.getCharset:()Ljava/lang/String;
            areturn
         6: .line 527
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.nkf.RubyNKF$NKFCharset.ASCII:Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;
            invokevirtual org.jruby.ext.nkf.RubyNKF$NKFCharset.getCharset:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String charset
        end local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/ext/nkf/RubyNKF$MimeConverter;
            0    7     1  charset  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      charset  

  private org.jruby.util.ByteList decodeMimeString(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jruby/util/ByteList;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
        start local 1 // java.lang.String str
         0: .line 532
            aload 1 /* str */
            ldc "^=\\?|\\?|\\?=$"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* mime */
        start local 2 // java.lang.String[] mime
         1: .line 533
            aload 0 /* this */
            aload 2 /* mime */
            iconst_1
            aaload
            invokevirtual org.jruby.ext.nkf.RubyNKF$MimeConverter.detectCharset:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* charset */
        start local 3 // java.lang.String charset
         2: .line 534
            aload 2 /* mime */
            iconst_2
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* encode */
        start local 4 // int encode
         3: .line 535
            new org.jruby.util.ByteList
            dup
            aload 2 /* mime */
            iconst_3
            aaload
            invokevirtual java.lang.String.getBytes:()[B
            getstatic org.jcodings.specific.ASCIIEncoding.INSTANCE:Lorg/jcodings/specific/ASCIIEncoding;
            invokespecial org.jruby.util.ByteList.<init>:([BLorg/jcodings/Encoding;)V
            astore 5 /* body */
        start local 5 // org.jruby.util.ByteList body
         4: .line 538
            bipush 66
            iload 4 /* encode */
            if_icmpeq 5
            bipush 98
            iload 4 /* encode */
            if_icmpne 7
         5: .line 539
      StackMap locals: org.jruby.ext.nkf.RubyNKF$MimeConverter java.lang.String java.lang.String[] java.lang.String int org.jruby.util.ByteList
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.nkf.RubyNKF$MimeConverter.context:Lorg/jruby/runtime/ThreadContext;
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* body */
            getstatic org.jruby.ext.nkf.RubyNKF.PACK_BASE64:Lorg/jruby/util/ByteList;
            invokestatic org.jruby.util.Pack.unpack:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyArray;
            astore 6 /* array */
        start local 6 // org.jruby.RubyArray array
         6: .line 540
            goto 8
        end local 6 // org.jruby.RubyArray array
         7: .line 541
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.nkf.RubyNKF$MimeConverter.context:Lorg/jruby/runtime/ThreadContext;
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* body */
            getstatic org.jruby.ext.nkf.RubyNKF.PACK_QENCODE:Lorg/jruby/util/ByteList;
            invokestatic org.jruby.util.Pack.unpack:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyArray;
            astore 6 /* array */
        start local 6 // org.jruby.RubyArray array
         8: .line 543
      StackMap locals: org.jruby.RubyArray
      StackMap stack:
            aload 6 /* array */
            iconst_0
            invokevirtual org.jruby.RubyArray.entry:(I)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyString
            astore 7 /* s */
        start local 7 // org.jruby.RubyString s
         9: .line 544
            aload 7 /* s */
            invokevirtual org.jruby.RubyString.asString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 8 /* decodeStr */
        start local 8 // org.jruby.util.ByteList decodeStr
        10: .line 546
            aload 0 /* this */
            aload 8 /* decodeStr */
            aload 3 /* charset */
            aload 0 /* this */
            getfield org.jruby.ext.nkf.RubyNKF$MimeConverter.options:Ljava/util/Map;
            ldc "output"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.jruby.ext.nkf.RubyNKF$NKFCharset
            invokevirtual org.jruby.ext.nkf.RubyNKF$MimeConverter.convert_byte:(Lorg/jruby/util/ByteList;Ljava/lang/String;Lorg/jruby/ext/nkf/RubyNKF$NKFCharset;)Lorg/jruby/util/ByteList;
            areturn
        end local 8 // org.jruby.util.ByteList decodeStr
        end local 7 // org.jruby.RubyString s
        end local 6 // org.jruby.RubyArray array
        end local 5 // org.jruby.util.ByteList body
        end local 4 // int encode
        end local 3 // java.lang.String charset
        end local 2 // java.lang.String[] mime
        end local 1 // java.lang.String str
        end local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/jruby/ext/nkf/RubyNKF$MimeConverter;
            0   11     1        str  Ljava/lang/String;
            1   11     2       mime  [Ljava/lang/String;
            2   11     3    charset  Ljava/lang/String;
            3   11     4     encode  I
            4   11     5       body  Lorg/jruby/util/ByteList;
            6    7     6      array  Lorg/jruby/RubyArray;
            8   11     6      array  Lorg/jruby/RubyArray;
            9   11     7          s  Lorg/jruby/RubyString;
           10   11     8  decodeStr  Lorg/jruby/util/ByteList;
    MethodParameters:
      Name  Flags
      str   

  org.jruby.RubyString makeRubyString(java.util.ArrayList<org.jruby.util.ByteList>);
    descriptor: (Ljava/util/ArrayList;)Lorg/jruby/RubyString;
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
        start local 1 // java.util.ArrayList list
         0: .line 550
            new org.jruby.util.ByteList
            dup
            invokespecial org.jruby.util.ByteList.<init>:()V
            astore 2 /* r */
        start local 2 // org.jruby.util.ByteList r
         1: .line 551
            aload 1 /* list */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.jruby.ext.nkf.RubyNKF$MimeConverter java.util.ArrayList org.jruby.util.ByteList top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jruby.util.ByteList
            astore 3 /* l */
        start local 3 // org.jruby.util.ByteList l
         3: .line 552
            aload 2 /* r */
            aload 3 /* l */
            invokevirtual org.jruby.util.ByteList.append:(Lorg/jruby/util/ByteList;)V
        end local 3 // org.jruby.util.ByteList l
         4: .line 551
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 554
            aload 0 /* this */
            getfield org.jruby.ext.nkf.RubyNKF$MimeConverter.context:Lorg/jruby/runtime/ThreadContext;
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* r */
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            areturn
        end local 2 // org.jruby.util.ByteList r
        end local 1 // java.util.ArrayList list
        end local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/jruby/ext/nkf/RubyNKF$MimeConverter;
            0    6     1  list  Ljava/util/ArrayList<Lorg/jruby/util/ByteList;>;
            1    6     2     r  Lorg/jruby/util/ByteList;
            3    4     3     l  Lorg/jruby/util/ByteList;
    Signature: (Ljava/util/ArrayList<Lorg/jruby/util/ByteList;>;)Lorg/jruby/RubyString;
    MethodParameters:
      Name  Flags
      list  

  org.jruby.RubyString convert(org.jruby.util.ByteList);
    descriptor: (Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
        start local 1 // org.jruby.util.ByteList str
         0: .line 558
            aload 0 /* this */
            getfield org.jruby.ext.nkf.RubyNKF$MimeConverter.context:Lorg/jruby/runtime/ThreadContext;
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* str */
            invokestatic org.jruby.runtime.Helpers.decodeByteList:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
         1: .line 559
            aload 2 /* s */
            ldc "\\s"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* token */
        start local 3 // java.lang.String[] token
         2: .line 560
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* raw_data */
        start local 4 // java.util.ArrayList raw_data
         3: .line 562
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 7
         5: .line 563
      StackMap locals: org.jruby.ext.nkf.RubyNKF$MimeConverter org.jruby.util.ByteList java.lang.String java.lang.String[] java.util.ArrayList int
      StackMap stack:
            aload 4 /* raw_data */
            aload 0 /* this */
            aload 3 /* token */
            iload 5 /* i */
            aaload
            invokevirtual org.jruby.ext.nkf.RubyNKF$MimeConverter.decodeMimeString:(Ljava/lang/String;)Lorg/jruby/util/ByteList;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 562
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 5 /* i */
            aload 3 /* token */
            arraylength
            if_icmplt 5
        end local 5 // int i
         8: .line 566
            aload 0 /* this */
            aload 4 /* raw_data */
            invokevirtual org.jruby.ext.nkf.RubyNKF$MimeConverter.makeRubyString:(Ljava/util/ArrayList;)Lorg/jruby/RubyString;
            areturn
        end local 4 // java.util.ArrayList raw_data
        end local 3 // java.lang.String[] token
        end local 2 // java.lang.String s
        end local 1 // org.jruby.util.ByteList str
        end local 0 // org.jruby.ext.nkf.RubyNKF$MimeConverter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/jruby/ext/nkf/RubyNKF$MimeConverter;
            0    9     1       str  Lorg/jruby/util/ByteList;
            1    9     2         s  Ljava/lang/String;
            2    9     3     token  [Ljava/lang/String;
            3    9     4  raw_data  Ljava/util/ArrayList<Lorg/jruby/util/ByteList;>;
            4    8     5         i  I
    MethodParameters:
      Name  Flags
      str   
}
SourceFile: "RubyNKF.java"
NestHost: org.jruby.ext.nkf.RubyNKF
InnerClasses:
  abstract Converter = org.jruby.ext.nkf.RubyNKF$Converter of org.jruby.ext.nkf.RubyNKF
  MimeConverter = org.jruby.ext.nkf.RubyNKF$MimeConverter of org.jruby.ext.nkf.RubyNKF
  public final NKFCharset = org.jruby.ext.nkf.RubyNKF$NKFCharset of org.jruby.ext.nkf.RubyNKF