class com.sun.inputmethods.internal.indicim.IndicInputMethodImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.inputmethods.internal.indicim.IndicInputMethodImpl
  super_class: java.lang.Object
{
  protected char[] KBD_MAP;
    descriptor: [C
    flags: (0x0004) ACC_PROTECTED

  private static final char SUBSTITUTION_BASE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65280

  protected char[][] SUBSTITUTION_TABLE;
    descriptor: [[C
    flags: (0x0004) ACC_PROTECTED

  private static final char INVALID_CHAR;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65535

  private static final char KEY_SIGN_VIRAMA;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  private static final char KEY_SIGN_NUKTA;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 93

  private static final char ZWJ;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8205

  private static final char ZWNJ;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8204

  private static final char BACKSPACE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  protected char[] JOIN_WITH_NUKTA;
    descriptor: [C
    flags: (0x0004) ACC_PROTECTED

  protected char[] NUKTA_FORM;
    descriptor: [C
    flags: (0x0004) ACC_PROTECTED

  private int log2;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int power;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int extra;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private static final java.awt.font.TextHitInfo ZERO_TRAILING_HIT_INFO;
    descriptor: Ljava/awt/font/TextHitInfo;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private char[] text;
    descriptor: [C
    flags: (0x0002) ACC_PRIVATE

  private int committedChars;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int totalChars;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean lastCharWasVirama;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.awt.im.spi.InputMethodContext context;
    descriptor: Ljava/awt/im/spi/InputMethodContext;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 53
            ldc Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.$assertionsDisabled:Z
         3: .line 88
            iconst_0
            invokestatic java.awt.font.TextHitInfo.trailing:(I)Ljava/awt/font/TextHitInfo;
            putstatic com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.ZERO_TRAILING_HIT_INFO:Ljava/awt/font/TextHitInfo;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private int nuktaIndex(char);
    descriptor: (C)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
        start local 1 // char ch
         0: .line 96
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.JOIN_WITH_NUKTA:[C
            ifnonnull 2
         1: .line 97
            iconst_m1
            ireturn
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.power:I
            istore 2 /* probe */
        start local 2 // int probe
         3: .line 101
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         4: .line 103
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.JOIN_WITH_NUKTA:[C
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.extra:I
            caload
            iload 1 /* ch */
            if_icmpgt 10
         5: .line 104
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.extra:I
            istore 3 /* index */
         6: .line 107
            goto 10
         7: .line 108
      StackMap locals: int int
      StackMap stack:
            iload 2 /* probe */
            iconst_1
            ishr
            istore 2 /* probe */
         8: .line 110
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.JOIN_WITH_NUKTA:[C
            iload 3 /* index */
            iload 2 /* probe */
            iadd
            caload
            iload 1 /* ch */
            if_icmpgt 10
         9: .line 111
            iload 3 /* index */
            iload 2 /* probe */
            iadd
            istore 3 /* index */
        10: .line 107
      StackMap locals:
      StackMap stack:
            iload 2 /* probe */
            iconst_1
            if_icmpgt 7
        11: .line 115
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.JOIN_WITH_NUKTA:[C
            iload 3 /* index */
            caload
            iload 1 /* ch */
            if_icmpeq 13
        12: .line 116
            iconst_m1
            istore 3 /* index */
        13: .line 119
      StackMap locals:
      StackMap stack:
            iload 3 /* index */
            ireturn
        end local 3 // int index
        end local 2 // int probe
        end local 1 // char ch
        end local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl;
            0   14     1     ch  C
            3   14     2  probe  I
            4   14     3  index  I
    MethodParameters:
      Name  Flags
      ch    

  private char getMappedChar(char);
    descriptor: (C)C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
        start local 1 // char originalChar
         0: .line 128
            iload 1 /* originalChar */
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.KBD_MAP:[C
            arraylength
            if_icmpgt 2
         1: .line 129
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.KBD_MAP:[C
            iload 1 /* originalChar */
            caload
            ireturn
         2: .line 132
      StackMap locals:
      StackMap stack:
            iload 1 /* originalChar */
            ireturn
        end local 1 // char originalChar
        end local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl;
            0    3     1  originalChar  C
    MethodParameters:
              Name  Flags
      originalChar  

  private static byte highBit(int);
    descriptor: (I)B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // int n
         0: .line 160
            iload 0 /* n */
            ifgt 2
         1: .line 161
            bipush -32
            ireturn
         2: .line 164
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* bit */
        start local 1 // byte bit
         3: .line 166
            iload 0 /* n */
            ldc 65536
            if_icmplt 6
         4: .line 167
            iload 0 /* n */
            bipush 16
            ishr
            istore 0 /* n */
         5: .line 168
            iload 1 /* bit */
            bipush 16
            iadd
            i2b
            istore 1 /* bit */
         6: .line 171
      StackMap locals: int
      StackMap stack:
            iload 0 /* n */
            sipush 256
            if_icmplt 9
         7: .line 172
            iload 0 /* n */
            bipush 8
            ishr
            istore 0 /* n */
         8: .line 173
            iload 1 /* bit */
            bipush 8
            iadd
            i2b
            istore 1 /* bit */
         9: .line 176
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            bipush 16
            if_icmplt 12
        10: .line 177
            iload 0 /* n */
            iconst_4
            ishr
            istore 0 /* n */
        11: .line 178
            iload 1 /* bit */
            iconst_4
            iadd
            i2b
            istore 1 /* bit */
        12: .line 181
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            iconst_4
            if_icmplt 15
        13: .line 182
            iload 0 /* n */
            iconst_2
            ishr
            istore 0 /* n */
        14: .line 183
            iload 1 /* bit */
            iconst_2
            iadd
            i2b
            istore 1 /* bit */
        15: .line 186
      StackMap locals:
      StackMap stack:
            iload 0 /* n */
            iconst_2
            if_icmplt 18
        16: .line 187
            iload 0 /* n */
            iconst_1
            ishr
            istore 0 /* n */
        17: .line 188
            iload 1 /* bit */
            iconst_1
            iadd
            i2b
            istore 1 /* bit */
        18: .line 191
      StackMap locals:
      StackMap stack:
            iload 1 /* bit */
            ireturn
        end local 1 // byte bit
        end local 0 // int n
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0     n  I
            3   19     1   bit  B
    MethodParameters:
      Name  Flags
      n     

  void <init>(char[], char[], char[], char[][]);
    descriptor: ([C[C[C[[C)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
        start local 1 // char[] keyboardMap
        start local 2 // char[] joinWithNukta
        start local 3 // char[] nuktaForm
        start local 4 // char[][] substitutionTable
         0: .line 194
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 141
            aload 0 /* this */
            iconst_4
            newarray 5
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
         2: .line 145
            aload 0 /* this */
            iconst_0
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
         3: .line 148
            aload 0 /* this */
            iconst_0
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
         4: .line 150
            aload 0 /* this */
            iconst_0
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.lastCharWasVirama:Z
         5: .line 196
            aload 0 /* this */
            aload 1 /* keyboardMap */
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.KBD_MAP:[C
         6: .line 197
            aload 0 /* this */
            aload 2 /* joinWithNukta */
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.JOIN_WITH_NUKTA:[C
         7: .line 198
            aload 0 /* this */
            aload 3 /* nuktaForm */
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.NUKTA_FORM:[C
         8: .line 199
            aload 0 /* this */
            aload 4 /* substitutionTable */
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.SUBSTITUTION_TABLE:[[C
         9: .line 201
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.JOIN_WITH_NUKTA:[C
            ifnull 14
        10: .line 202
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.JOIN_WITH_NUKTA:[C
            arraylength
            invokestatic com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.highBit:(I)B
            istore 5 /* log2 */
        start local 5 // int log2
        11: .line 204
            aload 0 /* this */
            iconst_1
            iload 5 /* log2 */
            ishl
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.power:I
        12: .line 205
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.JOIN_WITH_NUKTA:[C
            arraylength
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.power:I
            isub
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.extra:I
        end local 5 // int log2
        13: .line 206
            goto 15
        14: .line 207
      StackMap locals: com.sun.inputmethods.internal.indicim.IndicInputMethodImpl char[] char[] char[] char[][]
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iconst_0
            dup_x1
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.extra:I
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.power:I
        15: .line 210
      StackMap locals:
      StackMap stack:
            return
        end local 4 // char[][] substitutionTable
        end local 3 // char[] nuktaForm
        end local 2 // char[] joinWithNukta
        end local 1 // char[] keyboardMap
        end local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl;
            0   16     1        keyboardMap  [C
            0   16     2      joinWithNukta  [C
            0   16     3          nuktaForm  [C
            0   16     4  substitutionTable  [[C
           11   13     5               log2  I
    MethodParameters:
                   Name  Flags
      keyboardMap        
      joinWithNukta      
      nuktaForm          
      substitutionTable  

  void setInputMethodContext(java.awt.im.spi.InputMethodContext);
    descriptor: (Ljava/awt/im/spi/InputMethodContext;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
        start local 1 // java.awt.im.spi.InputMethodContext context
         0: .line 214
            aload 0 /* this */
            aload 1 /* context */
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.context:Ljava/awt/im/spi/InputMethodContext;
         1: .line 215
            return
        end local 1 // java.awt.im.spi.InputMethodContext context
        end local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl;
            0    2     1  context  Ljava/awt/im/spi/InputMethodContext;
    MethodParameters:
         Name  Flags
      context  

  void handleKeyTyped(java.awt.event.KeyEvent);
    descriptor: (Ljava/awt/event/KeyEvent;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
        start local 1 // java.awt.event.KeyEvent kevent
         0: .line 219
            aload 1 /* kevent */
            invokevirtual java.awt.event.KeyEvent.getKeyChar:()C
            istore 2 /* keyChar */
        start local 2 // char keyChar
         1: .line 220
            aload 0 /* this */
            iload 2 /* keyChar */
            invokevirtual com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.getMappedChar:(C)C
            istore 3 /* currentChar */
        start local 3 // char currentChar
         2: .line 223
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.lastCharWasVirama:Z
            ifeq 7
         3: .line 224
            iload 2 /* keyChar */
            lookupswitch { // 2
                   93: 4
                  100: 6
              default: 7
          }
         4: .line 226
      StackMap locals: int int
      StackMap stack:
            sipush 8205
            istore 3 /* currentChar */
         5: .line 227
            goto 7
         6: .line 229
      StackMap locals:
      StackMap stack:
            sipush 8204
            istore 3 /* currentChar */
         7: .line 235
      StackMap locals:
      StackMap stack:
            iload 3 /* currentChar */
            ldc 65535
            if_icmpne 10
         8: .line 236
            aload 1 /* kevent */
            invokevirtual java.awt.event.KeyEvent.consume:()V
         9: .line 237
            return
        10: .line 240
      StackMap locals:
      StackMap stack:
            iload 3 /* currentChar */
            bipush 8
            if_icmpne 16
        11: .line 241
            aload 0 /* this */
            iconst_0
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.lastCharWasVirama:Z
        12: .line 243
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            ifle 15
        13: .line 244
            aload 0 /* this */
            aload 0 /* this */
            iconst_0
            dup_x1
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
        14: .line 245
            goto 36
        15: .line 246
      StackMap locals:
      StackMap stack:
            return
        16: .line 249
      StackMap locals:
      StackMap stack:
            iload 2 /* keyChar */
            bipush 93
            if_icmpne 24
        17: .line 250
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            iconst_0
            caload
            invokevirtual com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.nuktaIndex:(C)I
            istore 4 /* nuktaIndex */
        start local 4 // int nuktaIndex
        18: .line 252
            iload 4 /* nuktaIndex */
            iconst_m1
            if_icmpeq 21
        19: .line 253
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            iconst_0
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.NUKTA_FORM:[C
            iload 4 /* nuktaIndex */
            caload
            castore
        20: .line 254
            goto 22
        21: .line 259
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            aload 0 /* this */
            dup
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            iload 3 /* currentChar */
            castore
        22: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
            iconst_1
            iadd
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
        end local 4 // int nuktaIndex
        23: .line 263
            goto 36
        24: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* currentChar */
            invokevirtual com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.nuktaIndex:(C)I
            istore 4 /* nuktaIndex */
        start local 4 // int nuktaIndex
        25: .line 267
            iload 4 /* nuktaIndex */
            iconst_m1
            if_icmpeq 29
        26: .line 269
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            aload 0 /* this */
            dup
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            iload 3 /* currentChar */
            castore
        27: .line 270
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            iconst_1
            isub
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
        28: .line 271
            goto 36
        29: .line 272
      StackMap locals: int
      StackMap stack:
            iload 3 /* currentChar */
            ldc 65280
            if_icmplt 34
        30: .line 273
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.SUBSTITUTION_TABLE:[[C
            iload 3 /* currentChar */
            ldc 65280
            isub
            aaload
            astore 5 /* sub */
        start local 5 // char[] sub
        31: .line 275
            aload 5 /* sub */
            iconst_0
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            aload 5 /* sub */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        32: .line 276
            aload 0 /* this */
            dup
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            aload 5 /* sub */
            arraylength
            iadd
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
        end local 5 // char[] sub
        33: .line 277
            goto 35
        34: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            aload 0 /* this */
            dup
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            iload 3 /* currentChar */
            castore
        35: .line 281
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
        end local 4 // int nuktaIndex
        36: .line 285
      StackMap locals:
      StackMap stack:
            new com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            iconst_0
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
            invokespecial com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText.<init>:(Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl;[CIII)V
            astore 4 /* aText */
        start local 4 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText aText
        37: .line 286
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
            isub
            istore 5 /* composedCharLength */
        start local 5 // int composedCharLength
        38: .line 287
            aconst_null
            astore 6 /* caret */
        start local 6 // java.awt.font.TextHitInfo caret
        39: aconst_null
            astore 7 /* visiblePosition */
        start local 7 // java.awt.font.TextHitInfo visiblePosition
        40: .line 288
            iload 5 /* composedCharLength */
            tableswitch { // 0 - 1
                    0: 41
                    1: 42
              default: 44
          }
        41: .line 290
      StackMap locals: com.sun.inputmethods.internal.indicim.IndicInputMethodImpl java.awt.event.KeyEvent int int com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText int java.awt.font.TextHitInfo java.awt.font.TextHitInfo
      StackMap stack:
            goto 45
        42: .line 292
      StackMap locals:
      StackMap stack:
            getstatic com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.ZERO_TRAILING_HIT_INFO:Ljava/awt/font/TextHitInfo;
            dup
            astore 6 /* caret */
            astore 7 /* visiblePosition */
        43: .line 293
            goto 45
        44: .line 295
      StackMap locals:
      StackMap stack:
            getstatic com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.$assertionsDisabled:Z
            ifne 45
            new java.lang.AssertionError
            dup
            ldc "The code should not reach here. There is no case where there can be more than one character pending."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        45: .line 298
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.context:Ljava/awt/im/spi/InputMethodContext;
            sipush 1100
        46: .line 299
            aload 4 /* aText */
        47: .line 300
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
        48: .line 301
            aload 6 /* caret */
        49: .line 302
            aload 7 /* visiblePosition */
        50: .line 298
            invokeinterface java.awt.im.spi.InputMethodContext.dispatchInputMethodEvent:(ILjava/text/AttributedCharacterIterator;ILjava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;)V
        51: .line 304
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            ifne 54
        52: .line 305
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            iconst_0
            ldc 65535
            castore
        53: .line 306
            goto 55
        54: .line 307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            iconst_0
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            iconst_1
            isub
            caload
            castore
        55: .line 310
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* keyChar */
            bipush 100
            if_icmpne 56
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.lastCharWasVirama:Z
            ifne 56
            iconst_1
            goto 57
      StackMap locals:
      StackMap stack: com.sun.inputmethods.internal.indicim.IndicInputMethodImpl
        56: iconst_0
      StackMap locals: com.sun.inputmethods.internal.indicim.IndicInputMethodImpl java.awt.event.KeyEvent int int com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText int java.awt.font.TextHitInfo java.awt.font.TextHitInfo
      StackMap stack: com.sun.inputmethods.internal.indicim.IndicInputMethodImpl int
        57: putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.lastCharWasVirama:Z
        58: .line 312
            aload 0 /* this */
            dup
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
            isub
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
        59: .line 313
            aload 0 /* this */
            iconst_0
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
        60: .line 318
            aload 1 /* kevent */
            invokevirtual java.awt.event.KeyEvent.consume:()V
        61: .line 319
            return
        end local 7 // java.awt.font.TextHitInfo visiblePosition
        end local 6 // java.awt.font.TextHitInfo caret
        end local 5 // int composedCharLength
        end local 4 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText aText
        end local 3 // char currentChar
        end local 2 // char keyChar
        end local 1 // java.awt.event.KeyEvent kevent
        end local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   62     0                this  Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl;
            0   62     1              kevent  Ljava/awt/event/KeyEvent;
            1   62     2             keyChar  C
            2   62     3         currentChar  C
           18   23     4          nuktaIndex  I
           25   36     4          nuktaIndex  I
           31   33     5                 sub  [C
           37   62     4               aText  Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl$ACIText;
           38   62     5  composedCharLength  I
           39   62     6               caret  Ljava/awt/font/TextHitInfo;
           40   62     7     visiblePosition  Ljava/awt/font/TextHitInfo;
    MethodParameters:
        Name  Flags
      kevent  

  void endComposition();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
         0: .line 322
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            ifeq 8
         1: .line 323
            new com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            iconst_0
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            invokespecial com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText.<init>:(Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl;[CIII)V
            astore 1 /* aText */
        start local 1 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText aText
         2: .line 324
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.context:Ljava/awt/im/spi/InputMethodContext;
            sipush 1100
         3: .line 325
            aload 1 /* aText */
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
            aconst_null
            aconst_null
         4: .line 324
            invokeinterface java.awt.im.spi.InputMethodContext.dispatchInputMethodEvent:(ILjava/text/AttributedCharacterIterator;ILjava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;)V
         5: .line 326
            aload 0 /* this */
            aload 0 /* this */
            iconst_0
            dup_x1
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.committedChars:I
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.totalChars:I
         6: .line 327
            aload 0 /* this */
            getfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.text:[C
            iconst_0
            ldc 65535
            castore
         7: .line 328
            aload 0 /* this */
            iconst_0
            putfield com.sun.inputmethods.internal.indicim.IndicInputMethodImpl.lastCharWasVirama:Z
        end local 1 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText aText
         8: .line 330
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.inputmethods.internal.indicim.IndicInputMethodImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl;
            2    8     1  aText  Lcom/sun/inputmethods/internal/indicim/IndicInputMethodImpl$ACIText;
}
SourceFile: "IndicInputMethodImpl.java"
NestMembers:
  com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText
InnerClasses:
  private ACIText = com.sun.inputmethods.internal.indicim.IndicInputMethodImpl$ACIText of com.sun.inputmethods.internal.indicim.IndicInputMethodImpl