class jdk.internal.jshell.tool.ConsoleIOContext extends jdk.internal.jshell.tool.IOContext
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.internal.jshell.tool.ConsoleIOContext
  super_class: jdk.internal.jshell.tool.IOContext
{
  private static final java.lang.String HISTORY_LINE_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "HISTORY_LINE_"

  final jdk.internal.jshell.tool.JShellTool repl;
    descriptor: Ljdk/internal/jshell/tool/JShellTool;
    flags: (0x0010) ACC_FINAL

  final jdk.internal.jshell.tool.StopDetectingInputStream input;
    descriptor: Ljdk/internal/jshell/tool/StopDetectingInputStream;
    flags: (0x0010) ACC_FINAL

  final jdk.internal.jline.console.ConsoleReader in;
    descriptor: Ljdk/internal/jline/console/ConsoleReader;
    flags: (0x0010) ACC_FINAL

  final jdk.internal.jline.extra.EditingHistory history;
    descriptor: Ljdk/internal/jline/extra/EditingHistory;
    flags: (0x0010) ACC_FINAL

  final jdk.internal.jline.console.history.MemoryHistory userInputHistory;
    descriptor: Ljdk/internal/jline/console/history/MemoryHistory;
    flags: (0x0010) ACC_FINAL

  java.lang.String prefix;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  private static final java.lang.String FIXES_SHORTCUT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "\u001B[Z"

  private static final java.lang.String LINE_SEPARATOR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String LINE_SEPARATORS2;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int NEEDED_LINES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final long ESCAPE_TIMEOUT;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  private byte[] inputBytes;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

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

  private static final jdk.internal.jshell.tool.ConsoleIOContext$FixComputer[] FIX_COMPUTERS;
    descriptor: [Ljdk/internal/jshell/tool/ConsoleIOContext$FixComputer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$jdk$internal$jshell$tool$ConsoleIOContext$CompletionTask$Result;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 196
            ldc "line.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            putstatic jdk.internal.jshell.tool.ConsoleIOContext.LINE_SEPARATOR:Ljava/lang/String;
         1: .line 197
            new java.lang.StringBuilder
            dup
            getstatic jdk.internal.jshell.tool.ConsoleIOContext.LINE_SEPARATOR:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic jdk.internal.jshell.tool.ConsoleIOContext.LINE_SEPARATOR:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic jdk.internal.jshell.tool.ConsoleIOContext.LINE_SEPARATORS2:Ljava/lang/String;
         2: .line 867
            iconst_2
            anewarray jdk.internal.jshell.tool.ConsoleIOContext$FixComputer
            dup
            iconst_0
         3: .line 868
            new jdk.internal.jshell.tool.ConsoleIOContext$1
            dup
            bipush 118
            iconst_0
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$1.<init>:(CZ)V
            aastore
            dup
            iconst_1
         4: .line 920
            new jdk.internal.jshell.tool.ConsoleIOContext$2
            dup
            bipush 105
            iconst_1
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$2.<init>:(CZ)V
            aastore
         5: .line 867
            putstatic jdk.internal.jshell.tool.ConsoleIOContext.FIX_COMPUTERS:[Ljdk/internal/jshell/tool/ConsoleIOContext$FixComputer;
         6: .line 955
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.internal.jshell.tool.JShellTool, java.io.InputStream, java.io.PrintStream);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool;Ljava/io/InputStream;Ljava/io/PrintStream;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=7, args_size=4
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
        start local 1 // jdk.internal.jshell.tool.JShellTool repl
        start local 2 // java.io.InputStream cmdin
        start local 3 // java.io.PrintStream cmdout
         0: .line 81
            aload 0 /* this */
            invokespecial jdk.internal.jshell.tool.IOContext.<init>:()V
         1: .line 77
            aload 0 /* this */
            new jdk.internal.jline.console.history.MemoryHistory
            dup
            invokespecial jdk.internal.jline.console.history.MemoryHistory.<init>:()V
            putfield jdk.internal.jshell.tool.ConsoleIOContext.userInputHistory:Ljdk/internal/jline/console/history/MemoryHistory;
         2: .line 79
            aload 0 /* this */
            ldc ""
            putfield jdk.internal.jshell.tool.ConsoleIOContext.prefix:Ljava/lang/String;
         3: .line 82
            aload 0 /* this */
            aload 1 /* repl */
            putfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
         4: .line 83
            aload 0 /* this */
            new jdk.internal.jshell.tool.StopDetectingInputStream
            dup
            aload 1 /* repl */
            invokedynamic run(Ljdk/internal/jshell/tool/JShellTool;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  jdk/internal/jshell/tool/ConsoleIOContext.lambda$0(Ljdk/internal/jshell/tool/JShellTool;)V (6)
                  ()V
            aload 1 /* repl */
            invokedynamic accept(Ljdk/internal/jshell/tool/JShellTool;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/internal/jshell/tool/ConsoleIOContext.lambda$1(Ljdk/internal/jshell/tool/JShellTool;Ljava/lang/Exception;)V (6)
                  (Ljava/lang/Exception;)V
            invokespecial jdk.internal.jshell.tool.StopDetectingInputStream.<init>:(Ljava/lang/Runnable;Ljava/util/function/Consumer;)V
            putfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
         5: .line 85
            ldc "test.jdk"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 8
         6: .line 86
            new jdk.internal.jshell.tool.ConsoleIOContext$TestTerminal
            dup
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$TestTerminal.<init>:(Ljdk/internal/jshell/tool/StopDetectingInputStream;)V
            astore 4 /* term */
        start local 4 // jdk.internal.jline.Terminal term
         7: .line 87
            goto 12
        end local 4 // jdk.internal.jline.Terminal term
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext jdk.internal.jshell.tool.JShellTool java.io.InputStream java.io.PrintStream
      StackMap stack:
         8: ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "windows"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 11
         9: .line 88
            new jdk.internal.jshell.tool.ConsoleIOContext$JShellWindowsTerminal
            dup
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$JShellWindowsTerminal.<init>:(Ljdk/internal/jshell/tool/StopDetectingInputStream;)V
            astore 4 /* term */
        start local 4 // jdk.internal.jline.Terminal term
        10: .line 89
            goto 12
        end local 4 // jdk.internal.jline.Terminal term
        11: .line 90
      StackMap locals:
      StackMap stack:
            new jdk.internal.jshell.tool.ConsoleIOContext$JShellUnixTerminal
            dup
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$JShellUnixTerminal.<init>:(Ljdk/internal/jshell/tool/StopDetectingInputStream;)V
            astore 4 /* term */
        start local 4 // jdk.internal.jline.Terminal term
        12: .line 92
      StackMap locals: jdk.internal.jline.Terminal
      StackMap stack:
            aload 4 /* term */
            invokeinterface jdk.internal.jline.Terminal.init:()V
        13: .line 93
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* completionTODO */
        start local 5 // java.util.List completionTODO
        14: .line 94
            aload 0 /* this */
            new jdk.internal.jshell.tool.ConsoleIOContext$3
            dup
            aload 0 /* this */
            aload 2 /* cmdin */
            aload 3 /* cmdout */
            aload 4 /* term */
            aload 5 /* completionTODO */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$3.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;Ljava/io/InputStream;Ljava/io/OutputStream;Ljdk/internal/jline/Terminal;Ljava/util/List;)V
            putfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
        15: .line 103
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            iconst_0
            invokevirtual jdk.internal.jline.console.ConsoleReader.setExpandEvents:(Z)V
        16: .line 104
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            iconst_1
            invokevirtual jdk.internal.jline.console.ConsoleReader.setHandleUserInterrupt:(Z)V
        17: .line 105
            aload 1 /* repl */
            getfield jdk.internal.jshell.tool.JShellTool.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
            invokeinterface jdk.internal.jshell.tool.PersistentStorage.keys:()[Ljava/lang/String;
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
        18: .line 106
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/internal/jshell/tool/ConsoleIOContext.lambda$2(Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        19: .line 107
            invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
        20: .line 108
            aload 1 /* repl */
            invokedynamic apply(Ljdk/internal/jshell/tool/JShellTool;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/internal/jshell/tool/ConsoleIOContext.lambda$3(Ljdk/internal/jshell/tool/JShellTool;Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        21: .line 109
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        22: .line 105
            astore 6 /* persistenHistory */
        start local 6 // java.util.List persistenHistory
        23: .line 110
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 0 /* this */
            new jdk.internal.jshell.tool.ConsoleIOContext$4
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 6 /* persistenHistory */
            aload 1 /* repl */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$4.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;Ljdk/internal/jline/console/ConsoleReader;Ljava/lang/Iterable;Ljdk/internal/jshell/tool/JShellTool;)V
            dup_x1
            putfield jdk.internal.jshell.tool.ConsoleIOContext.history:Ljdk/internal/jline/extra/EditingHistory;
            invokevirtual jdk.internal.jline.console.ConsoleReader.setHistory:(Ljdk/internal/jline/console/history/History;)V
        24: .line 115
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            iconst_1
            invokevirtual jdk.internal.jline.console.ConsoleReader.setBellEnabled:(Z)V
        25: .line 116
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            iconst_1
            invokevirtual jdk.internal.jline.console.ConsoleReader.setCopyPasteDetection:(Z)V
        26: .line 117
            aload 0 /* this */
            ldc "\u001B[Z"
            aload 0 /* this */
            invokedynamic run(Ljdk/internal/jshell/tool/ConsoleIOContext;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  jdk/internal/jshell/tool/ConsoleIOContext.lambda$4()V (7)
                  ()V
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext.bind:(Ljava/lang/String;Ljava/lang/Object;)V
        27: .line 119
            new jdk.internal.misc.Signal
            dup
            ldc "CONT"
            invokespecial jdk.internal.misc.Signal.<init>:(Ljava/lang/String;)V
            new jdk.internal.jshell.tool.ConsoleIOContext$5
            dup
            aload 0 /* this */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$5.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;)V
            invokestatic jdk.internal.misc.Signal.handle:(Ljdk/internal/misc/Signal;Ljdk/internal/misc/Signal$Handler;)Ljdk/internal/misc/Signal$Handler;
            pop
        28: .line 130
            goto 30
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext jdk.internal.jshell.tool.JShellTool java.io.InputStream java.io.PrintStream jdk.internal.jline.Terminal java.util.List java.util.List
      StackMap stack: java.lang.IllegalArgumentException
        29: pop
        30: .line 133
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.util.List persistenHistory
        end local 5 // java.util.List completionTODO
        end local 4 // jdk.internal.jline.Terminal term
        end local 3 // java.io.PrintStream cmdout
        end local 2 // java.io.InputStream cmdin
        end local 1 // jdk.internal.jshell.tool.JShellTool repl
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   31     0              this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            0   31     1              repl  Ljdk/internal/jshell/tool/JShellTool;
            0   31     2             cmdin  Ljava/io/InputStream;
            0   31     3            cmdout  Ljava/io/PrintStream;
            7    8     4              term  Ljdk/internal/jline/Terminal;
           10   11     4              term  Ljdk/internal/jline/Terminal;
           12   31     4              term  Ljdk/internal/jline/Terminal;
           14   31     5    completionTODO  Ljava/util/List<Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;>;
           23   31     6  persistenHistory  Ljava/util/List<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
          27    28      29  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      repl    
      cmdin   
      cmdout  

  public java.lang.String readLine(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
        start local 1 // java.lang.String prompt
        start local 2 // java.lang.String prefix
         0: .line 137
            aload 0 /* this */
            aload 2 /* prefix */
            putfield jdk.internal.jshell.tool.ConsoleIOContext.prefix:Ljava/lang/String;
         1: .line 139
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 1 /* prompt */
            invokevirtual jdk.internal.jline.console.ConsoleReader.readLine:(Ljava/lang/String;)Ljava/lang/String;
         2: areturn
         3: .line 140
      StackMap locals:
      StackMap stack: jdk.internal.jline.console.UserInterruptException
            astore 3 /* ex */
        start local 3 // jdk.internal.jline.console.UserInterruptException ex
         4: .line 141
            new jdk.internal.jshell.tool.IOContext$InputInterruptedException
            dup
            aload 0 /* this */
            invokespecial jdk.internal.jshell.tool.IOContext$InputInterruptedException.<init>:(Ljdk/internal/jshell/tool/IOContext;)V
            aload 3 /* ex */
            invokevirtual jdk.internal.jshell.tool.IOContext$InputInterruptedException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            checkcast jdk.internal.jshell.tool.IOContext$InputInterruptedException
            athrow
        end local 3 // jdk.internal.jline.console.UserInterruptException ex
        end local 2 // java.lang.String prefix
        end local 1 // java.lang.String prompt
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            0    5     1  prompt  Ljava/lang/String;
            0    5     2  prefix  Ljava/lang/String;
            4    5     3      ex  Ljdk/internal/jline/console/UserInterruptException;
      Exception table:
        from    to  target  type
           1     2       3  Class jdk.internal.jline.console.UserInterruptException
    Exceptions:
      throws java.io.IOException, jdk.internal.jshell.tool.IOContext$InputInterruptedException
    MethodParameters:
        Name  Flags
      prompt  
      prefix  

  public boolean interactiveOutput();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 147
            iconst_1
            ireturn
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/ConsoleIOContext;

  public java.lang.Iterable<java.lang.String> currentSessionHistory();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 152
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.history:Ljdk/internal/jline/extra/EditingHistory;
            invokevirtual jdk.internal.jline.extra.EditingHistory.currentSessionEntries:()Ljava/util/List;
            areturn
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/ConsoleIOContext;
    Signature: ()Ljava/lang/Iterable<Ljava/lang/String;>;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 158
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            getfield jdk.internal.jshell.tool.JShellTool.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
            invokeinterface jdk.internal.jshell.tool.PersistentStorage.keys:()[Ljava/lang/String;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext top int int java.lang.String[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* key */
        start local 1 // java.lang.String key
         2: .line 159
            aload 1 /* key */
            ldc "HISTORY_LINE_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 160
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            getfield jdk.internal.jshell.tool.JShellTool.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
            aload 1 /* key */
            invokeinterface jdk.internal.jshell.tool.PersistentStorage.remove:(Ljava/lang/String;)V
        end local 1 // java.lang.String key
         4: .line 158
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 163
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.history:Ljdk/internal/jline/extra/EditingHistory;
            invokevirtual jdk.internal.jline.extra.EditingHistory.save:()Ljava/util/Collection;
            astore 1 /* savedHistory */
        start local 1 // java.util.Collection savedHistory
         7: .line 164
            aload 1 /* savedHistory */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 15
         8: .line 165
            aload 1 /* savedHistory */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            iadd
            i2d
            invokestatic java.lang.Math.log10:(D)D
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 2 /* len */
        start local 2 // int len
         9: .line 166
            new java.lang.StringBuilder
            dup
            ldc "HISTORY_LINE_%0"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "d"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* format */
        start local 3 // java.lang.String format
        10: .line 167
            iconst_0
            istore 4 /* index */
        start local 4 // int index
        11: .line 168
            aload 1 /* savedHistory */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 14
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.Collection int java.lang.String int top java.util.Iterator
      StackMap stack:
        12: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* historyLine */
        start local 5 // java.lang.String historyLine
        13: .line 169
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            getfield jdk.internal.jshell.tool.JShellTool.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
            aload 3 /* format */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 4 /* index */
            iinc 4 /* index */ 1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 5 /* historyLine */
            invokeinterface jdk.internal.jshell.tool.PersistentStorage.put:(Ljava/lang/String;Ljava/lang/String;)V
        end local 5 // java.lang.String historyLine
        14: .line 168
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 4 // int index
        end local 3 // java.lang.String format
        end local 2 // int len
        15: .line 172
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            getfield jdk.internal.jshell.tool.JShellTool.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
            invokeinterface jdk.internal.jshell.tool.PersistentStorage.flush:()V
        16: .line 173
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.shutdown:()V
        17: .line 175
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getTerminal:()Ljdk/internal/jline/Terminal;
            invokeinterface jdk.internal.jline.Terminal.restore:()V
        18: .line 176
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Exception
        19: astore 2 /* ex */
        start local 2 // java.lang.Exception ex
        20: .line 177
            new java.io.IOException
            dup
            aload 2 /* ex */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception ex
        21: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
            invokevirtual jdk.internal.jshell.tool.StopDetectingInputStream.shutdown:()V
        22: .line 180
            return
        end local 1 // java.util.Collection savedHistory
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0          this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            2    4     1           key  Ljava/lang/String;
            7   23     1  savedHistory  Ljava/util/Collection<+Ljava/lang/String;>;
            9   15     2           len  I
           10   15     3        format  Ljava/lang/String;
           11   15     4         index  I
           13   14     5   historyLine  Ljava/lang/String;
           20   21     2            ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          17    18      19  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException

  private void bind(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
        start local 1 // java.lang.String shortcut
        start local 2 // java.lang.Object action
         0: .line 183
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getKeys:()Ljdk/internal/jline/console/KeyMap;
            astore 3 /* km */
        start local 3 // jdk.internal.jline.console.KeyMap km
         1: .line 184
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 9
         3: .line 185
      StackMap locals: jdk.internal.jline.console.KeyMap int
      StackMap stack:
            aload 3 /* km */
            aload 1 /* shortcut */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
            invokevirtual jdk.internal.jline.console.KeyMap.getBound:(Ljava/lang/CharSequence;)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
         4: .line 186
            aload 5 /* value */
            instanceof jdk.internal.jline.console.KeyMap
            ifeq 7
         5: .line 187
            aload 5 /* value */
            checkcast jdk.internal.jline.console.KeyMap
            astore 3 /* km */
         6: .line 188
            goto 8
         7: .line 189
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* km */
            aload 1 /* shortcut */
            iload 4 /* i */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aload 2 /* action */
            invokevirtual jdk.internal.jline.console.KeyMap.bind:(Ljava/lang/CharSequence;Ljava/lang/Object;)V
        end local 5 // java.lang.Object value
         8: .line 184
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 1 /* shortcut */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 4 // int i
        10: .line 192
            return
        end local 3 // jdk.internal.jline.console.KeyMap km
        end local 2 // java.lang.Object action
        end local 1 // java.lang.String shortcut
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            0   11     1  shortcut  Ljava/lang/String;
            0   11     2    action  Ljava/lang/Object;
            1   11     3        km  Ljdk/internal/jline/console/KeyMap;
            2   10     4         i  I
            4    8     5     value  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      shortcut  
      action    

  private boolean complete(java.util.List<jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask>);
    descriptor: (Ljava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=17, args_size=2
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
        start local 1 // java.util.List todo
         0: .line 206
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getCursorBuffer:()Ljdk/internal/jline/console/CursorBuffer;
            invokevirtual jdk.internal.jline.console.CursorBuffer.toString:()Ljava/lang/String;
            astore 2 /* text */
        start local 2 // java.lang.String text
         1: .line 207
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getCursorBuffer:()Ljdk/internal/jline/console/CursorBuffer;
            getfield jdk.internal.jline.console.CursorBuffer.cursor:I
            istore 3 /* cursor */
        start local 3 // int cursor
         2: .line 208
            aload 1 /* todo */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 73
         3: .line 209
            iconst_1
            newarray 10
            dup
            iconst_0
            iconst_m1
            iastore
            astore 4 /* anchor */
        start local 4 // int[] anchor
         4: .line 212
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.prefix:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 5
            aload 2 /* text */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
            iconst_1
            goto 6
      StackMap locals: java.lang.String int int[]
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* command */
        start local 7 // boolean command
         7: .line 213
            iload 7 /* command */
            ifeq 11
         8: .line 214
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            aload 2 /* text */
            iload 3 /* cursor */
            aload 4 /* anchor */
            invokevirtual jdk.internal.jshell.tool.JShellTool.commandCompletionSuggestions:(Ljava/lang/String;I[I)Ljava/util/List;
            astore 5 /* suggestions */
        start local 5 // java.util.List suggestions
         9: .line 215
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            aload 2 /* text */
            iload 3 /* cursor */
            iconst_1
            invokevirtual jdk.internal.jshell.tool.JShellTool.commandDocumentation:(Ljava/lang/String;IZ)Ljava/util/List;
            astore 6 /* doc */
        start local 6 // java.util.List doc
        10: .line 216
            goto 19
        end local 6 // java.util.List doc
        end local 5 // java.util.List suggestions
        11: .line 217
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.List java.lang.String int int[] top top int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.prefix:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            istore 8 /* prefixLength */
        start local 8 // int prefixLength
        12: .line 218
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            getfield jdk.internal.jshell.tool.JShellTool.analysis:Ljdk/jshell/SourceCodeAnalysis;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.prefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* text */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iload 3 /* cursor */
            iload 8 /* prefixLength */
            iadd
            aload 4 /* anchor */
            invokevirtual jdk.jshell.SourceCodeAnalysis.completionSuggestions:(Ljava/lang/String;I[I)Ljava/util/List;
            astore 5 /* suggestions */
        start local 5 // java.util.List suggestions
        13: .line 219
            aload 4 /* anchor */
            iconst_0
            dup2
            iaload
            iload 8 /* prefixLength */
            isub
            iastore
        14: .line 220
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            getfield jdk.internal.jshell.tool.JShellTool.analysis:Ljdk/jshell/SourceCodeAnalysis;
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.prefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* text */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iload 3 /* cursor */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.prefix:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iadd
            iconst_0
            invokevirtual jdk.jshell.SourceCodeAnalysis.documentation:(Ljava/lang/String;IZ)Ljava/util/List;
        15: .line 221
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        16: .line 222
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/jshell/SourceCodeAnalysis$Documentation.signature()Ljava/lang/String; (9 itf)
                  (Ljdk/jshell/SourceCodeAnalysis$Documentation;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        17: .line 223
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        18: .line 220
            astore 6 /* doc */
        end local 8 // int prefixLength
        start local 6 // java.util.List doc
        19: .line 225
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.List java.lang.String int int[] java.util.List java.util.List int
      StackMap stack:
            aload 5 /* suggestions */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  jdk/jshell/SourceCodeAnalysis$Suggestion.matchesType()Z (9 itf)
                  (Ljdk/jshell/SourceCodeAnalysis$Suggestion;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.count:()J
            lstore 8 /* smartCount */
        start local 8 // long smartCount
        20: .line 226
            lload 8 /* smartCount */
            lconst_0
            lcmp
            ifle 21
            lload 8 /* smartCount */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getAutoprintThreshold:()I
            i2l
            lcmp
            ifgt 21
            iconst_1
            goto 22
      StackMap locals: long
      StackMap stack:
        21: iconst_0
      StackMap locals:
      StackMap stack: int
        22: istore 10 /* hasSmart */
        start local 10 // boolean hasSmart
        23: .line 227
            iload 10 /* hasSmart */
            ifeq 30
        24: .line 228
            aload 5 /* suggestions */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
        25: .line 229
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/internal/jshell/tool/ConsoleIOContext.lambda$7(Ljdk/jshell/SourceCodeAnalysis$Suggestion;)Ljava/lang/Boolean; (6)
                  (Ljdk/jshell/SourceCodeAnalysis$Suggestion;)Ljava/lang/Boolean;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        26: .line 230
            invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
        27: .line 231
            invokeinterface java.util.stream.Stream.count:()J
            ldc 2
        28: .line 228
            lcmp
            ifne 30
        29: .line 227
            iconst_1
            goto 31
      StackMap locals: int
      StackMap stack:
        30: iconst_0
      StackMap locals:
      StackMap stack: int
        31: istore 11 /* hasBoth */
        start local 11 // boolean hasBoth
        32: .line 232
            aload 5 /* suggestions */
            invokeinterface java.util.List.size:()I
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getAutoprintThreshold:()I
            if_icmple 33
            iconst_1
            goto 34
      StackMap locals: int
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: istore 12 /* tooManyItems */
        start local 12 // boolean tooManyItems
        35: .line 233
            new jdk.internal.jshell.tool.ConsoleIOContext$OrdinaryCompletionTask
            dup
            aload 0 /* this */
            aload 5 /* suggestions */
            aload 4 /* anchor */
            iconst_0
            iaload
            iload 7 /* command */
            ifne 36
            aload 6 /* doc */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 36
            iconst_1
            goto 37
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.List java.lang.String int int[] java.util.List java.util.List int long int int int
      StackMap stack: new 35 new 35 jdk.internal.jshell.tool.ConsoleIOContext java.util.List int
        36: iconst_0
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.List java.lang.String int int[] java.util.List java.util.List int long int int int
      StackMap stack: new 35 new 35 jdk.internal.jshell.tool.ConsoleIOContext java.util.List int int
        37: iload 10 /* hasSmart */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$OrdinaryCompletionTask.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;Ljava/util/List;IZZ)V
            astore 13 /* ordinaryCompletion */
        start local 13 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask ordinaryCompletion
        38: .line 234
            new jdk.internal.jshell.tool.ConsoleIOContext$AllSuggestionsCompletionTask
            dup
            aload 0 /* this */
            aload 5 /* suggestions */
            aload 4 /* anchor */
            iconst_0
            iaload
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$AllSuggestionsCompletionTask.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;Ljava/util/List;I)V
            astore 14 /* allCompletion */
        start local 14 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask allCompletion
        39: .line 237
            iload 7 /* command */
            ifeq 53
        40: .line 238
            new jdk.internal.jshell.tool.ConsoleIOContext$CommandSynopsisTask
            dup
            aload 0 /* this */
            aload 6 /* doc */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$CommandSynopsisTask.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;Ljava/util/List;)V
            astore 15 /* shortDocumentation */
        start local 15 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask shortDocumentation
        41: .line 239
            new jdk.internal.jshell.tool.ConsoleIOContext$CommandFullDocumentationTask
            dup
            aload 0 /* this */
            aload 1 /* todo */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$CommandFullDocumentationTask.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;Ljava/util/List;)V
            astore 16 /* fullDocumentation */
        start local 16 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask fullDocumentation
        42: .line 241
            aload 6 /* doc */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 51
        43: .line 242
            iload 12 /* tooManyItems */
            ifeq 47
        44: .line 243
            aload 1 /* todo */
            new jdk.internal.jshell.tool.ConsoleIOContext$NoopCompletionTask
            dup
            aload 0 /* this */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$NoopCompletionTask.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        45: .line 244
            aload 1 /* todo */
            aload 14 /* allCompletion */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        46: .line 245
            goto 48
        47: .line 246
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.List java.lang.String int int[] java.util.List java.util.List int long int int int jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask
      StackMap stack:
            aload 1 /* todo */
            aload 13 /* ordinaryCompletion */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        48: .line 248
      StackMap locals:
      StackMap stack:
            aload 1 /* todo */
            aload 15 /* shortDocumentation */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        49: .line 249
            aload 1 /* todo */
            aload 16 /* fullDocumentation */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        50: .line 250
            goto 73
        51: .line 251
      StackMap locals:
      StackMap stack:
            aload 1 /* todo */
            new jdk.internal.jshell.tool.ConsoleIOContext$NoSuchCommandCompletionTask
            dup
            aload 0 /* this */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$NoSuchCommandCompletionTask.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask fullDocumentation
        end local 15 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask shortDocumentation
        52: .line 253
            goto 73
        53: .line 254
      StackMap locals:
      StackMap stack:
            aload 6 /* doc */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 62
        54: .line 255
            iload 10 /* hasSmart */
            ifeq 57
        55: .line 256
            aload 1 /* todo */
            aload 13 /* ordinaryCompletion */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        56: .line 257
            goto 59
      StackMap locals:
      StackMap stack:
        57: iload 12 /* tooManyItems */
            ifeq 59
        58: .line 258
            aload 1 /* todo */
            new jdk.internal.jshell.tool.ConsoleIOContext$NoopCompletionTask
            dup
            aload 0 /* this */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$NoopCompletionTask.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        59: .line 260
      StackMap locals:
      StackMap stack:
            iload 10 /* hasSmart */
            ifeq 60
            iload 11 /* hasBoth */
            ifeq 73
        60: .line 261
      StackMap locals:
      StackMap stack:
            aload 1 /* todo */
            aload 14 /* allCompletion */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        61: .line 263
            goto 73
        62: .line 264
      StackMap locals:
      StackMap stack:
            new jdk.internal.jshell.tool.ConsoleIOContext$ExpressionSignaturesTask
            dup
            aload 0 /* this */
            aload 6 /* doc */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$ExpressionSignaturesTask.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;Ljava/util/List;)V
            astore 15 /* shortDocumentation */
        start local 15 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask shortDocumentation
        63: .line 265
            new jdk.internal.jshell.tool.ConsoleIOContext$ExpressionJavadocTask
            dup
            aload 0 /* this */
            aload 1 /* todo */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$ExpressionJavadocTask.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;Ljava/util/List;)V
            astore 16 /* fullDocumentation */
        start local 16 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask fullDocumentation
        64: .line 267
            iload 10 /* hasSmart */
            ifeq 66
        65: .line 268
            aload 1 /* todo */
            aload 13 /* ordinaryCompletion */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        66: .line 270
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask
      StackMap stack:
            aload 1 /* todo */
            aload 15 /* shortDocumentation */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        67: .line 271
            iload 10 /* hasSmart */
            ifeq 68
            iload 11 /* hasBoth */
            ifeq 69
        68: .line 272
      StackMap locals:
      StackMap stack:
            aload 1 /* todo */
            aload 14 /* allCompletion */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        69: .line 274
      StackMap locals:
      StackMap stack:
            iload 12 /* tooManyItems */
            ifeq 72
        70: .line 275
            aload 1 /* todo */
            aload 1 /* todo */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            aload 16 /* fullDocumentation */
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        71: .line 276
            goto 73
        72: .line 277
      StackMap locals:
      StackMap stack:
            aload 1 /* todo */
            aload 16 /* fullDocumentation */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask fullDocumentation
        end local 15 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask shortDocumentation
        end local 14 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask allCompletion
        end local 13 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask ordinaryCompletion
        end local 12 // boolean tooManyItems
        end local 11 // boolean hasBoth
        end local 10 // boolean hasSmart
        end local 8 // long smartCount
        end local 7 // boolean command
        end local 6 // java.util.List doc
        end local 5 // java.util.List suggestions
        end local 4 // int[] anchor
        73: .line 283
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.List java.lang.String int
      StackMap stack:
            iconst_0
            istore 4 /* success */
        start local 4 // boolean success
        74: .line 284
            iconst_1
            istore 5 /* repaint */
        start local 5 // boolean repaint
        75: .line 286
            goto 86
        76: .line 287
      StackMap locals: int int
      StackMap stack:
            aload 1 /* todo */
            iconst_0
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask
            aload 2 /* text */
            iload 3 /* cursor */
            invokeinterface jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask.perform:(Ljava/lang/String;I)Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
            astore 6 /* result */
        start local 6 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result result
        77: .line 289
            invokestatic jdk.internal.jshell.tool.ConsoleIOContext.$SWITCH_TABLE$jdk$internal$jshell$tool$ConsoleIOContext$CompletionTask$Result:()[I
            aload 6 /* result */
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 82
                    2: 78
                    3: 81
                    4: 80
                    5: 79
              default: 86
          }
        78: .line 291
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result
      StackMap stack:
            goto 86
        79: .line 293
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* repaint */
        80: .line 295
      StackMap locals:
      StackMap stack:
            aload 1 /* todo */
            invokeinterface java.util.List.clear:()V
        81: .line 298
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* success */
        82: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* todo */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 87
        83: .line 302
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.println:()V
        84: .line 303
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 1 /* todo */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask
            invokeinterface jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask.description:()Ljava/lang/String;
            invokevirtual jdk.internal.jline.console.ConsoleReader.println:(Ljava/lang/CharSequence;)V
        85: .line 305
            goto 87
        end local 6 // jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result result
        86: .line 286
      StackMap locals:
      StackMap stack:
            aload 1 /* todo */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 76
        87: .line 309
      StackMap locals:
      StackMap stack:
            iload 5 /* repaint */
            ifeq 90
        88: .line 310
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.redrawLine:()V
        89: .line 311
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.flush:()V
        90: .line 314
      StackMap locals:
      StackMap stack:
            iload 4 /* success */
        91: ireturn
        end local 5 // boolean repaint
        end local 4 // boolean success
        end local 3 // int cursor
        end local 2 // java.lang.String text
        92: .line 315
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.List
      StackMap stack: java.io.IOException
            astore 2 /* ex */
        start local 2 // java.io.IOException ex
        93: .line 316
            new java.lang.IllegalStateException
            dup
            aload 2 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException ex
        end local 1 // java.util.List todo
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   94     0                this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            0   94     1                todo  Ljava/util/List<Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;>;
            1   92     2                text  Ljava/lang/String;
            2   92     3              cursor  I
            4   73     4              anchor  [I
            9   11     5         suggestions  Ljava/util/List<Ljdk/jshell/SourceCodeAnalysis$Suggestion;>;
           13   73     5         suggestions  Ljava/util/List<Ljdk/jshell/SourceCodeAnalysis$Suggestion;>;
           10   11     6                 doc  Ljava/util/List<Ljava/lang/String;>;
           19   73     6                 doc  Ljava/util/List<Ljava/lang/String;>;
            7   73     7             command  Z
           12   19     8        prefixLength  I
           20   73     8          smartCount  J
           23   73    10            hasSmart  Z
           32   73    11             hasBoth  Z
           35   73    12        tooManyItems  Z
           38   73    13  ordinaryCompletion  Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;
           39   73    14       allCompletion  Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;
           41   52    15  shortDocumentation  Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;
           42   52    16   fullDocumentation  Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;
           63   73    15  shortDocumentation  Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;
           64   73    16   fullDocumentation  Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;
           74   92     4             success  Z
           75   92     5             repaint  Z
           77   86     6              result  Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
           93   94     2                  ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0    91      92  Class java.io.IOException
    Signature: (Ljava/util/List<Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;>;)Z
    MethodParameters:
      Name  Flags
      todo  

  private jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result doPrintFullDocumentation(java.util.List<jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask>, java.util.List<java.lang.String>, boolean);
    descriptor: (Ljava/util/List;Ljava/util/List;Z)Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=4
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
        start local 1 // java.util.List todo
        start local 2 // java.util.List doc
        start local 3 // boolean command
         0: .line 321
            aload 2 /* doc */
            ifnull 24
            aload 2 /* doc */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 24
         1: .line 322
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getTerminal:()Ljdk/internal/jline/Terminal;
            astore 4 /* term */
        start local 4 // jdk.internal.jline.Terminal term
         2: .line 323
            aload 4 /* term */
            invokeinterface jdk.internal.jline.Terminal.getHeight:()I
            iconst_4
            isub
            istore 5 /* pageHeight */
        start local 5 // int pageHeight
         3: .line 324
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* thisTODO */
        start local 6 // java.util.List thisTODO
         4: .line 326
            aload 2 /* doc */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7 /* docIt */
        start local 7 // java.util.Iterator docIt
         5: goto 21
         6: .line 327
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.List java.util.List int jdk.internal.jline.Terminal int java.util.List java.util.Iterator
      StackMap stack:
            aload 7 /* docIt */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* currentDoc */
        start local 8 // java.lang.String currentDoc
         7: .line 328
            aload 8 /* currentDoc */
            ldc "\n"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 9 /* lines */
        start local 9 // java.lang.String[] lines
         8: .line 329
            iconst_0
            istore 10 /* firstLine */
        start local 10 // int firstLine
         9: .line 331
            goto 20
        10: .line 332
      StackMap locals: java.lang.String java.lang.String[] int
      StackMap stack:
            iload 10 /* firstLine */
            ifne 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 11 /* first */
        start local 11 // boolean first
        13: .line 334
            aload 9 /* lines */
        14: .line 335
            iload 10 /* firstLine */
        15: .line 336
            iload 10 /* firstLine */
            iload 5 /* pageHeight */
            iadd
            aload 9 /* lines */
            arraylength
            invokestatic java.lang.Math.min:(II)I
        16: .line 334
            invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
            checkcast java.lang.String[]
        17: .line 333
            astore 12 /* thisPageLines */
        start local 12 // java.lang.String[] thisPageLines
        18: .line 338
            aload 6 /* thisTODO */
            new jdk.internal.jshell.tool.ConsoleIOContext$6
            dup
            aload 0 /* this */
            iload 11 /* first */
            iload 3 /* command */
            aload 12 /* thisPageLines */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$6.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;ZZ[Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 358
            iload 10 /* firstLine */
            iload 5 /* pageHeight */
            iadd
            istore 10 /* firstLine */
        end local 12 // java.lang.String[] thisPageLines
        end local 11 // boolean first
        20: .line 331
      StackMap locals:
      StackMap stack:
            iload 10 /* firstLine */
            aload 9 /* lines */
            arraylength
            if_icmplt 10
        end local 10 // int firstLine
        end local 9 // java.lang.String[] lines
        end local 8 // java.lang.String currentDoc
        21: .line 326
      StackMap locals:
      StackMap stack:
            aload 7 /* docIt */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 7 // java.util.Iterator docIt
        22: .line 362
            aload 1 /* todo */
            iconst_0
            aload 6 /* thisTODO */
            invokeinterface java.util.List.addAll:(ILjava/util/Collection;)Z
            pop
        23: .line 364
            getstatic jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.CONTINUE:Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
            areturn
        end local 6 // java.util.List thisTODO
        end local 5 // int pageHeight
        end local 4 // jdk.internal.jline.Terminal term
        24: .line 367
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext java.util.List java.util.List int
      StackMap stack:
            getstatic jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.FINISH:Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
            areturn
        end local 3 // boolean command
        end local 2 // java.util.List doc
        end local 1 // java.util.List todo
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   25     0           this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            0   25     1           todo  Ljava/util/List<Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;>;
            0   25     2            doc  Ljava/util/List<Ljava/lang/String;>;
            0   25     3        command  Z
            2   24     4           term  Ljdk/internal/jline/Terminal;
            3   24     5     pageHeight  I
            4   24     6       thisTODO  Ljava/util/List<Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;>;
            5   22     7          docIt  Ljava/util/Iterator<Ljava/lang/String;>;
            7   21     8     currentDoc  Ljava/lang/String;
            8   21     9          lines  [Ljava/lang/String;
            9   21    10      firstLine  I
           13   20    11          first  Z
           18   20    12  thisPageLines  [Ljava/lang/String;
    Signature: (Ljava/util/List<Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask;>;Ljava/util/List<Ljava/lang/String;>;Z)Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
    MethodParameters:
         Name  Flags
      todo     
      doc      
      command  

  private static java.lang.String commonPrefix(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.String str1
        start local 1 // java.lang.String str2
         0: .line 373
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 374
      StackMap locals: int
      StackMap stack:
            aload 0 /* str1 */
            aload 1 /* str2 */
            iconst_0
            iload 2 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         3: .line 375
            aload 1 /* str2 */
            iconst_0
            iload 2 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
         4: .line 373
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 1 /* str2 */
            invokevirtual java.lang.String.length:()I
            if_icmplt 2
        end local 2 // int i
         6: .line 379
            aload 1 /* str2 */
            areturn
        end local 1 // java.lang.String str2
        end local 0 // java.lang.String str1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  str1  Ljava/lang/String;
            0    7     1  str2  Ljava/lang/String;
            1    6     2     i  I
    MethodParameters:
      Name  Flags
      str1  
      str2  

  public boolean terminalEditorRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 640
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getTerminal:()Ljdk/internal/jline/Terminal;
            astore 1 /* terminal */
        start local 1 // jdk.internal.jline.Terminal terminal
         1: .line 641
            aload 1 /* terminal */
            instanceof jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal
            ifeq 3
         2: .line 642
            aload 1 /* terminal */
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal
            invokeinterface jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal.isRaw:()Z
            ireturn
         3: .line 643
      StackMap locals: jdk.internal.jline.Terminal
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // jdk.internal.jline.Terminal terminal
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            1    4     1  terminal  Ljdk/internal/jline/Terminal;

  public void suspend();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 648
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getTerminal:()Ljdk/internal/jline/Terminal;
            astore 1 /* terminal */
        start local 1 // jdk.internal.jline.Terminal terminal
         1: .line 649
            aload 1 /* terminal */
            instanceof jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal
            ifeq 3
         2: .line 650
            aload 1 /* terminal */
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal
            invokeinterface jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal.suspend:()V
         3: .line 651
      StackMap locals: jdk.internal.jline.Terminal
      StackMap stack:
            return
        end local 1 // jdk.internal.jline.Terminal terminal
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            1    4     1  terminal  Ljdk/internal/jline/Terminal;

  public void resume();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 655
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getTerminal:()Ljdk/internal/jline/Terminal;
            astore 1 /* terminal */
        start local 1 // jdk.internal.jline.Terminal terminal
         1: .line 656
            aload 1 /* terminal */
            instanceof jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal
            ifeq 3
         2: .line 657
            aload 1 /* terminal */
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal
            invokeinterface jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal.resume:()V
         3: .line 658
      StackMap locals: jdk.internal.jline.Terminal
      StackMap stack:
            return
        end local 1 // jdk.internal.jline.Terminal terminal
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            1    4     1  terminal  Ljdk/internal/jline/Terminal;

  public void beforeUserCode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 662
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 663
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.jshell.tool.ConsoleIOContext.inputBytes:[B
         2: .line 662
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext jdk.internal.jshell.tool.ConsoleIOContext
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 665
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
            getstatic jdk.internal.jshell.tool.StopDetectingInputStream$State.BUFFER:Ljdk/internal/jshell/tool/StopDetectingInputStream$State;
            invokevirtual jdk.internal.jshell.tool.StopDetectingInputStream.setState:(Ljdk/internal/jshell/tool/StopDetectingInputStream$State;)V
         7: .line 666
            return
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/internal/jshell/tool/ConsoleIOContext;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public void afterUserCode();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 670
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
            getstatic jdk.internal.jshell.tool.StopDetectingInputStream$State.WAIT:Ljdk/internal/jshell/tool/StopDetectingInputStream$State;
            invokevirtual jdk.internal.jshell.tool.StopDetectingInputStream.setState:(Ljdk/internal/jshell/tool/StopDetectingInputStream$State;)V
         1: .line 671
            return
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/jshell/tool/ConsoleIOContext;

  public void replaceLastHistoryEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
        start local 1 // java.lang.String source
         0: .line 675
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.history:Ljdk/internal/jline/extra/EditingHistory;
            aload 1 /* source */
            invokevirtual jdk.internal.jline.extra.EditingHistory.fullHistoryReplace:(Ljava/lang/String;)V
         1: .line 676
            return
        end local 1 // java.lang.String source
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            0    2     1  source  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      source  

  private void fixes();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 682
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.readCharacter:()I
            istore 1 /* c */
        start local 1 // int c
         1: .line 684
            iload 1 /* c */
            iconst_m1
            if_icmpne 3
         2: .line 685
            return
         3: .line 688
      StackMap locals: int
      StackMap stack:
            getstatic jdk.internal.jshell.tool.ConsoleIOContext.FIX_COMPUTERS:[Ljdk/internal/jshell/tool/ConsoleIOContext$FixComputer;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 9
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext int top int int jdk.internal.jshell.tool.ConsoleIOContext$FixComputer[]
      StackMap stack:
         4: aload 5
            iload 3
            aaload
            astore 2 /* computer */
        start local 2 // jdk.internal.jshell.tool.ConsoleIOContext$FixComputer computer
         5: .line 689
            aload 2 /* computer */
            getfield jdk.internal.jshell.tool.ConsoleIOContext$FixComputer.shortcut:C
            iload 1 /* c */
            if_icmpne 8
         6: .line 690
            aload 0 /* this */
            aload 2 /* computer */
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext.fixes:(Ljdk/internal/jshell/tool/ConsoleIOContext$FixComputer;)V
         7: .line 691
            return
        end local 2 // jdk.internal.jshell.tool.ConsoleIOContext$FixComputer computer
         8: .line 688
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         9: iload 3
            iload 4
            if_icmplt 4
        10: .line 695
            aload 0 /* this */
            iload 1 /* c */
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext.readOutRemainingEscape:(I)V
        11: .line 697
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.beep:()V
        12: .line 698
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.println:()V
        13: .line 699
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            ldc "jshell.fix.wrong.shortcut"
            invokevirtual jdk.internal.jshell.tool.JShellTool.getResourceString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual jdk.internal.jline.console.ConsoleReader.println:(Ljava/lang/CharSequence;)V
        14: .line 700
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.redrawLine:()V
        15: .line 701
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.flush:()V
        end local 1 // int c
        16: .line 702
            goto 19
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext
      StackMap stack: java.io.IOException
        17: astore 1 /* ex */
        start local 1 // java.io.IOException ex
        18: .line 703
            aload 1 /* ex */
            invokevirtual java.io.IOException.printStackTrace:()V
        end local 1 // java.io.IOException ex
        19: .line 705
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            1   16     1         c  I
            5    8     2  computer  Ljdk/internal/jshell/tool/ConsoleIOContext$FixComputer;
           18   19     1        ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     2      17  Class java.io.IOException
           3     7      17  Class java.io.IOException
           8    16      17  Class java.io.IOException

  private void readOutRemainingEscape(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
        start local 1 // int c
         0: .line 708
            iload 1 /* c */
            bipush 27
            if_icmpne 7
         1: .line 710
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getInput:()Ljava/io/InputStream;
            astore 2 /* inp */
        start local 2 // java.io.InputStream inp
         2: .line 712
            aload 2 /* inp */
            instanceof jdk.internal.jline.internal.NonBlockingInputStream
            ifeq 7
         3: .line 713
            aload 2 /* inp */
            checkcast jdk.internal.jline.internal.NonBlockingInputStream
            astore 3 /* nbis */
        start local 3 // jdk.internal.jline.internal.NonBlockingInputStream nbis
         4: .line 715
            goto 6
         5: .line 716
      StackMap locals: java.io.InputStream jdk.internal.jline.internal.NonBlockingInputStream
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.readCharacter:()I
            pop
         6: .line 715
      StackMap locals:
      StackMap stack:
            aload 3 /* nbis */
            invokevirtual jdk.internal.jline.internal.NonBlockingInputStream.isNonBlockingEnabled:()Z
            ifeq 7
            aload 3 /* nbis */
            ldc 100
            invokevirtual jdk.internal.jline.internal.NonBlockingInputStream.peek:(J)I
            ifgt 5
        end local 3 // jdk.internal.jline.internal.NonBlockingInputStream nbis
        end local 2 // java.io.InputStream inp
         7: .line 720
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int c
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            0    8     1     c  I
            2    7     2   inp  Ljava/io/InputStream;
            4    7     3  nbis  Ljdk/internal/jline/internal/NonBlockingInputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      c     

  private void fixes(jdk.internal.jshell.tool.ConsoleIOContext$FixComputer);
    descriptor: (Ljdk/internal/jshell/tool/ConsoleIOContext$FixComputer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
        start local 1 // jdk.internal.jshell.tool.ConsoleIOContext$FixComputer computer
         0: .line 725
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.prefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getCursorBuffer:()Ljdk/internal/jline/console/CursorBuffer;
            invokevirtual jdk.internal.jline.console.CursorBuffer.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* input */
        start local 2 // java.lang.String input
         1: .line 726
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.prefix:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getCursorBuffer:()Ljdk/internal/jline/console/CursorBuffer;
            getfield jdk.internal.jline.console.CursorBuffer.cursor:I
            iadd
            istore 3 /* cursor */
        start local 3 // int cursor
         2: .line 727
            aload 1 /* computer */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            aload 2 /* input */
            iload 3 /* cursor */
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext$FixComputer.compute:(Ljdk/internal/jshell/tool/JShellTool;Ljava/lang/String;I)Ljdk/internal/jshell/tool/ConsoleIOContext$FixResult;
            astore 4 /* candidates */
        start local 4 // jdk.internal.jshell.tool.ConsoleIOContext$FixResult candidates
         3: .line 730
            aload 4 /* candidates */
            getfield jdk.internal.jshell.tool.ConsoleIOContext$FixResult.error:Ljava/lang/String;
            ifnull 4
            aload 4 /* candidates */
            getfield jdk.internal.jshell.tool.ConsoleIOContext$FixResult.error:Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 4
            iconst_1
            goto 5
      StackMap locals: java.lang.String int jdk.internal.jshell.tool.ConsoleIOContext$FixResult
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* printError */
        start local 5 // boolean printError
         6: .line 731
            iload 5 /* printError */
            ifeq 8
         7: .line 732
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 4 /* candidates */
            getfield jdk.internal.jshell.tool.ConsoleIOContext$FixResult.error:Ljava/lang/String;
            invokevirtual jdk.internal.jline.console.ConsoleReader.println:(Ljava/lang/CharSequence;)V
         8: .line 734
      StackMap locals: int
      StackMap stack:
            aload 4 /* candidates */
            getfield jdk.internal.jshell.tool.ConsoleIOContext$FixResult.fixes:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 14
         9: .line 735
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.beep:()V
        10: .line 736
            iload 5 /* printError */
            ifeq 44
        11: .line 737
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.redrawLine:()V
        12: .line 738
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.flush:()V
        13: .line 740
            goto 44
      StackMap locals:
      StackMap stack:
        14: aload 4 /* candidates */
            getfield jdk.internal.jshell.tool.ConsoleIOContext$FixResult.fixes:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmpne 20
            aload 1 /* computer */
            getfield jdk.internal.jshell.tool.ConsoleIOContext$FixComputer.showMenu:Z
            ifne 20
        15: .line 741
            iload 5 /* printError */
            ifeq 18
        16: .line 742
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.redrawLine:()V
        17: .line 743
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.flush:()V
        18: .line 745
      StackMap locals:
      StackMap stack:
            aload 4 /* candidates */
            getfield jdk.internal.jshell.tool.ConsoleIOContext$FixResult.fixes:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$Fix
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokeinterface jdk.internal.jshell.tool.ConsoleIOContext$Fix.perform:(Ljdk/internal/jline/console/ConsoleReader;)V
        19: .line 746
            goto 44
        20: .line 747
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 4 /* candidates */
            getfield jdk.internal.jshell.tool.ConsoleIOContext$FixResult.fixes:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 6 /* fixes */
        start local 6 // java.util.List fixes
        21: .line 748
            aload 6 /* fixes */
            iconst_0
            new jdk.internal.jshell.tool.ConsoleIOContext$7
            dup
            aload 0 /* this */
            invokespecial jdk.internal.jshell.tool.ConsoleIOContext$7.<init>:(Ljdk/internal/jshell/tool/ConsoleIOContext;)V
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
        22: .line 760
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 7 /* char2Fix */
        start local 7 // java.util.Map char2Fix
        23: .line 761
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.println:()V
        24: .line 762
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        25: goto 30
        26: .line 763
      StackMap locals: java.util.List java.util.Map int
      StackMap stack:
            aload 6 /* fixes */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$Fix
            astore 9 /* fix */
        start local 9 // jdk.internal.jshell.tool.ConsoleIOContext$Fix fix
        27: .line 764
            aload 7 /* char2Fix */
            bipush 48
            iload 8 /* i */
            iadd
            i2c
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            aload 9 /* fix */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        28: .line 765
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iload 8 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* fixes */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$Fix
            invokeinterface jdk.internal.jshell.tool.ConsoleIOContext$Fix.displayName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.internal.jline.console.ConsoleReader.println:(Ljava/lang/CharSequence;)V
        end local 9 // jdk.internal.jshell.tool.ConsoleIOContext$Fix fix
        29: .line 762
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 8 /* i */
            aload 6 /* fixes */
            invokeinterface java.util.List.size:()I
            if_icmplt 26
        end local 8 // int i
        31: .line 767
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.repl:Ljdk/internal/jshell/tool/JShellTool;
            ldc "jshell.console.choice"
            iconst_0
            anewarray java.lang.Object
            invokevirtual jdk.internal.jshell.tool.JShellTool.messageFormat:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual jdk.internal.jline.console.ConsoleReader.print:(Ljava/lang/CharSequence;)V
        32: .line 768
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.flush:()V
        33: .line 771
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.readCharacter:()I
            istore 8 /* read */
        start local 8 // int read
        34: .line 773
            aload 7 /* char2Fix */
            iload 8 /* read */
            i2c
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$Fix
            astore 9 /* fix */
        start local 9 // jdk.internal.jshell.tool.ConsoleIOContext$Fix fix
        35: .line 775
            aload 9 /* fix */
            ifnonnull 38
        36: .line 776
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.beep:()V
        37: .line 777
            aload 6 /* fixes */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.internal.jshell.tool.ConsoleIOContext$Fix
            astore 9 /* fix */
        38: .line 780
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext$Fix
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.println:()V
        39: .line 782
            aload 9 /* fix */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokeinterface jdk.internal.jshell.tool.ConsoleIOContext$Fix.perform:(Ljdk/internal/jline/console/ConsoleReader;)V
        40: .line 784
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.flush:()V
        end local 9 // jdk.internal.jshell.tool.ConsoleIOContext$Fix fix
        end local 8 // int read
        end local 7 // java.util.Map char2Fix
        end local 6 // java.util.List fixes
        end local 5 // boolean printError
        41: .line 786
            goto 44
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext jdk.internal.jshell.tool.ConsoleIOContext$FixComputer java.lang.String int jdk.internal.jshell.tool.ConsoleIOContext$FixResult
      StackMap stack: java.io.IOException
        42: astore 5 /* ex */
        start local 5 // java.io.IOException ex
        43: .line 787
            new java.lang.IllegalStateException
            dup
            aload 5 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.IOException ex
        44: .line 789
      StackMap locals:
      StackMap stack:
            return
        end local 4 // jdk.internal.jshell.tool.ConsoleIOContext$FixResult candidates
        end local 3 // int cursor
        end local 2 // java.lang.String input
        end local 1 // jdk.internal.jshell.tool.ConsoleIOContext$FixComputer computer
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   45     0        this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            0   45     1    computer  Ljdk/internal/jshell/tool/ConsoleIOContext$FixComputer;
            1   45     2       input  Ljava/lang/String;
            2   45     3      cursor  I
            3   45     4  candidates  Ljdk/internal/jshell/tool/ConsoleIOContext$FixResult;
            6   41     5  printError  Z
           21   41     6       fixes  Ljava/util/List<Ljdk/internal/jshell/tool/ConsoleIOContext$Fix;>;
           23   41     7    char2Fix  Ljava/util/Map<Ljava/lang/Character;Ljdk/internal/jshell/tool/ConsoleIOContext$Fix;>;
           25   31     8           i  I
           27   29     9         fix  Ljdk/internal/jshell/tool/ConsoleIOContext$Fix;
           34   41     8        read  I
           35   41     9         fix  Ljdk/internal/jshell/tool/ConsoleIOContext$Fix;
           43   44     5          ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3    41      42  Class java.io.IOException
    MethodParameters:
          Name  Flags
      computer  

  public synchronized int readUserInput();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 796
            goto 19
         1: .line 797
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getHandleUserInterrupt:()Z
            istore 1 /* prevHandleUserInterrupt */
        start local 1 // boolean prevHandleUserInterrupt
         2: .line 798
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            invokevirtual jdk.internal.jline.console.ConsoleReader.getHistory:()Ljdk/internal/jline/console/history/History;
            astore 2 /* prevHistory */
        start local 2 // jdk.internal.jline.console.history.History prevHistory
         3: .line 801
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
            getstatic jdk.internal.jshell.tool.StopDetectingInputStream$State.WAIT:Ljdk/internal/jshell/tool/StopDetectingInputStream$State;
            invokevirtual jdk.internal.jshell.tool.StopDetectingInputStream.setState:(Ljdk/internal/jshell/tool/StopDetectingInputStream$State;)V
         4: .line 802
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            iconst_1
            invokevirtual jdk.internal.jline.console.ConsoleReader.setHandleUserInterrupt:(Z)V
         5: .line 803
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.userInputHistory:Ljdk/internal/jline/console/history/MemoryHistory;
            invokevirtual jdk.internal.jline.console.ConsoleReader.setHistory:(Ljdk/internal/jline/console/history/History;)V
         6: .line 804
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            ldc ""
            invokevirtual jdk.internal.jline.console.ConsoleReader.readLine:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "line.separator"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.getBytes:()[B
            putfield jdk.internal.jshell.tool.ConsoleIOContext.inputBytes:[B
         7: .line 805
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.jshell.tool.ConsoleIOContext.inputBytesPointer:I
         8: .line 806
            goto 16
      StackMap locals: jdk.internal.jshell.tool.ConsoleIOContext int jdk.internal.jline.console.history.History
      StackMap stack: jdk.internal.jline.console.UserInterruptException
         9: pop
        10: .line 807
            new java.io.InterruptedIOException
            dup
            invokespecial java.io.InterruptedIOException.<init>:()V
            athrow
        11: .line 808
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
        12: .line 809
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 2 /* prevHistory */
            invokevirtual jdk.internal.jline.console.ConsoleReader.setHistory:(Ljdk/internal/jline/console/history/History;)V
        13: .line 810
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            iload 1 /* prevHandleUserInterrupt */
            invokevirtual jdk.internal.jline.console.ConsoleReader.setHandleUserInterrupt:(Z)V
        14: .line 811
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
            getstatic jdk.internal.jshell.tool.StopDetectingInputStream$State.BUFFER:Ljdk/internal/jshell/tool/StopDetectingInputStream$State;
            invokevirtual jdk.internal.jshell.tool.StopDetectingInputStream.setState:(Ljdk/internal/jshell/tool/StopDetectingInputStream$State;)V
        15: .line 812
            aload 3
            athrow
        16: .line 809
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            aload 2 /* prevHistory */
            invokevirtual jdk.internal.jline.console.ConsoleReader.setHistory:(Ljdk/internal/jline/console/history/History;)V
        17: .line 810
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.in:Ljdk/internal/jline/console/ConsoleReader;
            iload 1 /* prevHandleUserInterrupt */
            invokevirtual jdk.internal.jline.console.ConsoleReader.setHandleUserInterrupt:(Z)V
        18: .line 811
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.input:Ljdk/internal/jshell/tool/StopDetectingInputStream;
            getstatic jdk.internal.jshell.tool.StopDetectingInputStream$State.BUFFER:Ljdk/internal/jshell/tool/StopDetectingInputStream$State;
            invokevirtual jdk.internal.jshell.tool.StopDetectingInputStream.setState:(Ljdk/internal/jshell/tool/StopDetectingInputStream$State;)V
        end local 2 // jdk.internal.jline.console.history.History prevHistory
        end local 1 // boolean prevHandleUserInterrupt
        19: .line 796
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.inputBytes:[B
            ifnull 1
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.inputBytes:[B
            arraylength
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.inputBytesPointer:I
            if_icmple 1
        20: .line 814
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.ConsoleIOContext.inputBytes:[B
            aload 0 /* this */
            dup
            getfield jdk.internal.jshell.tool.ConsoleIOContext.inputBytesPointer:I
            dup_x1
            iconst_1
            iadd
            putfield jdk.internal.jshell.tool.ConsoleIOContext.inputBytesPointer:I
            baload
            ireturn
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   21     0                     this  Ljdk/internal/jshell/tool/ConsoleIOContext;
            2   19     1  prevHandleUserInterrupt  Z
            3   19     2              prevHistory  Ljdk/internal/jline/console/history/History;
      Exception table:
        from    to  target  type
           3     8       9  Class jdk.internal.jline.console.UserInterruptException
           3    11      11  any
    Exceptions:
      throws java.io.IOException

  static java.lang.String access$0();
    descriptor: ()Ljava/lang/String;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 196
            getstatic jdk.internal.jshell.tool.ConsoleIOContext.LINE_SEPARATOR:Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.lang.String access$1(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 372
            aload 0
            aload 1
            invokestatic jdk.internal.jshell.tool.ConsoleIOContext.commonPrefix:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$jdk$internal$jshell$tool$ConsoleIOContext$CompletionTask$Result();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 69
            getstatic jdk.internal.jshell.tool.ConsoleIOContext.$SWITCH_TABLE$jdk$internal$jshell$tool$ConsoleIOContext$CompletionTask$Result:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.values:()[Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.CONTINUE:Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.FINISH:Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.NO_DATA:Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.SKIP:Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.SKIP_NOREPAINT:Ljdk/internal/jshell/tool/ConsoleIOContext$CompletionTask$Result;
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic jdk.internal.jshell.tool.ConsoleIOContext.$SWITCH_TABLE$jdk$internal$jshell$tool$ConsoleIOContext$CompletionTask$Result:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError

  private static void lambda$0(jdk.internal.jshell.tool.JShellTool);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 83
            aload 0
            invokevirtual jdk.internal.jshell.tool.JShellTool.stop:()V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$1(jdk.internal.jshell.tool.JShellTool, java.lang.Exception);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool;Ljava/lang/Exception;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=2, args_size=2
        start local 1 // java.lang.Exception ex
         0: .line 83
            aload 0
            ldc "Error on input: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* ex */
            aastore
            invokevirtual jdk.internal.jshell.tool.JShellTool.hard:(Ljava/lang/String;[Ljava/lang/Object;)V
            return
        end local 1 // java.lang.Exception ex
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    ex  Ljava/lang/Exception;

  private static boolean lambda$2(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String key
         0: .line 106
            aload 0 /* key */
            ldc "HISTORY_LINE_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   key  Ljava/lang/String;

  private static java.lang.String lambda$3(jdk.internal.jshell.tool.JShellTool, java.lang.String);
    descriptor: (Ljdk/internal/jshell/tool/JShellTool;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String key
         0: .line 108
            aload 0
            getfield jdk.internal.jshell.tool.JShellTool.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
            aload 1 /* key */
            invokeinterface jdk.internal.jshell.tool.PersistentStorage.get:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   key  Ljava/lang/String;

  private void lambda$4();
    descriptor: ()V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
         0: .line 117
            aload 0 /* this */
            invokevirtual jdk.internal.jshell.tool.ConsoleIOContext.fixes:()V
            return
        end local 0 // jdk.internal.jshell.tool.ConsoleIOContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/ConsoleIOContext;

  private static java.lang.Boolean lambda$7(jdk.jshell.SourceCodeAnalysis$Suggestion);
    descriptor: (Ljdk/jshell/SourceCodeAnalysis$Suggestion;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jshell.SourceCodeAnalysis$Suggestion s
         0: .line 229
            aload 0 /* s */
            invokeinterface jdk.jshell.SourceCodeAnalysis$Suggestion.matchesType:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // jdk.jshell.SourceCodeAnalysis$Suggestion s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljdk/jshell/SourceCodeAnalysis$Suggestion;
}
SourceFile: "ConsoleIOContext.java"
NestMembers:
  jdk.internal.jshell.tool.ConsoleIOContext$1  jdk.internal.jshell.tool.ConsoleIOContext$1$1  jdk.internal.jshell.tool.ConsoleIOContext$1$2  jdk.internal.jshell.tool.ConsoleIOContext$2  jdk.internal.jshell.tool.ConsoleIOContext$2$1  jdk.internal.jshell.tool.ConsoleIOContext$3  jdk.internal.jshell.tool.ConsoleIOContext$4  jdk.internal.jshell.tool.ConsoleIOContext$5  jdk.internal.jshell.tool.ConsoleIOContext$6  jdk.internal.jshell.tool.ConsoleIOContext$7  jdk.internal.jshell.tool.ConsoleIOContext$AllSuggestionsCompletionTask  jdk.internal.jshell.tool.ConsoleIOContext$CheckCompletionKeyMap  jdk.internal.jshell.tool.ConsoleIOContext$CommandFullDocumentationTask  jdk.internal.jshell.tool.ConsoleIOContext$CommandSynopsisTask  jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask  jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result  jdk.internal.jshell.tool.ConsoleIOContext$ExpressionJavadocTask  jdk.internal.jshell.tool.ConsoleIOContext$ExpressionSignaturesTask  jdk.internal.jshell.tool.ConsoleIOContext$Fix  jdk.internal.jshell.tool.ConsoleIOContext$FixComputer  jdk.internal.jshell.tool.ConsoleIOContext$FixResult  jdk.internal.jshell.tool.ConsoleIOContext$JShellUnixTerminal  jdk.internal.jshell.tool.ConsoleIOContext$JShellWindowsTerminal  jdk.internal.jshell.tool.ConsoleIOContext$NoSuchCommandCompletionTask  jdk.internal.jshell.tool.ConsoleIOContext$NoopCompletionTask  jdk.internal.jshell.tool.ConsoleIOContext$OrdinaryCompletionTask  jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal  jdk.internal.jshell.tool.ConsoleIOContext$TestTerminal
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  jdk.internal.jshell.tool.ConsoleIOContext$1
  jdk.internal.jshell.tool.ConsoleIOContext$2
  jdk.internal.jshell.tool.ConsoleIOContext$3
  jdk.internal.jshell.tool.ConsoleIOContext$4
  jdk.internal.jshell.tool.ConsoleIOContext$5
  jdk.internal.jshell.tool.ConsoleIOContext$6
  jdk.internal.jshell.tool.ConsoleIOContext$7
  private final AllSuggestionsCompletionTask = jdk.internal.jshell.tool.ConsoleIOContext$AllSuggestionsCompletionTask of jdk.internal.jshell.tool.ConsoleIOContext
  private final CheckCompletionKeyMap = jdk.internal.jshell.tool.ConsoleIOContext$CheckCompletionKeyMap of jdk.internal.jshell.tool.ConsoleIOContext
  private final CommandFullDocumentationTask = jdk.internal.jshell.tool.ConsoleIOContext$CommandFullDocumentationTask of jdk.internal.jshell.tool.ConsoleIOContext
  private final CommandSynopsisTask = jdk.internal.jshell.tool.ConsoleIOContext$CommandSynopsisTask of jdk.internal.jshell.tool.ConsoleIOContext
  private abstract CompletionTask = jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask of jdk.internal.jshell.tool.ConsoleIOContext
  public final Result = jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask$Result of jdk.internal.jshell.tool.ConsoleIOContext$CompletionTask
  private final ExpressionJavadocTask = jdk.internal.jshell.tool.ConsoleIOContext$ExpressionJavadocTask of jdk.internal.jshell.tool.ConsoleIOContext
  private final ExpressionSignaturesTask = jdk.internal.jshell.tool.ConsoleIOContext$ExpressionSignaturesTask of jdk.internal.jshell.tool.ConsoleIOContext
  public abstract Fix = jdk.internal.jshell.tool.ConsoleIOContext$Fix of jdk.internal.jshell.tool.ConsoleIOContext
  public abstract FixComputer = jdk.internal.jshell.tool.ConsoleIOContext$FixComputer of jdk.internal.jshell.tool.ConsoleIOContext
  public FixResult = jdk.internal.jshell.tool.ConsoleIOContext$FixResult of jdk.internal.jshell.tool.ConsoleIOContext
  private final JShellUnixTerminal = jdk.internal.jshell.tool.ConsoleIOContext$JShellUnixTerminal of jdk.internal.jshell.tool.ConsoleIOContext
  private final JShellWindowsTerminal = jdk.internal.jshell.tool.ConsoleIOContext$JShellWindowsTerminal of jdk.internal.jshell.tool.ConsoleIOContext
  private final NoSuchCommandCompletionTask = jdk.internal.jshell.tool.ConsoleIOContext$NoSuchCommandCompletionTask of jdk.internal.jshell.tool.ConsoleIOContext
  private final NoopCompletionTask = jdk.internal.jshell.tool.ConsoleIOContext$NoopCompletionTask of jdk.internal.jshell.tool.ConsoleIOContext
  private final OrdinaryCompletionTask = jdk.internal.jshell.tool.ConsoleIOContext$OrdinaryCompletionTask of jdk.internal.jshell.tool.ConsoleIOContext
  private abstract SuspendableTerminal = jdk.internal.jshell.tool.ConsoleIOContext$SuspendableTerminal of jdk.internal.jshell.tool.ConsoleIOContext
  private final TestTerminal = jdk.internal.jshell.tool.ConsoleIOContext$TestTerminal of jdk.internal.jshell.tool.ConsoleIOContext
  InputInterruptedException = jdk.internal.jshell.tool.IOContext$InputInterruptedException of jdk.internal.jshell.tool.IOContext
  public final State = jdk.internal.jshell.tool.StopDetectingInputStream$State of jdk.internal.jshell.tool.StopDetectingInputStream
  public abstract Handler = jdk.internal.misc.Signal$Handler of jdk.internal.misc.Signal
  public abstract Documentation = jdk.jshell.SourceCodeAnalysis$Documentation of jdk.jshell.SourceCodeAnalysis
  public abstract Suggestion = jdk.jshell.SourceCodeAnalysis$Suggestion of jdk.jshell.SourceCodeAnalysis