final class okhttp3.internal.http2.Http2Stream$FramingSink implements okio.Sink
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: okhttp3.internal.http2.Http2Stream$FramingSink
  super_class: java.lang.Object
{
  private static final long EMIT_BUFFER_SIZE;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

  private final okio.Buffer sendBuffer;
    descriptor: Lokio/Buffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  boolean closed;
    descriptor: Z
    flags: (0x0000) 

  boolean finished;
    descriptor: Z
    flags: (0x0000) 

  final okhttp3.internal.http2.Http2Stream this$0;
    descriptor: Lokhttp3/internal/http2/Http2Stream;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 523
            ldc Lokhttp3/internal/http2/Http2Stream;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic okhttp3.internal.http2.Http2Stream$FramingSink.$assertionsDisabled:Z
         3: .line 524
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(okhttp3.internal.http2.Http2Stream);
    descriptor: (Lokhttp3/internal/http2/Http2Stream;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
         0: .line 523
            aload 0 /* this */
            aload 1
            putfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 530
            aload 0 /* this */
            new okio.Buffer
            dup
            invokespecial okio.Buffer.<init>:()V
            putfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
         2: .line 523
            return
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lokhttp3/internal/http2/Http2Stream$FramingSink;
    MethodParameters:
        Name  Flags
      this$0  final

  public void write(okio.Buffer, long);
    descriptor: (Lokio/Buffer;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
        start local 1 // okio.Buffer source
        start local 2 // long byteCount
         0: .line 540
            getstatic okhttp3.internal.http2.Http2Stream$FramingSink.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 541
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
            aload 1 /* source */
            lload 2 /* byteCount */
            invokevirtual okio.Buffer.write:(Lokio/Buffer;J)V
         2: .line 542
            goto 4
         3: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual okhttp3.internal.http2.Http2Stream$FramingSink.emitFrame:(Z)V
         4: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            ldc 16384
            lcmp
            ifge 3
         5: .line 545
            return
        end local 2 // long byteCount
        end local 1 // okio.Buffer source
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lokhttp3/internal/http2/Http2Stream$FramingSink;
            0    6     1     source  Lokio/Buffer;
            0    6     2  byteCount  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      source     
      byteCount  

  private void emitFrame(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
        start local 1 // boolean outFinished
         0: .line 553
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            astore 4
            monitorenter
         1: .line 554
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.enter:()V
         2: .line 556
            goto 4
         3: .line 557
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink int top top okhttp3.internal.http2.Http2Stream
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokevirtual okhttp3.internal.http2.Http2Stream.waitForIo:()V
         4: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
            lconst_0
            lcmp
            ifgt 9
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.finished:Z
            ifne 9
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.closed:Z
            ifne 9
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
            ifnull 3
         5: .line 559
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 5
         7: .line 560
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
         8: .line 561
            aload 5
            athrow
         9: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
        10: .line 563
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokevirtual okhttp3.internal.http2.Http2Stream.checkOutNotClosed:()V
        11: .line 564
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            invokestatic java.lang.Math.min:(JJ)J
            lstore 2 /* toWrite */
        start local 2 // long toWrite
        12: .line 565
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            getfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
            lload 2 /* toWrite */
            lsub
            putfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
        13: .line 553
            aload 4
            monitorexit
        14: goto 17
        end local 2 // long toWrite
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 4
            monitorexit
        16: athrow
        start local 2 // long toWrite
        17: .line 568
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink int long
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.enter:()V
        18: .line 570
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.id:I
            iload 1 /* outFinished */
            ifeq 19
            lload 2 /* toWrite */
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            lcmp
            ifne 19
            iconst_1
            goto 20
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink int long
      StackMap stack: okhttp3.internal.http2.Http2Connection int
        19: iconst_0
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink int long
      StackMap stack: okhttp3.internal.http2.Http2Connection int int
        20: aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
            lload 2 /* toWrite */
            invokevirtual okhttp3.internal.http2.Http2Connection.writeData:(IZLokio/Buffer;J)V
        21: .line 571
            goto 25
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 4
        23: .line 572
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
        24: .line 573
            aload 4
            athrow
        25: .line 572
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
        26: .line 574
            return
        end local 2 // long toWrite
        end local 1 // boolean outFinished
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0         this  Lokhttp3/internal/http2/Http2Stream$FramingSink;
            0   27     1  outFinished  Z
           12   15     2      toWrite  J
           17   27     2      toWrite  J
      Exception table:
        from    to  target  type
           2     6       6  any
           1    14      15  any
          15    16      15  any
          18    22      22  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      outFinished  

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
         0: .line 577
            getstatic okhttp3.internal.http2.Http2Stream$FramingSink.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 578
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            astore 1
            monitorenter
         2: .line 579
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokevirtual okhttp3.internal.http2.Http2Stream.checkOutNotClosed:()V
         3: .line 578
            aload 1
            monitorexit
         4: goto 9
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink okhttp3.internal.http2.Http2Stream
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 582
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual okhttp3.internal.http2.Http2Stream$FramingSink.emitFrame:(Z)V
         8: .line 583
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            invokevirtual okhttp3.internal.http2.Http2Connection.flush:()V
         9: .line 581
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            lconst_0
            lcmp
            ifgt 7
        10: .line 585
            return
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lokhttp3/internal/http2/Http2Stream$FramingSink;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any
    Exceptions:
      throws java.io.IOException

  public okio.Timeout timeout();
    descriptor: ()Lokio/Timeout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
         0: .line 588
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
            areturn
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lokhttp3/internal/http2/Http2Stream$FramingSink;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
         0: .line 592
            getstatic okhttp3.internal.http2.Http2Stream$FramingSink.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 593
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            astore 1
            monitorenter
         2: .line 594
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.closed:Z
            ifeq 4
            aload 1
            monitorexit
         3: return
         4: .line 593
      StackMap locals: okhttp3.internal.http2.Http2Stream
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 596
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.finished:Z
            ifne 15
         9: .line 598
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            lconst_0
            lcmp
            ifle 14
        10: .line 599
            goto 12
        11: .line 600
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual okhttp3.internal.http2.Http2Stream$FramingSink.emitFrame:(Z)V
        12: .line 599
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
            invokevirtual okio.Buffer.size:()J
            lconst_0
            lcmp
            ifgt 11
        13: .line 602
            goto 15
        14: .line 604
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.id:I
            iconst_1
            aconst_null
            lconst_0
            invokevirtual okhttp3.internal.http2.Http2Connection.writeData:(IZLokio/Buffer;J)V
        15: .line 607
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            dup
            astore 1
            monitorenter
        16: .line 608
            aload 0 /* this */
            iconst_1
            putfield okhttp3.internal.http2.Http2Stream$FramingSink.closed:Z
        17: .line 607
            aload 1
            monitorexit
        18: goto 21
      StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink okhttp3.internal.http2.Http2Stream
      StackMap stack: java.lang.Throwable
        19: aload 1
            monitorexit
        20: athrow
        21: .line 610
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
            invokevirtual okhttp3.internal.http2.Http2Connection.flush:()V
        22: .line 611
            aload 0 /* this */
            getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
            invokevirtual okhttp3.internal.http2.Http2Stream.cancelStreamIfNecessary:()V
        23: .line 612
            return
        end local 0 // okhttp3.internal.http2.Http2Stream$FramingSink this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   24     0  this  Lokhttp3/internal/http2/Http2Stream$FramingSink;
      Exception table:
        from    to  target  type
           2     3       6  any
           4     5       6  any
           6     7       6  any
          16    18      19  any
          19    20      19  any
    Exceptions:
      throws java.io.IOException
}
SourceFile: "Http2Stream.java"
NestHost: okhttp3.internal.http2.Http2Stream
InnerClasses:
  final FramingSink = okhttp3.internal.http2.Http2Stream$FramingSink of okhttp3.internal.http2.Http2Stream
  StreamTimeout = okhttp3.internal.http2.Http2Stream$StreamTimeout of okhttp3.internal.http2.Http2Stream