final class jdk.internal.icu.text.BidiWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.internal.icu.text.BidiWriter
  super_class: java.lang.Object
{
  static final char LRM_CHAR;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8206

  static final char RLM_CHAR;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8207

  static final int MASK_R_AL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8194

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.icu.text.BidiWriter this
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.internal.icu.text.BidiWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/icu/text/BidiWriter;

  private static boolean IsCombining(int);
    descriptor: (I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int type
         0: .line 49
            iconst_1
            iload 0 /* type */
            ishl
         1: .line 50
            sipush 448
         2: .line 49
            iand
            ifeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  type  I
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.String doWriteForward(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.String src
        start local 1 // int options
         0: .line 66
            iload 1 /* options */
            bipush 10
            iand
            lookupswitch { // 3
                    0: 1
                    2: 2
                    8: 10
              default: 18
          }
         1: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            areturn
         2: .line 72
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuffer
            dup
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* dest */
        start local 2 // java.lang.StringBuffer dest
         3: .line 75
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: .line 79
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* i */
            invokestatic jdk.internal.icu.text.UTF16.charAt:(Ljava/lang/String;I)I
            istore 4 /* c */
        start local 4 // int c
         5: .line 80
            iload 3 /* i */
            iload 4 /* c */
            invokestatic jdk.internal.icu.text.UTF16.getCharCount:(I)I
            iadd
            istore 3 /* i */
         6: .line 81
            aload 2 /* dest */
            iload 4 /* c */
            invokestatic jdk.internal.icu.lang.UCharacter.getMirror:(I)I
            invokestatic jdk.internal.icu.text.UTF16.append:(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
            pop
         7: .line 82
            iload 3 /* i */
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
         8: .line 78
            if_icmplt 4
         9: .line 83
            aload 2 /* dest */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 4 // int c
        end local 3 // int i
        end local 2 // java.lang.StringBuffer dest
        10: .line 86
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* dest */
        start local 2 // java.lang.StringBuilder dest
        11: .line 89
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        12: .line 92
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* i */
            iinc 3 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
        13: .line 93
            iload 4 /* c */
            invokestatic jdk.internal.icu.text.BidiBase.IsBidiControlChar:(I)Z
            ifne 15
        14: .line 94
            aload 2 /* dest */
            iload 4 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 96
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
        16: .line 91
            if_icmplt 12
        17: .line 97
            aload 2 /* dest */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // char c
        end local 3 // int i
        end local 2 // java.lang.StringBuilder dest
        18: .line 100
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuffer
            dup
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* dest */
        start local 2 // java.lang.StringBuffer dest
        19: .line 103
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        20: .line 106
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* i */
            invokestatic jdk.internal.icu.text.UTF16.charAt:(Ljava/lang/String;I)I
            istore 4 /* c */
        start local 4 // int c
        21: .line 107
            iload 3 /* i */
            iload 4 /* c */
            invokestatic jdk.internal.icu.text.UTF16.getCharCount:(I)I
            iadd
            istore 3 /* i */
        22: .line 108
            iload 4 /* c */
            invokestatic jdk.internal.icu.text.BidiBase.IsBidiControlChar:(I)Z
            ifne 24
        23: .line 109
            aload 2 /* dest */
            iload 4 /* c */
            invokestatic jdk.internal.icu.lang.UCharacter.getMirror:(I)I
            invokestatic jdk.internal.icu.text.UTF16.append:(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
            pop
        24: .line 111
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
        25: .line 105
            if_icmplt 20
        26: .line 112
            aload 2 /* dest */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 4 // int c
        end local 3 // int i
        end local 2 // java.lang.StringBuffer dest
        end local 1 // int options
        end local 0 // java.lang.String src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0      src  Ljava/lang/String;
            0   27     1  options  I
            3   10     2     dest  Ljava/lang/StringBuffer;
            4   10     3        i  I
            5   10     4        c  I
           11   18     2     dest  Ljava/lang/StringBuilder;
           12   18     3        i  I
           13   18     4        c  C
           19   27     2     dest  Ljava/lang/StringBuffer;
           20   27     3        i  I
           21   27     4        c  I
    MethodParameters:
         Name  Flags
      src      
      options  

  private static java.lang.String doWriteForward(char[], int, int, int);
    descriptor: ([CIII)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // char[] text
        start local 1 // int start
        start local 2 // int limit
        start local 3 // int options
         0: .line 119
            new java.lang.String
            dup
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* limit */
            iload 1 /* start */
            isub
            invokespecial java.lang.String.<init>:([CII)V
            iload 3 /* options */
            invokestatic jdk.internal.icu.text.BidiWriter.doWriteForward:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 3 // int options
        end local 2 // int limit
        end local 1 // int start
        end local 0 // char[] text
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     text  [C
            0    1     1    start  I
            0    1     2    limit  I
            0    1     3  options  I
    MethodParameters:
         Name  Flags
      text     
      start    
      limit    
      options  

  static java.lang.String writeReverse(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.lang.String src
        start local 1 // int options
         0: .line 141
            new java.lang.StringBuffer
            dup
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* dest */
        start local 2 // java.lang.StringBuffer dest
         1: .line 144
            iload 1 /* options */
         2: .line 145
            bipush 11
         3: .line 144
            iand
            tableswitch { // 0 - 1
                    0: 4
                    1: 13
              default: 22
          }
         4: .line 159
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            istore 3 /* srcLength */
        start local 3 // int srcLength
         5: .line 165
      StackMap locals: int
      StackMap stack:
            iload 3 /* srcLength */
            istore 4 /* i */
        start local 4 // int i
         6: .line 168
            iload 3 /* srcLength */
            aload 0 /* src */
         7: .line 169
            iload 3 /* srcLength */
            iconst_1
            isub
         8: .line 168
            invokestatic jdk.internal.icu.text.UTF16.charAt:(Ljava/lang/String;I)I
            invokestatic jdk.internal.icu.text.UTF16.getCharCount:(I)I
            isub
            istore 3 /* srcLength */
         9: .line 172
            aload 2 /* dest */
            aload 0 /* src */
            iload 3 /* srcLength */
            iload 4 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 4 // int i
        10: .line 173
            iload 3 /* srcLength */
        11: .line 162
            ifgt 5
        12: .line 174
            goto 42
        end local 3 // int srcLength
        13: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            istore 3 /* srcLength */
        start local 3 // int srcLength
        14: .line 191
      StackMap locals: int
      StackMap stack:
            iload 3 /* srcLength */
            istore 5 /* i */
        start local 5 // int i
        15: .line 196
      StackMap locals: java.lang.String int java.lang.StringBuffer int top int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* srcLength */
            iconst_1
            isub
            invokestatic jdk.internal.icu.text.UTF16.charAt:(Ljava/lang/String;I)I
            istore 4 /* c */
        start local 4 // int c
        16: .line 197
            iload 3 /* srcLength */
            iload 4 /* c */
            invokestatic jdk.internal.icu.text.UTF16.getCharCount:(I)I
            isub
            istore 3 /* srcLength */
        17: .line 198
            iload 3 /* srcLength */
            ifle 18
            iload 4 /* c */
            invokestatic jdk.internal.icu.lang.UCharacter.getType:(I)I
            invokestatic jdk.internal.icu.text.BidiWriter.IsCombining:(I)Z
            ifne 15
        18: .line 201
      StackMap locals: java.lang.String int java.lang.StringBuffer int int int
      StackMap stack:
            aload 2 /* dest */
            aload 0 /* src */
            iload 3 /* srcLength */
            iload 5 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 5 // int i
        end local 4 // int c
        19: .line 202
            iload 3 /* srcLength */
        20: .line 187
            ifgt 14
        21: .line 203
            goto 42
        end local 3 // int srcLength
        22: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            istore 3 /* srcLength */
        start local 3 // int srcLength
        23: .line 219
      StackMap locals: int
      StackMap stack:
            iload 3 /* srcLength */
            istore 4 /* i */
        start local 4 // int i
        24: .line 222
            aload 0 /* src */
            iload 3 /* srcLength */
            iconst_1
            isub
            invokestatic jdk.internal.icu.text.UTF16.charAt:(Ljava/lang/String;I)I
            istore 5 /* c */
        start local 5 // int c
        25: .line 223
            iload 3 /* srcLength */
            iload 5 /* c */
            invokestatic jdk.internal.icu.text.UTF16.getCharCount:(I)I
            isub
            istore 3 /* srcLength */
        26: .line 224
            iload 1 /* options */
            iconst_1
            iand
            ifeq 31
        27: .line 226
            goto 30
        28: .line 227
      StackMap locals: int int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* srcLength */
            iconst_1
            isub
            invokestatic jdk.internal.icu.text.UTF16.charAt:(Ljava/lang/String;I)I
            istore 5 /* c */
        29: .line 228
            iload 3 /* srcLength */
            iload 5 /* c */
            invokestatic jdk.internal.icu.text.UTF16.getCharCount:(I)I
            isub
            istore 3 /* srcLength */
        30: .line 226
      StackMap locals:
      StackMap stack:
            iload 3 /* srcLength */
            ifle 31
            iload 5 /* c */
            invokestatic jdk.internal.icu.lang.UCharacter.getType:(I)I
            invokestatic jdk.internal.icu.text.BidiWriter.IsCombining:(I)Z
            ifne 28
        31: .line 232
      StackMap locals:
      StackMap stack:
            iload 1 /* options */
            bipush 8
            iand
            ifeq 34
        32: .line 233
            iload 5 /* c */
            invokestatic jdk.internal.icu.text.BidiBase.IsBidiControlChar:(I)Z
            ifeq 34
        33: .line 235
            goto 40
        34: .line 239
      StackMap locals:
      StackMap stack:
            iload 3 /* srcLength */
            istore 6 /* j */
        start local 6 // int j
        35: .line 240
            iload 1 /* options */
            iconst_2
            iand
            ifeq 39
        36: .line 242
            iload 5 /* c */
            invokestatic jdk.internal.icu.lang.UCharacter.getMirror:(I)I
            istore 5 /* c */
        37: .line 243
            aload 2 /* dest */
            iload 5 /* c */
            invokestatic jdk.internal.icu.text.UTF16.append:(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
            pop
        38: .line 244
            iload 6 /* j */
            iload 5 /* c */
            invokestatic jdk.internal.icu.text.UTF16.getCharCount:(I)I
            iadd
            istore 6 /* j */
        39: .line 246
      StackMap locals: int
      StackMap stack:
            aload 2 /* dest */
            aload 0 /* src */
            iload 6 /* j */
            iload 4 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 6 // int j
        end local 5 // int c
        end local 4 // int i
        40: .line 247
      StackMap locals:
      StackMap stack:
            iload 3 /* srcLength */
        41: .line 216
            ifgt 23
        end local 3 // int srcLength
        42: .line 251
      StackMap locals:
      StackMap stack:
            aload 2 /* dest */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuffer dest
        end local 1 // int options
        end local 0 // java.lang.String src
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   43     0        src  Ljava/lang/String;
            0   43     1    options  I
            1   43     2       dest  Ljava/lang/StringBuffer;
            5   13     3  srcLength  I
           14   22     3  srcLength  I
           23   42     3  srcLength  I
            6   10     4          i  I
           16   19     4          c  I
           15   19     5          i  I
           24   40     4          i  I
           25   40     5          c  I
           35   40     6          j  I
    MethodParameters:
         Name  Flags
      src      
      options  

  static java.lang.String doWriteReverse(char[], int, int, int);
    descriptor: ([CIII)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // char[] text
        start local 1 // int start
        start local 2 // int limit
        start local 3 // int options
         0: .line 255
            new java.lang.String
            dup
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* limit */
            iload 1 /* start */
            isub
            invokespecial java.lang.String.<init>:([CII)V
            iload 3 /* options */
            invokestatic jdk.internal.icu.text.BidiWriter.writeReverse:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 3 // int options
        end local 2 // int limit
        end local 1 // int start
        end local 0 // char[] text
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     text  [C
            0    1     1    start  I
            0    1     2    limit  I
            0    1     3  options  I
    MethodParameters:
         Name  Flags
      text     
      start    
      limit    
      options  

  static java.lang.String writeReordered(jdk.internal.icu.text.BidiBase, int);
    descriptor: (Ljdk/internal/icu/text/BidiBase;I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // jdk.internal.icu.text.BidiBase bidi
        start local 1 // int options
         0: .line 261
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.text:[C
            astore 5 /* text */
        start local 5 // char[] text
         1: .line 262
            aload 0 /* bidi */
            invokevirtual jdk.internal.icu.text.BidiBase.countRuns:()I
            istore 3 /* runCount */
        start local 3 // int runCount
         2: .line 268
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.reorderingOptions:I
            iconst_1
            iand
            ifeq 5
         3: .line 269
            iload 1 /* options */
            iconst_4
            ior
            istore 1 /* options */
         4: .line 270
            iload 1 /* options */
            bipush -9
            iand
            istore 1 /* options */
         5: .line 276
      StackMap locals: jdk.internal.icu.text.BidiBase int top int top char[]
      StackMap stack:
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.reorderingOptions:I
            iconst_2
            iand
            ifeq 8
         6: .line 277
            iload 1 /* options */
            bipush 8
            ior
            istore 1 /* options */
         7: .line 278
            iload 1 /* options */
            bipush -5
            iand
            istore 1 /* options */
         8: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.reorderingMode:I
            iconst_4
            if_icmpeq 13
         9: .line 285
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.reorderingMode:I
            iconst_5
            if_icmpeq 13
        10: .line 286
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.reorderingMode:I
            bipush 6
            if_icmpeq 13
        11: .line 287
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.reorderingMode:I
            iconst_3
            if_icmpeq 13
        12: .line 288
            iload 1 /* options */
            bipush -5
            iand
            istore 1 /* options */
        13: .line 290
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            iload 1 /* options */
            iconst_4
            iand
            ifeq 15
        14: .line 291
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.length:I
            iconst_2
            imul
            goto 16
      StackMap locals: jdk.internal.icu.text.BidiBase int top int top char[]
      StackMap stack: new 13 new 13
        15: aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.length:I
        16: .line 290
      StackMap locals: jdk.internal.icu.text.BidiBase int top int top char[]
      StackMap stack: new 13 new 13 int
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* dest */
        start local 4 // java.lang.StringBuilder dest
        17: .line 301
            iload 1 /* options */
            bipush 16
            iand
            ifne 105
        18: .line 303
            iload 1 /* options */
            iconst_4
            iand
            ifne 34
        19: .line 305
            iconst_0
            istore 2 /* run */
        start local 2 // int run
        20: goto 32
        21: .line 306
      StackMap locals: jdk.internal.icu.text.BidiBase int int int java.lang.StringBuilder char[]
      StackMap stack:
            aload 0 /* bidi */
            iload 2 /* run */
            invokevirtual jdk.internal.icu.text.BidiBase.getVisualRun:(I)Ljdk/internal/icu/text/BidiRun;
            astore 6 /* bidiRun */
        start local 6 // jdk.internal.icu.text.BidiRun bidiRun
        22: .line 307
            aload 6 /* bidiRun */
            invokevirtual jdk.internal.icu.text.BidiRun.isEvenRun:()Z
            ifeq 28
        23: .line 308
            aload 4 /* dest */
            aload 5 /* text */
            aload 6 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
        24: .line 309
            aload 6 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
        25: .line 310
            iload 1 /* options */
            bipush -3
            iand
        26: .line 308
            invokestatic jdk.internal.icu.text.BidiWriter.doWriteForward:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        27: .line 311
            goto 31
        28: .line 312
      StackMap locals: jdk.internal.icu.text.BidiRun
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 6 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
        29: .line 313
            aload 6 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
            iload 1 /* options */
        30: .line 312
            invokestatic jdk.internal.icu.text.BidiWriter.doWriteReverse:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // jdk.internal.icu.text.BidiRun bidiRun
        31: .line 305
      StackMap locals:
      StackMap stack:
            iinc 2 /* run */ 1
      StackMap locals:
      StackMap stack:
        32: iload 2 /* run */
            iload 3 /* runCount */
            if_icmplt 21
        33: .line 316
            goto 141
        end local 2 // int run
        34: .line 318
      StackMap locals: jdk.internal.icu.text.BidiBase int top int java.lang.StringBuilder char[]
      StackMap stack:
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.dirProps:[B
            astore 6 /* dirProps */
        start local 6 // byte[] dirProps
        35: .line 322
            iconst_0
            istore 2 /* run */
        start local 2 // int run
        36: goto 103
        37: .line 323
      StackMap locals: jdk.internal.icu.text.BidiBase int int int java.lang.StringBuilder char[] byte[]
      StackMap stack:
            aload 0 /* bidi */
            iload 2 /* run */
            invokevirtual jdk.internal.icu.text.BidiBase.getVisualRun:(I)Ljdk/internal/icu/text/BidiRun;
            astore 9 /* bidiRun */
        start local 9 // jdk.internal.icu.text.BidiRun bidiRun
        38: .line 324
            iconst_0
            istore 8 /* markFlag */
        start local 8 // int markFlag
        39: .line 326
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.runs:[Ljdk/internal/icu/text/BidiRun;
            iload 2 /* run */
            aaload
            getfield jdk.internal.icu.text.BidiRun.insertRemove:I
            istore 8 /* markFlag */
        40: .line 327
            iload 8 /* markFlag */
            ifge 42
        41: .line 328
            iconst_0
            istore 8 /* markFlag */
        42: .line 330
      StackMap locals: jdk.internal.icu.text.BidiBase int int int java.lang.StringBuilder char[] byte[] top int jdk.internal.icu.text.BidiRun
      StackMap stack:
            aload 9 /* bidiRun */
            invokevirtual jdk.internal.icu.text.BidiRun.isEvenRun:()Z
            ifeq 72
        43: .line 331
            aload 0 /* bidi */
            invokevirtual jdk.internal.icu.text.BidiBase.isInverse:()Z
            ifeq 46
        44: .line 332
            aload 6 /* dirProps */
            aload 9 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
            baload
            ifeq 46
        45: .line 333
            iload 8 /* markFlag */
            iconst_1
            ior
            istore 8 /* markFlag */
        46: .line 335
      StackMap locals:
      StackMap stack:
            iload 8 /* markFlag */
            iconst_1
            iand
            ifeq 49
        47: .line 336
            sipush 8206
            istore 7 /* uc */
        start local 7 // char uc
        48: .line 337
            goto 53
        end local 7 // char uc
      StackMap locals:
      StackMap stack:
        49: iload 8 /* markFlag */
            iconst_4
            iand
            ifeq 52
        50: .line 338
            sipush 8207
            istore 7 /* uc */
        start local 7 // char uc
        51: .line 339
            goto 53
        end local 7 // char uc
        52: .line 340
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* uc */
        start local 7 // char uc
        53: .line 342
      StackMap locals: jdk.internal.icu.text.BidiBase int int int java.lang.StringBuilder char[] byte[] int int jdk.internal.icu.text.BidiRun
      StackMap stack:
            iload 7 /* uc */
            ifeq 55
        54: .line 343
            aload 4 /* dest */
            iload 7 /* uc */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        55: .line 345
      StackMap locals:
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
        56: .line 346
            aload 9 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
            aload 9 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
        57: .line 347
            iload 1 /* options */
            bipush -3
            iand
        58: .line 345
            invokestatic jdk.internal.icu.text.BidiWriter.doWriteForward:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        59: .line 349
            aload 0 /* bidi */
            invokevirtual jdk.internal.icu.text.BidiBase.isInverse:()Z
            ifeq 62
        60: .line 350
            aload 6 /* dirProps */
            aload 9 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
            iconst_1
            isub
            baload
            ifeq 62
        61: .line 351
            iload 8 /* markFlag */
            iconst_2
            ior
            istore 8 /* markFlag */
        62: .line 353
      StackMap locals:
      StackMap stack:
            iload 8 /* markFlag */
            iconst_2
            iand
            ifeq 65
        63: .line 354
            sipush 8206
            istore 7 /* uc */
        64: .line 355
            goto 69
      StackMap locals:
      StackMap stack:
        65: iload 8 /* markFlag */
            bipush 8
            iand
            ifeq 68
        66: .line 356
            sipush 8207
            istore 7 /* uc */
        67: .line 357
            goto 69
        68: .line 358
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* uc */
        69: .line 360
      StackMap locals:
      StackMap stack:
            iload 7 /* uc */
            ifeq 102
        70: .line 361
            aload 4 /* dest */
            iload 7 /* uc */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        71: .line 363
            goto 102
        end local 7 // char uc
        72: .line 364
      StackMap locals: jdk.internal.icu.text.BidiBase int int int java.lang.StringBuilder char[] byte[] top int jdk.internal.icu.text.BidiRun
      StackMap stack:
            aload 0 /* bidi */
            invokevirtual jdk.internal.icu.text.BidiBase.isInverse:()Z
            ifeq 78
        73: .line 365
            aload 0 /* bidi */
            sipush 8194
        74: .line 366
            aload 9 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
            iconst_1
            isub
        75: .line 365
            invokevirtual jdk.internal.icu.text.BidiBase.testDirPropFlagAt:(II)Z
        76: .line 366
            ifne 78
        77: .line 367
            iload 8 /* markFlag */
            iconst_4
            ior
            istore 8 /* markFlag */
        78: .line 369
      StackMap locals:
      StackMap stack:
            iload 8 /* markFlag */
            iconst_1
            iand
            ifeq 81
        79: .line 370
            sipush 8206
            istore 7 /* uc */
        start local 7 // char uc
        80: .line 371
            goto 85
        end local 7 // char uc
      StackMap locals:
      StackMap stack:
        81: iload 8 /* markFlag */
            iconst_4
            iand
            ifeq 84
        82: .line 372
            sipush 8207
            istore 7 /* uc */
        start local 7 // char uc
        83: .line 373
            goto 85
        end local 7 // char uc
        84: .line 374
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* uc */
        start local 7 // char uc
        85: .line 376
      StackMap locals: jdk.internal.icu.text.BidiBase int int int java.lang.StringBuilder char[] byte[] int int jdk.internal.icu.text.BidiRun
      StackMap stack:
            iload 7 /* uc */
            ifeq 87
        86: .line 377
            aload 4 /* dest */
            iload 7 /* uc */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        87: .line 379
      StackMap locals:
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 9 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
        88: .line 380
            aload 9 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
            iload 1 /* options */
        89: .line 379
            invokestatic jdk.internal.icu.text.BidiWriter.doWriteReverse:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        90: .line 382
            aload 0 /* bidi */
            invokevirtual jdk.internal.icu.text.BidiBase.isInverse:()Z
            ifeq 93
        91: .line 383
            sipush 8194
            aload 6 /* dirProps */
            aload 9 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
            baload
            invokestatic jdk.internal.icu.text.BidiBase.DirPropFlag:(B)I
            iand
            ifne 93
        92: .line 384
            iload 8 /* markFlag */
            bipush 8
            ior
            istore 8 /* markFlag */
        93: .line 386
      StackMap locals:
      StackMap stack:
            iload 8 /* markFlag */
            iconst_2
            iand
            ifeq 96
        94: .line 387
            sipush 8206
            istore 7 /* uc */
        95: .line 388
            goto 100
      StackMap locals:
      StackMap stack:
        96: iload 8 /* markFlag */
            bipush 8
            iand
            ifeq 99
        97: .line 389
            sipush 8207
            istore 7 /* uc */
        98: .line 390
            goto 100
        99: .line 391
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* uc */
       100: .line 393
      StackMap locals:
      StackMap stack:
            iload 7 /* uc */
            ifeq 102
       101: .line 394
            aload 4 /* dest */
            iload 7 /* uc */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 9 // jdk.internal.icu.text.BidiRun bidiRun
       102: .line 322
      StackMap locals:
      StackMap stack:
            iinc 2 /* run */ 1
        end local 8 // int markFlag
        end local 7 // char uc
      StackMap locals:
      StackMap stack:
       103: iload 2 /* run */
            iload 3 /* runCount */
            if_icmplt 37
        end local 6 // byte[] dirProps
       104: .line 399
            goto 141
        end local 2 // int run
       105: .line 401
      StackMap locals: jdk.internal.icu.text.BidiBase int top int java.lang.StringBuilder char[]
      StackMap stack:
            iload 1 /* options */
            iconst_4
            iand
            ifne 120
       106: .line 403
            iload 3 /* runCount */
            istore 2 /* run */
        start local 2 // int run
       107: goto 118
       108: .line 404
      StackMap locals: jdk.internal.icu.text.BidiBase int int int java.lang.StringBuilder char[]
      StackMap stack:
            aload 0 /* bidi */
            iload 2 /* run */
            invokevirtual jdk.internal.icu.text.BidiBase.getVisualRun:(I)Ljdk/internal/icu/text/BidiRun;
            astore 6 /* bidiRun */
        start local 6 // jdk.internal.icu.text.BidiRun bidiRun
       109: .line 405
            aload 6 /* bidiRun */
            invokevirtual jdk.internal.icu.text.BidiRun.isEvenRun:()Z
            ifeq 115
       110: .line 406
            aload 4 /* dest */
            aload 5 /* text */
       111: .line 407
            aload 6 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
            aload 6 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
       112: .line 408
            iload 1 /* options */
            bipush -3
            iand
       113: .line 406
            invokestatic jdk.internal.icu.text.BidiWriter.doWriteReverse:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       114: .line 409
            goto 118
       115: .line 410
      StackMap locals: jdk.internal.icu.text.BidiRun
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 6 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
       116: .line 411
            aload 6 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
            iload 1 /* options */
       117: .line 410
            invokestatic jdk.internal.icu.text.BidiWriter.doWriteForward:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // jdk.internal.icu.text.BidiRun bidiRun
       118: .line 403
      StackMap locals:
      StackMap stack:
            iinc 2 /* run */ -1
            iload 2 /* run */
            ifge 108
       119: .line 414
            goto 141
        end local 2 // int run
       120: .line 417
      StackMap locals: jdk.internal.icu.text.BidiBase int top int java.lang.StringBuilder char[]
      StackMap stack:
            aload 0 /* bidi */
            getfield jdk.internal.icu.text.BidiBase.dirProps:[B
            astore 6 /* dirProps */
        start local 6 // byte[] dirProps
       121: .line 419
            iload 3 /* runCount */
            istore 2 /* run */
        start local 2 // int run
       122: goto 140
       123: .line 421
      StackMap locals: jdk.internal.icu.text.BidiBase int int int java.lang.StringBuilder char[] byte[]
      StackMap stack:
            aload 0 /* bidi */
            iload 2 /* run */
            invokevirtual jdk.internal.icu.text.BidiBase.getVisualRun:(I)Ljdk/internal/icu/text/BidiRun;
            astore 7 /* bidiRun */
        start local 7 // jdk.internal.icu.text.BidiRun bidiRun
       124: .line 422
            aload 7 /* bidiRun */
            invokevirtual jdk.internal.icu.text.BidiRun.isEvenRun:()Z
            ifeq 133
       125: .line 423
            aload 6 /* dirProps */
            aload 7 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
            iconst_1
            isub
            baload
            ifeq 127
       126: .line 424
            aload 4 /* dest */
            sipush 8206
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       127: .line 427
      StackMap locals: jdk.internal.icu.text.BidiRun
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 7 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
       128: .line 428
            aload 7 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
            iload 1 /* options */
            bipush -3
            iand
       129: .line 427
            invokestatic jdk.internal.icu.text.BidiWriter.doWriteReverse:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       130: .line 430
            aload 6 /* dirProps */
            aload 7 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
            baload
            ifeq 140
       131: .line 431
            aload 4 /* dest */
            sipush 8206
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       132: .line 433
            goto 140
       133: .line 434
      StackMap locals:
      StackMap stack:
            sipush 8194
            aload 6 /* dirProps */
            aload 7 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
            baload
            invokestatic jdk.internal.icu.text.BidiBase.DirPropFlag:(B)I
            iand
            ifne 135
       134: .line 435
            aload 4 /* dest */
            sipush 8207
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       135: .line 438
      StackMap locals:
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 7 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.start:I
       136: .line 439
            aload 7 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
            iload 1 /* options */
       137: .line 438
            invokestatic jdk.internal.icu.text.BidiWriter.doWriteForward:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       138: .line 441
            sipush 8194
            aload 6 /* dirProps */
            aload 7 /* bidiRun */
            getfield jdk.internal.icu.text.BidiRun.limit:I
            iconst_1
            isub
            baload
            invokestatic jdk.internal.icu.text.BidiBase.DirPropFlag:(B)I
            iand
            ifne 140
       139: .line 442
            aload 4 /* dest */
            sipush 8207
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 7 // jdk.internal.icu.text.BidiRun bidiRun
       140: .line 419
      StackMap locals:
      StackMap stack:
            iinc 2 /* run */ -1
            iload 2 /* run */
            ifge 123
        end local 6 // byte[] dirProps
       141: .line 449
      StackMap locals:
      StackMap stack:
            aload 4 /* dest */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // char[] text
        end local 4 // java.lang.StringBuilder dest
        end local 3 // int runCount
        end local 2 // int run
        end local 1 // int options
        end local 0 // jdk.internal.icu.text.BidiBase bidi
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0  142     0      bidi  Ljdk/internal/icu/text/BidiBase;
            0  142     1   options  I
           20   34     2       run  I
           36  105     2       run  I
          107  120     2       run  I
          122  142     2       run  I
            2  142     3  runCount  I
           17  142     4      dest  Ljava/lang/StringBuilder;
            1  142     5      text  [C
           22   31     6   bidiRun  Ljdk/internal/icu/text/BidiRun;
           35  104     6  dirProps  [B
           48   49     7        uc  C
           51   52     7        uc  C
           53   72     7        uc  C
           80   81     7        uc  C
           83   84     7        uc  C
           85  103     7        uc  C
           39  103     8  markFlag  I
           38  102     9   bidiRun  Ljdk/internal/icu/text/BidiRun;
          109  118     6   bidiRun  Ljdk/internal/icu/text/BidiRun;
          121  141     6  dirProps  [B
          124  140     7   bidiRun  Ljdk/internal/icu/text/BidiRun;
    MethodParameters:
         Name  Flags
      bidi     
      options  
}
SourceFile: "BidiWriter.java"