public final class com.datastax.oss.protocol.internal.util.Bytes
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.datastax.oss.protocol.internal.util.Bytes
  super_class: java.lang.Object
{
  private static final byte[] charToByte;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final char[] byteToChar;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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=4, locals=1, args_size=0
         0: .line 29
            ldc Lcom/datastax/oss/protocol/internal/util/Bytes;
            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 com.datastax.oss.protocol.internal.util.Bytes.$assertionsDisabled:Z
         3: .line 33
            sipush 256
            newarray 8
            putstatic com.datastax.oss.protocol.internal.util.Bytes.charToByte:[B
         4: .line 34
            bipush 16
            newarray 5
            putstatic com.datastax.oss.protocol.internal.util.Bytes.byteToChar:[C
         5: .line 37
            iconst_0
            istore 0 /* c */
        start local 0 // char c
         6: goto 18
         7: .line 38
      StackMap locals: int
      StackMap stack:
            iload 0 /* c */
            bipush 48
            if_icmplt 10
            iload 0 /* c */
            bipush 57
            if_icmpgt 10
         8: .line 39
            getstatic com.datastax.oss.protocol.internal.util.Bytes.charToByte:[B
            iload 0 /* c */
            iload 0 /* c */
            bipush 48
            isub
            i2b
            bastore
         9: .line 40
            goto 17
      StackMap locals:
      StackMap stack:
        10: iload 0 /* c */
            bipush 65
            if_icmplt 13
            iload 0 /* c */
            bipush 70
            if_icmpgt 13
        11: .line 41
            getstatic com.datastax.oss.protocol.internal.util.Bytes.charToByte:[B
            iload 0 /* c */
            iload 0 /* c */
            bipush 65
            isub
            bipush 10
            iadd
            i2b
            bastore
        12: .line 42
            goto 17
      StackMap locals:
      StackMap stack:
        13: iload 0 /* c */
            bipush 97
            if_icmplt 16
            iload 0 /* c */
            bipush 102
            if_icmpgt 16
        14: .line 43
            getstatic com.datastax.oss.protocol.internal.util.Bytes.charToByte:[B
            iload 0 /* c */
            iload 0 /* c */
            bipush 97
            isub
            bipush 10
            iadd
            i2b
            bastore
        15: .line 44
            goto 17
        16: .line 45
      StackMap locals:
      StackMap stack:
            getstatic com.datastax.oss.protocol.internal.util.Bytes.charToByte:[B
            iload 0 /* c */
            iconst_m1
            bastore
        17: .line 37
      StackMap locals:
      StackMap stack:
            iload 0 /* c */
            iconst_1
            iadd
            i2c
            istore 0 /* c */
      StackMap locals:
      StackMap stack:
        18: iload 0 /* c */
            getstatic com.datastax.oss.protocol.internal.util.Bytes.charToByte:[B
            arraylength
            if_icmplt 7
        end local 0 // char c
        19: .line 49
            iconst_0
            istore 0 /* i */
        start local 0 // int i
        20: goto 23
        21: .line 50
      StackMap locals: int
      StackMap stack:
            getstatic com.datastax.oss.protocol.internal.util.Bytes.byteToChar:[C
            iload 0 /* i */
            iload 0 /* i */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            castore
        22: .line 49
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 0 /* i */
            bipush 16
            if_icmplt 21
        end local 0 // int i
        24: .line 52
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            6   19     0     c  C
           20   24     0     i  I

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.datastax.oss.protocol.internal.util.Bytes this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.datastax.oss.protocol.internal.util.Bytes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/datastax/oss/protocol/internal/util/Bytes;

  public static java.lang.String toHexString(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.nio.ByteBuffer bytes
         0: .line 65
            aload 0 /* bytes */
            ifnonnull 2
         1: .line 66
            aconst_null
            areturn
         2: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            ifne 4
         3: .line 70
            ldc "0x"
            areturn
         4: .line 73
      StackMap locals:
      StackMap stack:
            iconst_2
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iconst_1
            iadd
            imul
            newarray 5
            astore 1 /* array */
        start local 1 // char[] array
         5: .line 74
            aload 1 /* array */
            iconst_0
            bipush 48
            castore
         6: .line 75
            aload 1 /* array */
            iconst_1
            bipush 120
            castore
         7: .line 76
            aload 0 /* bytes */
            aload 1 /* array */
            iconst_2
            invokestatic com.datastax.oss.protocol.internal.util.Bytes.toRawHexString:(Ljava/nio/ByteBuffer;[CI)Ljava/lang/String;
            areturn
        end local 1 // char[] array
        end local 0 // java.nio.ByteBuffer bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  bytes  Ljava/nio/ByteBuffer;
            5    8     1  array  [C
    MethodParameters:
       Name  Flags
      bytes  

  private static java.lang.String toRawHexString(java.nio.ByteBuffer, char[], int);
    descriptor: (Ljava/nio/ByteBuffer;[CI)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // java.nio.ByteBuffer bytes
        start local 1 // char[] array
        start local 2 // int offset
         0: .line 80
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 3 /* size */
        start local 3 // int size
         1: .line 81
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.position:()I
            istore 4 /* bytesOffset */
        start local 4 // int bytesOffset
         2: .line 82
            getstatic com.datastax.oss.protocol.internal.util.Bytes.$assertionsDisabled:Z
            ifne 3
            aload 1 /* array */
            arraylength
            iload 2 /* offset */
            iconst_2
            iload 3 /* size */
            imul
            iadd
            if_icmpge 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 83
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 9
         5: .line 84
      StackMap locals: int
      StackMap stack:
            aload 0 /* bytes */
            iload 5 /* i */
            iload 4 /* bytesOffset */
            iadd
            invokevirtual java.nio.ByteBuffer.get:(I)B
            istore 6 /* bint */
        start local 6 // int bint
         6: .line 85
            aload 1 /* array */
            iload 2 /* offset */
            iload 5 /* i */
            iconst_2
            imul
            iadd
            getstatic com.datastax.oss.protocol.internal.util.Bytes.byteToChar:[C
            iload 6 /* bint */
            sipush 240
            iand
            iconst_4
            ishr
            caload
            castore
         7: .line 86
            aload 1 /* array */
            iload 2 /* offset */
            iconst_1
            iadd
            iload 5 /* i */
            iconst_2
            imul
            iadd
            getstatic com.datastax.oss.protocol.internal.util.Bytes.byteToChar:[C
            iload 6 /* bint */
            bipush 15
            iand
            caload
            castore
        end local 6 // int bint
         8: .line 83
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            iload 3 /* size */
            if_icmplt 5
        end local 5 // int i
        10: .line 88
            new java.lang.String
            dup
            aload 1 /* array */
            invokespecial java.lang.String.<init>:([C)V
            areturn
        end local 4 // int bytesOffset
        end local 3 // int size
        end local 2 // int offset
        end local 1 // char[] array
        end local 0 // java.nio.ByteBuffer bytes
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0        bytes  Ljava/nio/ByteBuffer;
            0   11     1        array  [C
            0   11     2       offset  I
            1   11     3         size  I
            2   11     4  bytesOffset  I
            4   10     5            i  I
            6    8     6         bint  I
    MethodParameters:
        Name  Flags
      bytes   
      array   
      offset  

  public static java.lang.String toHexString(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // byte[] byteArray
         0: .line 102
            aload 0 /* byteArray */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            invokestatic com.datastax.oss.protocol.internal.util.Bytes.toHexString:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
            areturn
        end local 0 // byte[] byteArray
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  byteArray  [B
    MethodParameters:
           Name  Flags
      byteArray  

  public static java.nio.ByteBuffer fromHexString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/nio/ByteBuffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String str
         0: .line 117
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            iconst_1
            iand
            iconst_1
            if_icmpne 4
         1: .line 118
            new java.lang.IllegalArgumentException
            dup
         2: .line 119
            ldc "A CQL blob string must have an even length (since one byte is always 2 hexadecimal character)"
         3: .line 118
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 48
            if_icmpne 5
            aload 0 /* str */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            bipush 120
            if_icmpeq 6
         5: .line 123
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "A CQL blob string must start with \"0x\""
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 126
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            iconst_2
            invokestatic com.datastax.oss.protocol.internal.util.Bytes.fromRawHexString:(Ljava/lang/String;I)[B
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            areturn
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  private static byte[] fromRawHexString(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.lang.String str
        start local 1 // int strOffset
         0: .line 130
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            iload 1 /* strOffset */
            isub
            iconst_2
            idiv
            newarray 8
            astore 2 /* bytes */
        start local 2 // byte[] bytes
         1: .line 131
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 9
         3: .line 132
      StackMap locals: byte[] int
      StackMap stack:
            getstatic com.datastax.oss.protocol.internal.util.Bytes.charToByte:[B
            aload 0 /* str */
            iload 1 /* strOffset */
            iload 3 /* i */
            iconst_2
            imul
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            baload
            istore 4 /* halfByte1 */
        start local 4 // byte halfByte1
         4: .line 133
            getstatic com.datastax.oss.protocol.internal.util.Bytes.charToByte:[B
            aload 0 /* str */
            iload 1 /* strOffset */
            iload 3 /* i */
            iconst_2
            imul
            iadd
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            baload
            istore 5 /* halfByte2 */
        start local 5 // byte halfByte2
         5: .line 134
            iload 4 /* halfByte1 */
            iconst_m1
            if_icmpeq 6
            iload 5 /* halfByte2 */
            iconst_m1
            if_icmpne 7
         6: .line 135
      StackMap locals: int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Non-hex characters in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 137
      StackMap locals:
      StackMap stack:
            aload 2 /* bytes */
            iload 3 /* i */
            iload 4 /* halfByte1 */
            iconst_4
            ishl
            iload 5 /* halfByte2 */
            ior
            i2b
            bastore
        end local 5 // byte halfByte2
        end local 4 // byte halfByte1
         8: .line 131
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            aload 2 /* bytes */
            arraylength
            if_icmplt 3
        end local 3 // int i
        10: .line 139
            aload 2 /* bytes */
            areturn
        end local 2 // byte[] bytes
        end local 1 // int strOffset
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0        str  Ljava/lang/String;
            0   11     1  strOffset  I
            1   11     2      bytes  [B
            2   10     3          i  I
            4    8     4  halfByte1  B
            5    8     5  halfByte2  B
    MethodParameters:
           Name  Flags
      str        
      strOffset  

  public static byte[] getArray(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.nio.ByteBuffer bytes
         0: .line 154
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 1 /* length */
        start local 1 // int length
         1: .line 156
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            ifeq 6
         2: .line 157
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.arrayOffset:()I
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.position:()I
            iadd
            istore 2 /* boff */
        start local 2 // int boff
         3: .line 158
            iload 2 /* boff */
            ifne 5
            iload 1 /* length */
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.array:()[B
            arraylength
            if_icmpne 5
         4: .line 159
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.array:()[B
            areturn
         5: .line 161
      StackMap locals: int int
      StackMap stack:
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.array:()[B
            iload 2 /* boff */
            iload 2 /* boff */
            iload 1 /* length */
            iadd
            invokestatic java.util.Arrays.copyOfRange:([BII)[B
            areturn
        end local 2 // int boff
         6: .line 165
      StackMap locals:
      StackMap stack:
            iload 1 /* length */
            newarray 8
            astore 2 /* array */
        start local 2 // byte[] array
         7: .line 166
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
            aload 2 /* array */
            invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
            pop
         8: .line 167
            aload 2 /* array */
            areturn
        end local 2 // byte[] array
        end local 1 // int length
        end local 0 // java.nio.ByteBuffer bytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0   bytes  Ljava/nio/ByteBuffer;
            1    9     1  length  I
            3    6     2    boff  I
            7    9     2   array  [B
    MethodParameters:
       Name  Flags
      bytes  

  public static void erase(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.ByteBuffer bytes
         0: .line 172
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifne 4
         1: .line 173
            goto 3
         2: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            iconst_0
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
         3: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* bytes */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 2
         4: .line 177
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.nio.ByteBuffer bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  bytes  Ljava/nio/ByteBuffer;
    MethodParameters:
       Name  Flags
      bytes  
}
SourceFile: "Bytes.java"