final class jdk.incubator.http.internal.websocket.Frame$Reader
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.incubator.http.internal.websocket.Frame$Reader
  super_class: java.lang.Object
{
  private static final int AWAITING_FIRST_BYTE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

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

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

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

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

  private final java.nio.ByteBuffer accumulator;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private long remainingPayloadLength;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  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 355
            ldc Ljdk/incubator/http/internal/websocket/Frame;
            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 jdk.incubator.http.internal.websocket.Frame$Reader.$assertionsDisabled:Z
         3: .line 362
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.incubator.http.internal.websocket.Frame$Reader this
         0: .line 355
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 365
            aload 0 /* this */
            bipush 8
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
         2: .line 366
            aload 0 /* this */
            iconst_1
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
         3: .line 355
            return
        end local 0 // jdk.incubator.http.internal.websocket.Frame$Reader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/incubator/http/internal/websocket/Frame$Reader;

  void readFrame(java.nio.ByteBuffer, jdk.incubator.http.internal.websocket.Frame$Consumer);
    descriptor: (Ljava/nio/ByteBuffer;Ljdk/incubator/http/internal/websocket/Frame$Consumer;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // jdk.incubator.http.internal.websocket.Frame$Reader this
        start local 1 // java.nio.ByteBuffer input
        start local 2 // jdk.incubator.http.internal.websocket.Frame$Consumer consumer
         0: .line 383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
            lookupswitch { // 6
                    1: 1
                    2: 19
                    4: 38
                    8: 52
                   16: 68
                   32: 77
              default: 93
          }
         1: .line 385
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 3
         2: .line 386
            goto 94
         3: .line 388
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* b */
        start local 3 // byte b
         4: .line 389
            aload 2 /* consumer */
            iload 3 /* b */
            sipush 128
            iand
            ifeq 5
            iconst_1
            goto 6
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer
         5: iconst_0
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer int
         6: invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.fin:(Z)V
         7: .line 390
            aload 2 /* consumer */
            iload 3 /* b */
            bipush 64
            iand
            ifeq 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer
         8: iconst_0
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer int
         9: invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.rsv1:(Z)V
        10: .line 391
            aload 2 /* consumer */
            iload 3 /* b */
            bipush 32
            iand
            ifeq 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer
        11: iconst_0
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer int
        12: invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.rsv2:(Z)V
        13: .line 392
            aload 2 /* consumer */
            iload 3 /* b */
            bipush 16
            iand
            ifeq 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer
        14: iconst_0
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer int
        15: invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.rsv3:(Z)V
        16: .line 393
            aload 2 /* consumer */
            iload 3 /* b */
            invokestatic jdk.incubator.http.internal.websocket.Frame$Opcode.ofCode:(I)Ljdk/incubator/http/internal/websocket/Frame$Opcode;
            invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.opcode:(Ljdk/incubator/http/internal/websocket/Frame$Opcode;)V
        17: .line 394
            aload 0 /* this */
            iconst_2
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
        18: .line 395
            goto 0
        end local 3 // byte b
        19: .line 397
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 21
        20: .line 398
            goto 94
        21: .line 400
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* b */
        start local 3 // byte b
        22: .line 401
            aload 2 /* consumer */
            aload 0 /* this */
            iload 3 /* b */
            sipush 128
            iand
            ifeq 23
            iconst_1
            goto 24
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer jdk.incubator.http.internal.websocket.Frame$Reader
        23: iconst_0
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Consumer jdk.incubator.http.internal.websocket.Frame$Reader int
        24: dup_x1
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.mask:Z
            invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.mask:(Z)V
        25: .line 402
            iload 3 /* b */
            bipush 127
            iand
            i2b
            istore 4 /* p1 */
        start local 4 // byte p1
        26: .line 403
            iload 4 /* p1 */
            bipush 126
            if_icmpge 33
        27: .line 404
            getstatic jdk.incubator.http.internal.websocket.Frame$Reader.$assertionsDisabled:Z
            ifne 28
            iload 4 /* p1 */
            ifge 28
            new java.lang.AssertionError
            dup
            iload 4 /* p1 */
            invokespecial java.lang.AssertionError.<init>:(I)V
            athrow
        28: .line 405
      StackMap locals: int
      StackMap stack:
            aload 2 /* consumer */
            aload 0 /* this */
            iload 4 /* p1 */
            i2l
            dup2_x1
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.payloadLen:(J)V
        29: .line 406
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.mask:Z
            ifeq 30
            bipush 16
            goto 31
      StackMap locals:
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader
        30: bipush 32
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader int
        31: putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
        32: .line 407
            goto 0
      StackMap locals:
      StackMap stack:
        33: iload 4 /* p1 */
            bipush 127
            if_icmpge 36
        34: .line 408
            aload 0 /* this */
            iconst_4
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
        35: .line 409
            goto 0
        36: .line 410
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 8
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
        37: .line 412
            goto 0
        end local 4 // byte p1
        end local 3 // byte b
        38: .line 414
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 40
        39: .line 415
            goto 94
        40: .line 417
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* b */
        start local 3 // byte b
        41: .line 418
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
            iload 3 /* b */
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            iconst_2
            if_icmpge 43
        42: .line 419
            goto 0
        43: .line 421
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getChar:()C
            i2l
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
        44: .line 422
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            ldc 126
            lcmp
            ifge 46
        45: .line 423
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            invokestatic jdk.incubator.http.internal.websocket.Frame$Reader.notMinimalEncoding:(J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
            athrow
        46: .line 425
      StackMap locals:
      StackMap stack:
            aload 2 /* consumer */
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.payloadLen:(J)V
        47: .line 426
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        48: .line 427
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.mask:Z
            ifeq 49
            bipush 16
            goto 50
      StackMap locals:
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader
        49: bipush 32
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader int
        50: putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
        51: .line 428
            goto 0
        end local 3 // byte b
        52: .line 430
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 54
        53: .line 431
            goto 94
        54: .line 433
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* b */
        start local 3 // byte b
        55: .line 434
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
            iload 3 /* b */
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            bipush 8
            if_icmpge 57
        56: .line 435
            goto 0
        57: .line 437
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getLong:()J
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
        58: .line 438
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            lconst_0
            lcmp
            ifge 60
        59: .line 439
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            invokestatic jdk.incubator.http.internal.websocket.Frame$Reader.negativePayload:(J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
            athrow
        60: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            ldc 65536
            lcmp
            ifge 62
        61: .line 441
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            invokestatic jdk.incubator.http.internal.websocket.Frame$Reader.notMinimalEncoding:(J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
            athrow
        62: .line 443
      StackMap locals:
      StackMap stack:
            aload 2 /* consumer */
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.payloadLen:(J)V
        63: .line 444
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        64: .line 445
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.mask:Z
            ifeq 65
            bipush 16
            goto 66
      StackMap locals:
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader
        65: bipush 32
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer int
      StackMap stack: jdk.incubator.http.internal.websocket.Frame$Reader int
        66: putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
        67: .line 446
            goto 0
        end local 3 // byte b
        68: .line 448
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 70
        69: .line 449
            goto 94
        70: .line 451
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 3 /* b */
        start local 3 // byte b
        71: .line 452
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
            iload 3 /* b */
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.position:()I
            iconst_4
            if_icmpeq 73
        72: .line 453
            goto 0
        73: .line 455
      StackMap locals: int
      StackMap stack:
            aload 2 /* consumer */
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getInt:()I
            invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.maskingKey:(I)V
        74: .line 456
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.accumulator:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        75: .line 457
            aload 0 /* this */
            bipush 32
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
        76: .line 458
            goto 0
        end local 3 // byte b
        77: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
        78: .line 463
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            i2l
        79: .line 462
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 5 /* deliverable */
        start local 5 // int deliverable
        80: .line 464
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 6 /* oldLimit */
        start local 6 // int oldLimit
        81: .line 465
            aload 1 /* input */
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 5 /* deliverable */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        82: .line 466
            iload 5 /* deliverable */
            ifne 83
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            lconst_0
            lcmp
            ifne 84
        83: .line 467
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer top top int int
      StackMap stack:
            aload 2 /* consumer */
            aload 1 /* input */
            invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.payloadData:(Ljava/nio/ByteBuffer;)V
        84: .line 469
      StackMap locals:
      StackMap stack:
            iload 5 /* deliverable */
            aload 1 /* input */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            isub
            istore 7 /* consumed */
        start local 7 // int consumed
        85: .line 470
            iload 7 /* consumed */
            ifge 87
        86: .line 472
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        87: .line 474
      StackMap locals: int
      StackMap stack:
            aload 1 /* input */
            iload 6 /* oldLimit */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
            pop
        88: .line 475
            aload 0 /* this */
            dup
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            iload 7 /* consumed */
            i2l
            lsub
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
        89: .line 476
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.remainingPayloadLength:J
            lconst_0
            lcmp
            ifne 94
        90: .line 477
            aload 2 /* consumer */
            invokeinterface jdk.incubator.http.internal.websocket.Frame$Consumer.endFrame:()V
        91: .line 478
            aload 0 /* this */
            iconst_1
            putfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
        92: .line 480
            goto 94
        end local 7 // int consumed
        end local 6 // int oldLimit
        end local 5 // int deliverable
        93: .line 482
      StackMap locals: jdk.incubator.http.internal.websocket.Frame$Reader java.nio.ByteBuffer jdk.incubator.http.internal.websocket.Frame$Consumer
      StackMap stack:
            new java.lang.InternalError
            dup
            aload 0 /* this */
            getfield jdk.incubator.http.internal.websocket.Frame$Reader.state:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        94: .line 485
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.incubator.http.internal.websocket.Frame$Consumer consumer
        end local 1 // java.nio.ByteBuffer input
        end local 0 // jdk.incubator.http.internal.websocket.Frame$Reader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   95     0         this  Ljdk/incubator/http/internal/websocket/Frame$Reader;
            0   95     1        input  Ljava/nio/ByteBuffer;
            0   95     2     consumer  Ljdk/incubator/http/internal/websocket/Frame$Consumer;
            4   19     3            b  B
           22   38     3            b  B
           41   52     3            b  B
           55   68     3            b  B
           71   77     3            b  B
           26   38     4           p1  B
           80   93     5  deliverable  I
           81   93     6     oldLimit  I
           85   93     7     consumed  I
    MethodParameters:
          Name  Flags
      input     
      consumer  

  private static jdk.incubator.http.internal.websocket.FailWebSocketException negativePayload(long);
    descriptor: (J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long payloadLength
         0: .line 489
            new jdk.incubator.http.internal.websocket.FailWebSocketException
            dup
         1: .line 490
            new java.lang.StringBuilder
            dup
            ldc "Negative payload length: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 0 /* payloadLength */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 489
            invokespecial jdk.incubator.http.internal.websocket.FailWebSocketException.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // long payloadLength
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0  payloadLength  J
    MethodParameters:
               Name  Flags
      payloadLength  

  private static jdk.incubator.http.internal.websocket.FailWebSocketException notMinimalEncoding(long);
    descriptor: (J)Ljdk/incubator/http/internal/websocket/FailWebSocketException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long payloadLength
         0: .line 495
            new jdk.incubator.http.internal.websocket.FailWebSocketException
            dup
         1: .line 496
            new java.lang.StringBuilder
            dup
            ldc "Not minimally-encoded payload length:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 0 /* payloadLength */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 495
            invokespecial jdk.incubator.http.internal.websocket.FailWebSocketException.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // long payloadLength
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0  payloadLength  J
    MethodParameters:
               Name  Flags
      payloadLength  
}
SourceFile: "Frame.java"
NestHost: jdk.incubator.http.internal.websocket.Frame
InnerClasses:
  abstract Consumer = jdk.incubator.http.internal.websocket.Frame$Consumer of jdk.incubator.http.internal.websocket.Frame
  final Opcode = jdk.incubator.http.internal.websocket.Frame$Opcode of jdk.incubator.http.internal.websocket.Frame
  final Reader = jdk.incubator.http.internal.websocket.Frame$Reader of jdk.incubator.http.internal.websocket.Frame