class com.jcraft.jsch.Channel$MyPipedInputStream extends java.io.PipedInputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.jcraft.jsch.Channel$MyPipedInputStream
  super_class: java.io.PipedInputStream
{
  private int BUFFER_SIZE;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

  final com.jcraft.jsch.Channel this$0;
    descriptor: Lcom/jcraft/jsch/Channel;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.jcraft.jsch.Channel);
    descriptor: (Lcom/jcraft/jsch/Channel;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
         0: .line 331
            aload 0 /* this */
            aload 1
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.this$0:Lcom/jcraft/jsch/Channel;
            aload 0 /* this */
            invokespecial java.io.PipedInputStream.<init>:()V
         1: .line 329
            aload 0 /* this */
            sipush 1024
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
         2: .line 330
            aload 0 /* this */
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.max_buffer_size:I
         3: .line 331
            return
        end local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/jcraft/jsch/Channel$MyPipedInputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      this$0  final

  void <init>(com.jcraft.jsch.Channel, int);
    descriptor: (Lcom/jcraft/jsch/Channel;I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
        start local 2 // int size
         0: .line 332
            aload 0 /* this */
            aload 1
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.this$0:Lcom/jcraft/jsch/Channel;
         1: .line 333
            aload 0 /* this */
            invokespecial java.io.PipedInputStream.<init>:()V
         2: .line 329
            aload 0 /* this */
            sipush 1024
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
         3: .line 330
            aload 0 /* this */
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.max_buffer_size:I
         4: .line 334
            aload 0 /* this */
            iload 2 /* size */
            newarray 8
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
         5: .line 335
            aload 0 /* this */
            iload 2 /* size */
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
         6: .line 336
            aload 0 /* this */
            iload 2 /* size */
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.max_buffer_size:I
         7: .line 337
            return
        end local 2 // int size
        end local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/jcraft/jsch/Channel$MyPipedInputStream;
            0    8     2  size  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      this$0  final
      size    

  void <init>(com.jcraft.jsch.Channel, int, int);
    descriptor: (Lcom/jcraft/jsch/Channel;II)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
        start local 2 // int size
        start local 3 // int max_buffer_size
         0: .line 339
            aload 0 /* this */
            aload 1
            iload 2 /* size */
            invokespecial com.jcraft.jsch.Channel$MyPipedInputStream.<init>:(Lcom/jcraft/jsch/Channel;I)V
         1: .line 340
            aload 0 /* this */
            iload 3 /* max_buffer_size */
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.max_buffer_size:I
         2: .line 341
            return
        end local 3 // int max_buffer_size
        end local 2 // int size
        end local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lcom/jcraft/jsch/Channel$MyPipedInputStream;
            0    3     2             size  I
            0    3     3  max_buffer_size  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                 Name  Flags
      this$0           final
      size             
      max_buffer_size  

  void <init>(com.jcraft.jsch.Channel, java.io.PipedOutputStream);
    descriptor: (Lcom/jcraft/jsch/Channel;Ljava/io/PipedOutputStream;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
        start local 2 // java.io.PipedOutputStream out
         0: .line 342
            aload 0 /* this */
            aload 1
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.this$0:Lcom/jcraft/jsch/Channel;
            aload 0 /* this */
            aload 2 /* out */
            invokespecial java.io.PipedInputStream.<init>:(Ljava/io/PipedOutputStream;)V
         1: .line 329
            aload 0 /* this */
            sipush 1024
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
         2: .line 330
            aload 0 /* this */
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.max_buffer_size:I
         3: .line 342
            return
        end local 2 // java.io.PipedOutputStream out
        end local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/jcraft/jsch/Channel$MyPipedInputStream;
            0    4     2   out  Ljava/io/PipedOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      this$0  final
      out     

  void <init>(com.jcraft.jsch.Channel, java.io.PipedOutputStream, int);
    descriptor: (Lcom/jcraft/jsch/Channel;Ljava/io/PipedOutputStream;I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
        start local 2 // java.io.PipedOutputStream out
        start local 3 // int size
         0: .line 343
            aload 0 /* this */
            aload 1
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.this$0:Lcom/jcraft/jsch/Channel;
         1: .line 344
            aload 0 /* this */
            aload 2 /* out */
            invokespecial java.io.PipedInputStream.<init>:(Ljava/io/PipedOutputStream;)V
         2: .line 329
            aload 0 /* this */
            sipush 1024
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
         3: .line 330
            aload 0 /* this */
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.max_buffer_size:I
         4: .line 345
            aload 0 /* this */
            iload 3 /* size */
            newarray 8
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
         5: .line 346
            aload 0 /* this */
            iload 3 /* size */
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
         6: .line 347
            return
        end local 3 // int size
        end local 2 // java.io.PipedOutputStream out
        end local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/jcraft/jsch/Channel$MyPipedInputStream;
            0    7     2   out  Ljava/io/PipedOutputStream;
            0    7     3  size  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      this$0  final
      out     
      size    

  public synchronized void updateReadSide();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
         0: .line 356
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.Channel$MyPipedInputStream.available:()I
            ifeq 2
         1: .line 357
            return
         2: .line 359
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
         3: .line 360
            aload 0 /* this */
            iconst_0
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
         4: .line 361
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            aload 0 /* this */
            dup
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            dup_x1
            iconst_1
            iadd
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            iconst_0
            bastore
         5: .line 362
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.Channel$MyPipedInputStream.read:()I
            pop
         6: .line 363
            return
        end local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/jcraft/jsch/Channel$MyPipedInputStream;
    Exceptions:
      throws java.io.IOException

  private int freeSpace();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
         0: .line 366
            iconst_0
            istore 1 /* size */
        start local 1 // int size
         1: .line 367
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            if_icmpge 4
         2: .line 368
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            isub
            istore 1 /* size */
         3: .line 369
            goto 7
         4: .line 370
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
            if_icmpge 7
         5: .line 371
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            iconst_m1
            if_icmpne 6
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            istore 1 /* size */
            goto 7
         6: .line 372
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            isub
            istore 1 /* size */
         7: .line 374
      StackMap locals:
      StackMap stack:
            iload 1 /* size */
            ireturn
        end local 1 // int size
        end local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/jcraft/jsch/Channel$MyPipedInputStream;
            1    8     1  size  I

  synchronized void checkSpace(int);
    descriptor: (I)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
        start local 1 // int len
         0: .line 377
            aload 0 /* this */
            invokevirtual com.jcraft.jsch.Channel$MyPipedInputStream.freeSpace:()I
            istore 2 /* size */
        start local 2 // int size
         1: .line 378
            iload 2 /* size */
            iload 1 /* len */
            if_icmpge 28
         2: .line 379
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            iload 2 /* size */
            isub
            istore 3 /* datasize */
        start local 3 // int datasize
         3: .line 380
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            istore 4 /* foo */
        start local 4 // int foo
         4: .line 381
            goto 6
         5: .line 382
      StackMap locals: int int int
      StackMap stack:
            iload 4 /* foo */
            iconst_2
            imul
            istore 4 /* foo */
         6: .line 381
      StackMap locals:
      StackMap stack:
            iload 4 /* foo */
            iload 3 /* datasize */
            isub
            iload 1 /* len */
            if_icmplt 5
         7: .line 385
            iload 4 /* foo */
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.max_buffer_size:I
            if_icmple 9
         8: .line 386
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.max_buffer_size:I
            istore 4 /* foo */
         9: .line 388
      StackMap locals:
      StackMap stack:
            iload 4 /* foo */
            iload 3 /* datasize */
            isub
            iload 1 /* len */
            if_icmpge 10
            return
        10: .line 390
      StackMap locals:
      StackMap stack:
            iload 4 /* foo */
            newarray 8
            astore 5 /* tmp */
        start local 5 // byte[] tmp
        11: .line 391
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            if_icmpge 14
        12: .line 392
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            iconst_0
            aload 5 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        13: .line 393
            goto 26
        14: .line 394
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
            if_icmpge 23
        15: .line 395
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            iconst_m1
            if_icmpeq 26
        16: .line 398
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            iconst_0
            aload 5 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 399
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
        18: .line 400
            aload 5 /* tmp */
            aload 5 /* tmp */
            arraylength
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
            isub
            isub
        19: .line 401
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
            isub
        20: .line 399
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 402
            aload 0 /* this */
            aload 5 /* tmp */
            arraylength
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
            isub
            isub
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
        22: .line 404
            goto 26
        23: .line 405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.out:I
            if_icmpne 26
        24: .line 406
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            iconst_0
            aload 5 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        25: .line 407
            aload 0 /* this */
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.in:I
        26: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* tmp */
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
        end local 5 // byte[] tmp
        end local 4 // int foo
        end local 3 // int datasize
        27: .line 410
            goto 33
        28: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
            arraylength
            iload 2 /* size */
            if_icmpne 33
            iload 2 /* size */
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
            if_icmple 33
        29: .line 412
            iload 2 /* size */
            iconst_2
            idiv
            istore 3 /* i */
        start local 3 // int i
        30: .line 413
            iload 3 /* i */
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
            if_icmpge 31
            aload 0 /* this */
            getfield com.jcraft.jsch.Channel$MyPipedInputStream.BUFFER_SIZE:I
            istore 3 /* i */
        31: .line 414
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            newarray 8
            astore 4 /* tmp */
        start local 4 // byte[] tmp
        32: .line 415
            aload 0 /* this */
            aload 4 /* tmp */
            putfield com.jcraft.jsch.Channel$MyPipedInputStream.buffer:[B
        end local 4 // byte[] tmp
        end local 3 // int i
        33: .line 417
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int size
        end local 1 // int len
        end local 0 // com.jcraft.jsch.Channel$MyPipedInputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   34     0      this  Lcom/jcraft/jsch/Channel$MyPipedInputStream;
            0   34     1       len  I
            1   34     2      size  I
            3   27     3  datasize  I
            4   27     4       foo  I
           11   27     5       tmp  [B
           30   33     3         i  I
           32   33     4       tmp  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      len   
}
SourceFile: "Channel.java"
NestHost: com.jcraft.jsch.Channel
InnerClasses:
  MyPipedInputStream = com.jcraft.jsch.Channel$MyPipedInputStream of com.jcraft.jsch.Channel