public class jdk.internal.jline.WindowsTerminal extends jdk.internal.jline.TerminalSupport
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.jline.WindowsTerminal
  super_class: jdk.internal.jline.TerminalSupport
{
  public static final java.lang.String DIRECT_CONSOLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String ANSI;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 57
            new java.lang.StringBuilder
            dup
            ldc Ljdk/internal/jline/WindowsTerminal;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".directConsole"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic jdk.internal.jline.WindowsTerminal.DIRECT_CONSOLE:Ljava/lang/String;
         1: .line 59
            new java.lang.StringBuilder
            dup
            ldc Ljdk/internal/jline/WindowsTerminal;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".ansi"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic jdk.internal.jline.WindowsTerminal.ANSI:Ljava/lang/String;
         2: .line 311
            ldc "le"
            invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
         3: .line 312
            invokestatic jdk.internal.jline.WindowsTerminal.initIDs:()V
         4: .line 313
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jline.WindowsTerminal this
         0: .line 66
            aload 0 /* this */
            iconst_1
            invokespecial jdk.internal.jline.TerminalSupport.<init>:(Z)V
         1: .line 67
            return
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/jline/WindowsTerminal;
    Exceptions:
      throws java.lang.Exception

  public void init();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.internal.jline.WindowsTerminal this
         0: .line 71
            aload 0 /* this */
            invokespecial jdk.internal.jline.TerminalSupport.init:()V
         1: .line 74
            aload 0 /* this */
            iconst_0
            invokevirtual jdk.internal.jline.WindowsTerminal.setAnsiSupported:(Z)V
         2: .line 80
            aload 0 /* this */
            getstatic jdk.internal.jline.WindowsTerminal.DIRECT_CONSOLE:Ljava/lang/String;
            iconst_1
            invokestatic jdk.internal.jline.internal.Configuration.getBoolean:(Ljava/lang/String;Z)Z
            invokevirtual jdk.internal.jline.WindowsTerminal.setDirectConsole:(Z)V
         3: .line 82
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual jdk.internal.jline.WindowsTerminal.getConsoleMode:()I
            putfield jdk.internal.jline.WindowsTerminal.originalMode:I
         4: .line 83
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.jline.WindowsTerminal.originalMode:I
            getstatic jdk.internal.jline.WindowsTerminal$ConsoleMode.ENABLE_ECHO_INPUT:Ljdk/internal/jline/WindowsTerminal$ConsoleMode;
            getfield jdk.internal.jline.WindowsTerminal$ConsoleMode.code:I
            iconst_m1
            ixor
            iand
            invokevirtual jdk.internal.jline.WindowsTerminal.setConsoleMode:(I)V
         5: .line 84
            aload 0 /* this */
            iconst_0
            invokevirtual jdk.internal.jline.WindowsTerminal.setEchoEnabled:(Z)V
         6: .line 85
            return
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/internal/jline/WindowsTerminal;
    Exceptions:
      throws java.lang.Exception

  public void restore();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jline.WindowsTerminal this
         0: .line 95
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.jline.WindowsTerminal.originalMode:I
            invokevirtual jdk.internal.jline.WindowsTerminal.setConsoleMode:(I)V
         1: .line 96
            aload 0 /* this */
            invokespecial jdk.internal.jline.TerminalSupport.restore:()V
         2: .line 97
            return
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jline/WindowsTerminal;
    Exceptions:
      throws java.lang.Exception

  public int getWidth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.internal.jline.WindowsTerminal this
         0: .line 101
            aload 0 /* this */
            invokevirtual jdk.internal.jline.WindowsTerminal.getWindowsTerminalWidth:()I
            istore 1 /* w */
        start local 1 // int w
         1: .line 102
            iload 1 /* w */
            iconst_1
            if_icmpge 2
            bipush 80
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iload 1 /* w */
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // int w
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/internal/jline/WindowsTerminal;
            1    4     1     w  I

  public int getHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.internal.jline.WindowsTerminal this
         0: .line 107
            aload 0 /* this */
            invokevirtual jdk.internal.jline.WindowsTerminal.getWindowsTerminalHeight:()I
            istore 1 /* h */
        start local 1 // int h
         1: .line 108
            iload 1 /* h */
            iconst_1
            if_icmpge 2
            bipush 24
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iload 1 /* h */
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // int h
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/internal/jline/WindowsTerminal;
            1    4     1     h  I

  public void setEchoEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.internal.jline.WindowsTerminal this
        start local 1 // boolean enabled
         0: .line 114
            iload 1 /* enabled */
            ifeq 8
         1: .line 115
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual jdk.internal.jline.WindowsTerminal.getConsoleMode:()I
         2: .line 116
            getstatic jdk.internal.jline.WindowsTerminal$ConsoleMode.ENABLE_ECHO_INPUT:Ljdk/internal/jline/WindowsTerminal$ConsoleMode;
            getfield jdk.internal.jline.WindowsTerminal$ConsoleMode.code:I
            ior
         3: .line 117
            getstatic jdk.internal.jline.WindowsTerminal$ConsoleMode.ENABLE_LINE_INPUT:Ljdk/internal/jline/WindowsTerminal$ConsoleMode;
            getfield jdk.internal.jline.WindowsTerminal$ConsoleMode.code:I
            ior
         4: .line 118
            getstatic jdk.internal.jline.WindowsTerminal$ConsoleMode.ENABLE_PROCESSED_INPUT:Ljdk/internal/jline/WindowsTerminal$ConsoleMode;
            getfield jdk.internal.jline.WindowsTerminal$ConsoleMode.code:I
            ior
         5: .line 119
            getstatic jdk.internal.jline.WindowsTerminal$ConsoleMode.ENABLE_WINDOW_INPUT:Ljdk/internal/jline/WindowsTerminal$ConsoleMode;
            getfield jdk.internal.jline.WindowsTerminal$ConsoleMode.code:I
            ior
         6: .line 115
            invokevirtual jdk.internal.jline.WindowsTerminal.setConsoleMode:(I)V
         7: .line 120
            goto 17
         8: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual jdk.internal.jline.WindowsTerminal.getConsoleMode:()I
         9: .line 123
            getstatic jdk.internal.jline.WindowsTerminal$ConsoleMode.ENABLE_LINE_INPUT:Ljdk/internal/jline/WindowsTerminal$ConsoleMode;
            getfield jdk.internal.jline.WindowsTerminal$ConsoleMode.code:I
        10: .line 124
            getstatic jdk.internal.jline.WindowsTerminal$ConsoleMode.ENABLE_ECHO_INPUT:Ljdk/internal/jline/WindowsTerminal$ConsoleMode;
            getfield jdk.internal.jline.WindowsTerminal$ConsoleMode.code:I
        11: .line 123
            ior
        12: .line 125
            getstatic jdk.internal.jline.WindowsTerminal$ConsoleMode.ENABLE_PROCESSED_INPUT:Ljdk/internal/jline/WindowsTerminal$ConsoleMode;
            getfield jdk.internal.jline.WindowsTerminal$ConsoleMode.code:I
        13: .line 123
            ior
        14: .line 126
            getstatic jdk.internal.jline.WindowsTerminal$ConsoleMode.ENABLE_WINDOW_INPUT:Ljdk/internal/jline/WindowsTerminal$ConsoleMode;
            getfield jdk.internal.jline.WindowsTerminal$ConsoleMode.code:I
        15: .line 123
            ior
            iconst_m1
            ixor
            iand
        16: .line 122
            invokevirtual jdk.internal.jline.WindowsTerminal.setConsoleMode:(I)V
        17: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* enabled */
            invokespecial jdk.internal.jline.TerminalSupport.setEchoEnabled:(Z)V
        18: .line 129
            return
        end local 1 // boolean enabled
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Ljdk/internal/jline/WindowsTerminal;
            0   19     1  enabled  Z
    MethodParameters:
         Name  Flags
      enabled  final

  public void setDirectConsole(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.internal.jline.WindowsTerminal this
        start local 1 // boolean flag
         0: .line 135
            aload 0 /* this */
            iload 1 /* flag */
            putfield jdk.internal.jline.WindowsTerminal.directConsole:Z
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 136
            ldc "Direct console: "
            aastore
            dup
            iconst_1
            iload 1 /* flag */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            invokestatic jdk.internal.jline.internal.Log.debug:([Ljava/lang/Object;)V
         2: .line 137
            return
        end local 1 // boolean flag
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jline/WindowsTerminal;
            0    3     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  final

  public java.lang.Boolean getDirectConsole();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.WindowsTerminal this
         0: .line 143
            aload 0 /* this */
            getfield jdk.internal.jline.WindowsTerminal.directConsole:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/WindowsTerminal;

  public java.io.InputStream wrapInIfNeeded(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.internal.jline.WindowsTerminal this
        start local 1 // java.io.InputStream in
         0: .line 149
            aload 0 /* this */
            getfield jdk.internal.jline.WindowsTerminal.directConsole:Z
            ifeq 2
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual jdk.internal.jline.WindowsTerminal.isSystemIn:(Ljava/io/InputStream;)Z
            ifeq 2
         1: .line 150
            new jdk.internal.jline.WindowsTerminal$1
            dup
            aload 0 /* this */
            invokespecial jdk.internal.jline.WindowsTerminal$1.<init>:(Ljdk/internal/jline/WindowsTerminal;)V
            areturn
         2: .line 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            invokespecial jdk.internal.jline.TerminalSupport.wrapInIfNeeded:(Ljava/io/InputStream;)Ljava/io/InputStream;
            areturn
        end local 1 // java.io.InputStream in
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jline/WindowsTerminal;
            0    3     1    in  Ljava/io/InputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    

  protected boolean isSystemIn(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jline.WindowsTerminal this
        start local 1 // java.io.InputStream in
         0: .line 171
            aload 1 /* in */
            ifnonnull 2
         1: .line 172
            iconst_0
            ireturn
         2: .line 174
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            getstatic java.lang.System.in:Ljava/io/InputStream;
            if_acmpne 4
         3: .line 175
            iconst_1
            ireturn
         4: .line 177
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            instanceof java.io.FileInputStream
            ifeq 6
            aload 1 /* in */
            checkcast java.io.FileInputStream
            invokevirtual java.io.FileInputStream.getFD:()Ljava/io/FileDescriptor;
            getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
            if_acmpne 6
         5: .line 178
            iconst_1
            ireturn
         6: .line 181
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.io.InputStream in
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/internal/jline/WindowsTerminal;
            0    7     1    in  Ljava/io/InputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    final

  public java.lang.String getOutputEncoding();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // jdk.internal.jline.WindowsTerminal this
         0: .line 186
            aload 0 /* this */
            invokevirtual jdk.internal.jline.WindowsTerminal.getConsoleOutputCodepage:()I
            istore 1 /* codepage */
        start local 1 // int codepage
         1: .line 188
            new java.lang.StringBuilder
            dup
            ldc "ms"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* codepage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* charsetMS */
        start local 2 // java.lang.String charsetMS
         2: .line 189
            aload 2 /* charsetMS */
            invokestatic java.nio.charset.Charset.isSupported:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 190
            aload 2 /* charsetMS */
            areturn
         4: .line 192
      StackMap locals: int java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "cp"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* codepage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* charsetCP */
        start local 3 // java.lang.String charsetCP
         5: .line 193
            aload 3 /* charsetCP */
            invokestatic java.nio.charset.Charset.isSupported:(Ljava/lang/String;)Z
            ifeq 7
         6: .line 194
            aload 3 /* charsetCP */
            areturn
      StackMap locals: java.lang.String
      StackMap stack:
         7: iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 196
            new java.lang.StringBuilder
            dup
            ldc "can't figure out the Java Charset of this code page ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* codepage */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            invokestatic jdk.internal.jline.internal.Log.debug:([Ljava/lang/Object;)V
         9: .line 197
            aload 0 /* this */
            invokespecial jdk.internal.jline.TerminalSupport.getOutputEncoding:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.String charsetCP
        end local 2 // java.lang.String charsetMS
        end local 1 // int codepage
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Ljdk/internal/jline/WindowsTerminal;
            1   10     1   codepage  I
            2   10     2  charsetMS  Ljava/lang/String;
            5   10     3  charsetCP  Ljava/lang/String;

  private static native void initIDs();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  protected native int getConsoleMode();
    descriptor: ()I
    flags: (0x0104) ACC_PROTECTED, ACC_NATIVE

  protected native void setConsoleMode(int);
    descriptor: (I)V
    flags: (0x0104) ACC_PROTECTED, ACC_NATIVE
    MethodParameters:
      Name  Flags
      mode  

  private byte[] readConsoleInput();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // jdk.internal.jline.WindowsTerminal this
         0: .line 322
            aload 0 /* this */
            invokevirtual jdk.internal.jline.WindowsTerminal.readKeyEvent:()Ljdk/internal/jline/WindowsTerminal$KEY_EVENT_RECORD;
            astore 1 /* keyEvent */
        start local 1 // jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD keyEvent
         1: .line 324
            aload 1 /* keyEvent */
            invokestatic jdk.internal.jline.WindowsTerminal.convertKeys:(Ljdk/internal/jline/WindowsTerminal$KEY_EVENT_RECORD;)Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            areturn
        end local 1 // jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD keyEvent
        end local 0 // jdk.internal.jline.WindowsTerminal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljdk/internal/jline/WindowsTerminal;
            1    2     1  keyEvent  Ljdk/internal/jline/WindowsTerminal$KEY_EVENT_RECORD;

  public static java.lang.String convertKeys(jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD);
    descriptor: (Ljdk/internal/jline/WindowsTerminal$KEY_EVENT_RECORD;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD keyEvent
         0: .line 328
            aload 0 /* keyEvent */
            ifnonnull 2
         1: .line 329
            ldc ""
            areturn
         2: .line 332
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         3: .line 334
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.keyDown:Z
            ifeq 75
         4: .line 335
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.uchar:C
            ifle 22
         5: .line 343
            iconst_0
            istore 2 /* handled */
        start local 2 // boolean handled
         6: .line 345
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            bipush 12
            iand
            ifeq 10
         7: .line 346
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.keyCode:I
            tableswitch { // 67 - 67
                   67: 8
              default: 10
          }
         8: .line 348
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* sb */
            ldc "\u0003"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 349
            iconst_1
            istore 2 /* handled */
        10: .line 351
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
        11: .line 354
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            bipush 16
            iand
            ifeq 15
        12: .line 355
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.keyCode:I
            tableswitch { // 9 - 9
                    9: 13
              default: 15
          }
        13: .line 357
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc "\u001B[Z"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 358
            iconst_1
            istore 2 /* handled */
        15: .line 363
      StackMap locals:
      StackMap stack:
            iload 2 /* handled */
            ifne 77
        16: .line 364
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.uchar:C
            bipush 64
            if_icmplt 17
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.uchar:C
            bipush 95
            if_icmple 18
      StackMap locals:
      StackMap stack:
        17: aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.uchar:C
            bipush 97
            if_icmplt 20
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.uchar:C
            bipush 122
            if_icmpgt 20
        18: .line 365
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            iconst_3
            iand
            ifeq 20
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            bipush 12
            iand
            ifne 20
        19: .line 366
            aload 1 /* sb */
            bipush 27
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        20: .line 369
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.uchar:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 2 // boolean handled
        21: .line 371
            goto 77
        22: .line 377
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* escapeSequence */
        start local 2 // java.lang.String escapeSequence
        23: .line 378
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.keyCode:I
            lookupswitch { // 22
                   33: 24
                   34: 26
                   35: 28
                   36: 30
                   37: 32
                   38: 34
                   39: 36
                   40: 38
                   45: 40
                   46: 42
                  112: 44
                  113: 46
                  114: 48
                  115: 50
                  116: 52
                  117: 54
                  118: 56
                  119: 58
                  120: 60
                  121: 62
                  122: 64
                  123: 66
              default: 68
          }
        24: .line 380
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[5~"
            ldc "\u001B[5;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        25: .line 381
            goto 68
        26: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[6~"
            ldc "\u001B[6;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        27: .line 384
            goto 68
        28: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[4~"
            ldc "\u001B[4;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        29: .line 387
            goto 68
        30: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[1~"
            ldc "\u001B[1;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        31: .line 390
            goto 68
        32: .line 392
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[D"
            ldc "\u001B[1;%dD"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        33: .line 393
            goto 68
        34: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[A"
            ldc "\u001B[1;%dA"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        35: .line 396
            goto 68
        36: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[C"
            ldc "\u001B[1;%dC"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        37: .line 399
            goto 68
        38: .line 401
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[B"
            ldc "\u001B[1;%dB"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        39: .line 402
            goto 68
        40: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[2~"
            ldc "\u001B[2;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        41: .line 405
            goto 68
        42: .line 407
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[3~"
            ldc "\u001B[3;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        43: .line 408
            goto 68
        44: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001BOP"
            ldc "\u001BO%dP"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        45: .line 411
            goto 68
        46: .line 413
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001BOQ"
            ldc "\u001BO%dQ"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        47: .line 414
            goto 68
        48: .line 416
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001BOR"
            ldc "\u001BO%dR"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        49: .line 417
            goto 68
        50: .line 419
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001BOS"
            ldc "\u001BO%dS"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        51: .line 420
            goto 68
        52: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[15~"
            ldc "\u001B[15;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        53: .line 423
            goto 68
        54: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[17~"
            ldc "\u001B[17;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        55: .line 426
            goto 68
        56: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[18~"
            ldc "\u001B[18;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        57: .line 429
            goto 68
        58: .line 431
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[19~"
            ldc "\u001B[19;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        59: .line 432
            goto 68
        60: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[20~"
            ldc "\u001B[20;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        61: .line 435
            goto 68
        62: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[21~"
            ldc "\u001B[21;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        63: .line 438
            goto 68
        64: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[23~"
            ldc "\u001B[23;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        65: .line 441
            goto 68
        66: .line 443
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.controlKeyState:I
            ldc "\u001B[24~"
            ldc "\u001B[24;%d~"
            invokestatic jdk.internal.jline.WindowsTerminal.escapeSequence:(ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* escapeSequence */
        67: .line 444
            goto 68
        68: .line 448
      StackMap locals:
      StackMap stack:
            aload 2 /* escapeSequence */
            ifnull 77
        69: .line 449
            iconst_0
            istore 3 /* k */
        start local 3 // int k
        70: goto 73
        71: .line 450
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            aload 2 /* escapeSequence */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        72: .line 449
            iinc 3 /* k */ 1
      StackMap locals:
      StackMap stack:
        73: iload 3 /* k */
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.repeatCount:I
            if_icmplt 71
        end local 3 // int k
        end local 2 // java.lang.String escapeSequence
        74: .line 454
            goto 77
        75: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.keyCode:I
            bipush 18
            if_icmpne 77
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.uchar:C
            ifle 77
        76: .line 458
            aload 1 /* sb */
            aload 0 /* keyEvent */
            getfield jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD.uchar:C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        77: .line 461
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD keyEvent
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   78     0        keyEvent  Ljdk/internal/jline/WindowsTerminal$KEY_EVENT_RECORD;
            3   78     1              sb  Ljava/lang/StringBuilder;
            6   21     2         handled  Z
           23   74     2  escapeSequence  Ljava/lang/String;
           70   74     3               k  I
    MethodParameters:
          Name  Flags
      keyEvent  

  private static java.lang.String escapeSequence(int, java.lang.String, java.lang.String);
    descriptor: (ILjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // int controlKeyState
        start local 1 // java.lang.String noControlSequence
        start local 2 // java.lang.String withControlSequence
         0: .line 465
            iconst_1
            istore 3 /* controlNum */
        start local 3 // int controlNum
         1: .line 467
            iload 0 /* controlKeyState */
            bipush 16
            iand
            ifeq 3
         2: .line 468
            iinc 3 /* controlNum */ 1
         3: .line 471
      StackMap locals: int
      StackMap stack:
            iload 0 /* controlKeyState */
            iconst_3
            iand
            ifeq 5
         4: .line 472
            iinc 3 /* controlNum */ 2
         5: .line 475
      StackMap locals:
      StackMap stack:
            iload 0 /* controlKeyState */
            bipush 12
            iand
            ifeq 7
         6: .line 476
            iinc 3 /* controlNum */ 4
         7: .line 479
      StackMap locals:
      StackMap stack:
            iload 3 /* controlNum */
            iconst_1
            if_icmple 9
         8: .line 480
            aload 2 /* withControlSequence */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 3 /* controlNum */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
         9: .line 482
      StackMap locals:
      StackMap stack:
            aload 1 /* noControlSequence */
            areturn
        end local 3 // int controlNum
        end local 2 // java.lang.String withControlSequence
        end local 1 // java.lang.String noControlSequence
        end local 0 // int controlKeyState
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   10     0      controlKeyState  I
            0   10     1    noControlSequence  Ljava/lang/String;
            0   10     2  withControlSequence  Ljava/lang/String;
            1   10     3           controlNum  I
    MethodParameters:
                     Name  Flags
      controlKeyState      
      noControlSequence    
      withControlSequence  

  private native jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD readKeyEvent();
    descriptor: ()Ljdk/internal/jline/WindowsTerminal$KEY_EVENT_RECORD;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native int getConsoleOutputCodepage();
    descriptor: ()I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native int getWindowsTerminalWidth();
    descriptor: ()I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native int getWindowsTerminalHeight();
    descriptor: ()I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
}
SourceFile: "WindowsTerminal.java"
NestMembers:
  jdk.internal.jline.WindowsTerminal$1  jdk.internal.jline.WindowsTerminal$ConsoleMode  jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD
InnerClasses:
  jdk.internal.jline.WindowsTerminal$1
  public final ConsoleMode = jdk.internal.jline.WindowsTerminal$ConsoleMode of jdk.internal.jline.WindowsTerminal
  public KEY_EVENT_RECORD = jdk.internal.jline.WindowsTerminal$KEY_EVENT_RECORD of jdk.internal.jline.WindowsTerminal