public class jdk.internal.org.jline.utils.InputStreamReader extends java.io.Reader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.org.jline.utils.InputStreamReader
  super_class: java.io.Reader
{
  private java.io.InputStream in;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

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

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

  java.nio.charset.CharsetDecoder decoder;
    descriptor: Ljava/nio/charset/CharsetDecoder;
    flags: (0x0000) 

  java.nio.ByteBuffer bytes;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0000) 

  char pending;
    descriptor: C
    flags: (0x0000) 

  public void <init>(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
        start local 1 // java.io.InputStream in
         0: .line 67
            aload 0 /* this */
            aload 1 /* in */
            invokespecial java.io.Reader.<init>:(Ljava/lang/Object;)V
         1: .line 49
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.org.jline.utils.InputStreamReader.endOfInput:Z
         2: .line 53
            aload 0 /* this */
            iconst_4
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
         3: .line 55
            aload 0 /* this */
            ldc 65535
            putfield jdk.internal.org.jline.utils.InputStreamReader.pending:C
         4: .line 68
            aload 0 /* this */
            aload 1 /* in */
            putfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
         5: .line 69
            aload 0 /* this */
            invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
         6: .line 70
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
         7: .line 69
            invokevirtual java.nio.charset.CharsetDecoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
         8: .line 71
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
         9: .line 70
            invokevirtual java.nio.charset.CharsetDecoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        10: .line 69
            putfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
        11: .line 72
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        12: .line 73
            return
        end local 1 // java.io.InputStream in
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Ljdk/internal/org/jline/utils/InputStreamReader;
            0   13     1    in  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      in    

  public void <init>(java.io.InputStream, java.lang.String);
    descriptor: (Ljava/io/InputStream;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
        start local 1 // java.io.InputStream in
        start local 2 // java.lang.String enc
         0: .line 92
            aload 0 /* this */
            aload 1 /* in */
            invokespecial java.io.Reader.<init>:(Ljava/lang/Object;)V
         1: .line 49
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.org.jline.utils.InputStreamReader.endOfInput:Z
         2: .line 53
            aload 0 /* this */
            iconst_4
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
         3: .line 55
            aload 0 /* this */
            ldc 65535
            putfield jdk.internal.org.jline.utils.InputStreamReader.pending:C
         4: .line 93
            aload 2 /* enc */
            ifnonnull 6
         5: .line 94
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         6: .line 96
      StackMap locals: jdk.internal.org.jline.utils.InputStreamReader java.io.InputStream java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* in */
            putfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
         7: .line 98
            aload 0 /* this */
            aload 2 /* enc */
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
         8: .line 99
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
         9: .line 98
            invokevirtual java.nio.charset.CharsetDecoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        10: .line 100
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
        11: .line 99
            invokevirtual java.nio.charset.CharsetDecoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        12: .line 98
            putfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
        13: .line 101
            goto 17
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        14: astore 3 /* e */
        start local 3 // java.lang.IllegalArgumentException e
        15: .line 103
            new java.io.UnsupportedEncodingException
            dup
            aload 2 /* enc */
            invokespecial java.io.UnsupportedEncodingException.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.io.UnsupportedEncodingException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
        16: .line 102
            checkcast java.io.UnsupportedEncodingException
            athrow
        end local 3 // java.lang.IllegalArgumentException e
        17: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        18: .line 106
            return
        end local 2 // java.lang.String enc
        end local 1 // java.io.InputStream in
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Ljdk/internal/org/jline/utils/InputStreamReader;
            0   19     1    in  Ljava/io/InputStream;
            0   19     2   enc  Ljava/lang/String;
           15   17     3     e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           7    13      14  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.io.UnsupportedEncodingException
    MethodParameters:
      Name  Flags
      in    
      enc   final

  public void <init>(java.io.InputStream, java.nio.charset.CharsetDecoder);
    descriptor: (Ljava/io/InputStream;Ljava/nio/charset/CharsetDecoder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
        start local 1 // java.io.InputStream in
        start local 2 // java.nio.charset.CharsetDecoder dec
         0: .line 118
            aload 0 /* this */
            aload 1 /* in */
            invokespecial java.io.Reader.<init>:(Ljava/lang/Object;)V
         1: .line 49
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.org.jline.utils.InputStreamReader.endOfInput:Z
         2: .line 53
            aload 0 /* this */
            iconst_4
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
         3: .line 55
            aload 0 /* this */
            ldc 65535
            putfield jdk.internal.org.jline.utils.InputStreamReader.pending:C
         4: .line 119
            aload 2 /* dec */
            invokevirtual java.nio.charset.CharsetDecoder.averageCharsPerByte:()F
            pop
         5: .line 120
            aload 0 /* this */
            aload 1 /* in */
            putfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
         6: .line 121
            aload 0 /* this */
            aload 2 /* dec */
            putfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
         7: .line 122
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
         8: .line 123
            return
        end local 2 // java.nio.charset.CharsetDecoder dec
        end local 1 // java.io.InputStream in
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljdk/internal/org/jline/utils/InputStreamReader;
            0    9     1    in  Ljava/io/InputStream;
            0    9     2   dec  Ljava/nio/charset/CharsetDecoder;
    MethodParameters:
      Name  Flags
      in    
      dec   

  public void <init>(java.io.InputStream, java.nio.charset.Charset);
    descriptor: (Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
        start local 1 // java.io.InputStream in
        start local 2 // java.nio.charset.Charset charset
         0: .line 135
            aload 0 /* this */
            aload 1 /* in */
            invokespecial java.io.Reader.<init>:(Ljava/lang/Object;)V
         1: .line 49
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.org.jline.utils.InputStreamReader.endOfInput:Z
         2: .line 53
            aload 0 /* this */
            iconst_4
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
         3: .line 55
            aload 0 /* this */
            ldc 65535
            putfield jdk.internal.org.jline.utils.InputStreamReader.pending:C
         4: .line 136
            aload 0 /* this */
            aload 1 /* in */
            putfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
         5: .line 137
            aload 0 /* this */
            aload 2 /* charset */
            invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
         6: .line 138
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
         7: .line 137
            invokevirtual java.nio.charset.CharsetDecoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
         8: .line 139
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
         9: .line 138
            invokevirtual java.nio.charset.CharsetDecoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        10: .line 137
            putfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
        11: .line 140
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        12: .line 141
            return
        end local 2 // java.nio.charset.Charset charset
        end local 1 // java.io.InputStream in
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Ljdk/internal/org/jline/utils/InputStreamReader;
            0   13     1       in  Ljava/io/InputStream;
            0   13     2  charset  Ljava/nio/charset/Charset;
    MethodParameters:
         Name  Flags
      in       
      charset  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
         0: .line 152
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 153
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
         2: .line 154
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
            ifnull 5
         3: .line 155
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
         4: .line 156
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
         5: .line 152
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 159
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljdk/internal/org/jline/utils/InputStreamReader;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Exceptions:
      throws java.io.IOException

  public java.lang.String getEncoding();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
         0: .line 169
            aload 0 /* this */
            invokevirtual jdk.internal.org.jline.utils.InputStreamReader.isOpen:()Z
            ifne 2
         1: .line 170
            aconst_null
            areturn
         2: .line 172
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
            invokevirtual java.nio.charset.CharsetDecoder.charset:()Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            areturn
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/org/jline/utils/InputStreamReader;

  public int read();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
         0: .line 189
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 190
            aload 0 /* this */
            invokevirtual jdk.internal.org.jline.utils.InputStreamReader.isOpen:()Z
            ifne 3
         2: .line 191
            new jdk.internal.org.jline.utils.ClosedException
            dup
            ldc "InputStreamReader is closed."
            invokespecial jdk.internal.org.jline.utils.ClosedException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 194
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.pending:C
            ldc 65535
            if_icmpeq 8
         4: .line 195
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.pending:C
            istore 2 /* c */
        start local 2 // char c
         5: .line 196
            aload 0 /* this */
            ldc 65535
            putfield jdk.internal.org.jline.utils.InputStreamReader.pending:C
         6: .line 197
            iload 2 /* c */
            aload 1
            monitorexit
         7: ireturn
        end local 2 // char c
         8: .line 199
      StackMap locals:
      StackMap stack:
            iconst_2
            newarray 5
            astore 2 /* buf */
        start local 2 // char[] buf
         9: .line 200
            aload 0 /* this */
            aload 2 /* buf */
            iconst_0
            iconst_2
            invokevirtual jdk.internal.org.jline.utils.InputStreamReader.read:([CII)I
            istore 3 /* nb */
        start local 3 // int nb
        10: .line 201
            iload 3 /* nb */
            iconst_2
            if_icmpne 12
        11: .line 202
            aload 0 /* this */
            aload 2 /* buf */
            iconst_1
            caload
            putfield jdk.internal.org.jline.utils.InputStreamReader.pending:C
        12: .line 204
      StackMap locals: char[] int
      StackMap stack:
            iload 3 /* nb */
            ifle 15
        13: .line 205
            aload 2 /* buf */
            iconst_0
            caload
            aload 1
            monitorexit
        14: ireturn
        15: .line 207
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        16: iconst_m1
            ireturn
        end local 3 // int nb
        end local 2 // char[] buf
        17: .line 189
      StackMap locals: jdk.internal.org.jline.utils.InputStreamReader java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        18: athrow
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Ljdk/internal/org/jline/utils/InputStreamReader;
            5    8     2     c  C
            9   17     2   buf  [C
           10   17     3    nb  I
      Exception table:
        from    to  target  type
           1     7      17  any
           8    14      17  any
          15    16      17  any
          17    18      17  any
    Exceptions:
      throws java.io.IOException

  public int read(char[], int, int);
    descriptor: ([CII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
        start local 1 // char[] buf
        start local 2 // int offset
        start local 3 // int length
         0: .line 238
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.lock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 239
            aload 0 /* this */
            invokevirtual jdk.internal.org.jline.utils.InputStreamReader.isOpen:()Z
            ifne 3
         2: .line 240
            new java.io.IOException
            dup
            ldc "InputStreamReader is closed."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 242
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 2 /* offset */
            iflt 4
            iload 2 /* offset */
            aload 1 /* buf */
            arraylength
            iload 3 /* length */
            isub
            if_icmpgt 4
            iload 3 /* length */
            ifge 5
         4: .line 243
      StackMap locals:
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         5: .line 245
      StackMap locals:
      StackMap stack:
            iload 3 /* length */
            ifne 8
         6: .line 246
            aload 4
            monitorexit
         7: iconst_0
            ireturn
         8: .line 249
      StackMap locals:
      StackMap stack:
            aload 1 /* buf */
            iload 2 /* offset */
            iload 3 /* length */
            invokestatic java.nio.CharBuffer.wrap:([CII)Ljava/nio/CharBuffer;
            astore 5 /* out */
        start local 5 // java.nio.CharBuffer out
         9: .line 250
            getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
            astore 6 /* result */
        start local 6 // java.nio.charset.CoderResult result
        10: .line 254
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 11
            iconst_0
            goto 12
      StackMap locals: java.nio.CharBuffer java.nio.charset.CoderResult
      StackMap stack:
        11: iconst_1
      StackMap locals:
      StackMap stack: int
        12: istore 7 /* needInput */
        start local 7 // boolean needInput
        13: .line 256
            goto 34
        14: .line 258
      StackMap locals: int
      StackMap stack:
            iload 7 /* needInput */
            ifeq 27
        15: .line 260
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.available:()I
            ifne 19
        16: .line 261
            aload 5 /* out */
            invokevirtual java.nio.CharBuffer.position:()I
            iload 2 /* offset */
            if_icmple 19
        17: .line 263
            goto 35
        18: .line 265
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        19: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iadd
            istore 8 /* off */
        start local 8 // int off
        20: .line 270
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.array:()[B
            iload 8 /* off */
            iconst_1
            invokevirtual java.io.InputStream.read:([BII)I
            istore 9 /* was_red */
        start local 9 // int was_red
        21: .line 272
            iload 9 /* was_red */
            iconst_m1
            if_icmpne 24
        22: .line 273
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.org.jline.utils.InputStreamReader.endOfInput:Z
        23: .line 274
            goto 35
        24: .line 275
      StackMap locals: int int
      StackMap stack:
            iload 9 /* was_red */
            ifne 26
        25: .line 276
            goto 35
        26: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            iload 9 /* was_red */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        end local 9 // int was_red
        end local 8 // int off
        27: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            aload 5 /* out */
            iconst_0
            invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;
            astore 6 /* result */
        28: .line 284
            aload 6 /* result */
            invokevirtual java.nio.charset.CoderResult.isUnderflow:()Z
            ifeq 35
        29: .line 286
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            if_icmpne 33
        30: .line 287
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
            pop
        31: .line 288
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        32: .line 289
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        33: .line 291
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* needInput */
        34: .line 256
      StackMap locals:
      StackMap stack:
            aload 5 /* out */
            invokevirtual java.nio.CharBuffer.position:()I
            iload 2 /* offset */
            if_icmpeq 14
        35: .line 297
      StackMap locals:
      StackMap stack:
            aload 6 /* result */
            getstatic java.nio.charset.CoderResult.UNDERFLOW:Ljava/nio/charset/CoderResult;
            if_acmpne 39
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.endOfInput:Z
            ifeq 39
        36: .line 298
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            aload 5 /* out */
            iconst_1
            invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;
            astore 6 /* result */
        37: .line 299
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
            aload 5 /* out */
            invokevirtual java.nio.charset.CharsetDecoder.flush:(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;
            pop
        38: .line 300
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.decoder:Ljava/nio/charset/CharsetDecoder;
            invokevirtual java.nio.charset.CharsetDecoder.reset:()Ljava/nio/charset/CharsetDecoder;
            pop
        39: .line 302
      StackMap locals:
      StackMap stack:
            aload 6 /* result */
            invokevirtual java.nio.charset.CoderResult.isMalformed:()Z
            ifeq 41
        40: .line 303
            new java.nio.charset.MalformedInputException
            dup
            aload 6 /* result */
            invokevirtual java.nio.charset.CoderResult.length:()I
            invokespecial java.nio.charset.MalformedInputException.<init>:(I)V
            athrow
        41: .line 304
      StackMap locals:
      StackMap stack:
            aload 6 /* result */
            invokevirtual java.nio.charset.CoderResult.isUnmappable:()Z
            ifeq 43
        42: .line 305
            new java.nio.charset.UnmappableCharacterException
            dup
            aload 6 /* result */
            invokevirtual java.nio.charset.CoderResult.length:()I
            invokespecial java.nio.charset.UnmappableCharacterException.<init>:(I)V
            athrow
        43: .line 308
      StackMap locals:
      StackMap stack:
            aload 5 /* out */
            invokevirtual java.nio.CharBuffer.position:()I
            iload 2 /* offset */
            isub
            ifne 44
            iconst_m1
            goto 45
      StackMap locals:
      StackMap stack:
        44: aload 5 /* out */
            invokevirtual java.nio.CharBuffer.position:()I
            iload 2 /* offset */
            isub
      StackMap locals:
      StackMap stack: int
        45: aload 4
            monitorexit
        46: ireturn
        end local 7 // boolean needInput
        end local 6 // java.nio.charset.CoderResult result
        end local 5 // java.nio.CharBuffer out
        47: .line 238
      StackMap locals: jdk.internal.org.jline.utils.InputStreamReader char[] int int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        48: athrow
        end local 3 // int length
        end local 2 // int offset
        end local 1 // char[] buf
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   49     0       this  Ljdk/internal/org/jline/utils/InputStreamReader;
            0   49     1        buf  [C
            0   49     2     offset  I
            0   49     3     length  I
            9   47     5        out  Ljava/nio/CharBuffer;
           10   47     6     result  Ljava/nio/charset/CoderResult;
           13   47     7  needInput  Z
           20   27     8        off  I
           21   27     9    was_red  I
      Exception table:
        from    to  target  type
          15    17      18  Class java.io.IOException
           1     7      47  any
           8    46      47  any
          47    48      47  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      buf     
      offset  
      length  

  private boolean isOpen();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
         0: .line 317
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/org/jline/utils/InputStreamReader;

  public boolean ready();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.internal.org.jline.utils.InputStreamReader this
         0: .line 335
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 336
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
            ifnonnull 3
         2: .line 337
            new java.io.IOException
            dup
            ldc "InputStreamReader is closed."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 340
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.bytes:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 4
            aload 0 /* this */
            getfield jdk.internal.org.jline.utils.InputStreamReader.in:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.available:()I
            ifgt 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: aload 1
            monitorexit
         6: ireturn
         7: .line 341
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         8: .line 342
            aload 1
            monitorexit
         9: iconst_0
            ireturn
        10: .line 335
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        11: athrow
        end local 0 // jdk.internal.org.jline.utils.InputStreamReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljdk/internal/org/jline/utils/InputStreamReader;
      Exception table:
        from    to  target  type
           3     5       7  Class java.io.IOException
           1     6      10  any
           7     9      10  any
          10    11      10  any
    Exceptions:
      throws java.io.IOException
}
SourceFile: "InputStreamReader.java"