final class com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator extends java.lang.Enum<com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator> implements java.util.Comparator<byte[]>
  minor version: 0
  major version: 59
  flags: flags: (0x4030) ACC_FINAL, ACC_SUPER, ACC_ANNOTATION
  this_class: com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator
  super_class: java.lang.Enum
{
  public static final com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator INSTANCE;
    descriptor: Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
    flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION

  static final boolean BIG_ENDIAN;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final sun.misc.Unsafe theUnsafe;
    descriptor: Lsun/misc/Unsafe;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int BYTE_ARRAY_BASE_OFFSET;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private static final com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] ENUM$VALUES;
    descriptor: [Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
    flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 295
            new com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator
            dup
            ldc "INSTANCE"
            iconst_0
            invokespecial com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.<init>:(Ljava/lang/String;I)V
            putstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.INSTANCE:Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
            iconst_1
            anewarray com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator
            dup
            iconst_0
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.INSTANCE:Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
            aastore
            putstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.ENUM$VALUES:[Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
         1: .line 297
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            putstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.BIG_ENDIAN:Z
         2: .line 315
            invokestatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.getUnsafe:()Lsun/misc/Unsafe;
            putstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.theUnsafe:Lsun/misc/Unsafe;
         3: .line 318
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.theUnsafe:Lsun/misc/Unsafe;
            ldc [B
            invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
            putstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.BYTE_ARRAY_BASE_OFFSET:I
         4: .line 323
            ldc "64"
            ldc "sun.arch.data.model"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 324
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.BYTE_ARRAY_BASE_OFFSET:I
            bipush 8
            irem
            ifne 7
         6: .line 326
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.theUnsafe:Lsun/misc/Unsafe;
            ldc [B
            invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
            iconst_1
            if_icmpeq 8
         7: .line 327
      StackMap locals:
      StackMap stack:
            new java.lang.Error
            dup
            invokespecial java.lang.Error.<init>:()V
            athrow
         8: .line 329
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator this
         0: .line 294
            aload 0 /* this */
            aload 1
            iload 2
            invokespecial java.lang.Enum.<init>:(Ljava/lang/String;I)V
            return
        end local 0 // com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
    MethodParameters:
               Name  Flags
      $enum$name     
      $enum$ordinal  

  private static sun.misc.Unsafe getUnsafe();
    descriptor: ()Lsun/misc/Unsafe;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 339
            invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
         1: areturn
         2: .line 340
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         3: .line 345
            new com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1
            dup
            invokespecial com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1.<init>:()V
         4: .line 344
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            checkcast sun.misc.Unsafe
         5: areturn
         6: .line 359
      StackMap locals:
      StackMap stack: java.security.PrivilegedActionException
            astore 0 /* e */
        start local 0 // java.security.PrivilegedActionException e
         7: .line 360
            new java.lang.RuntimeException
            dup
            ldc "Could not initialize intrinsics"
            aload 0 /* e */
            invokevirtual java.security.PrivilegedActionException.getCause:()Ljava/lang/Throwable;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.security.PrivilegedActionException e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            7    8     0     e  Ljava/security/PrivilegedActionException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
           3     5       6  Class java.security.PrivilegedActionException

  public int compare(byte[], byte[]);
    descriptor: ([B[B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator this
        start local 1 // byte[] left
        start local 2 // byte[] right
         0: .line 367
            aload 1 /* left */
            arraylength
            aload 2 /* right */
            arraylength
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* minLength */
        start local 3 // int minLength
         1: .line 368
            iload 3 /* minLength */
            bipush -8
            iand
            istore 4 /* strideLimit */
        start local 4 // int strideLimit
         2: .line 375
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 12
         4: .line 376
      StackMap locals: int int int
      StackMap stack:
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.theUnsafe:Lsun/misc/Unsafe;
            aload 1 /* left */
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.BYTE_ARRAY_BASE_OFFSET:I
            i2l
            iload 5 /* i */
            i2l
            ladd
            invokevirtual sun.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
            lstore 6 /* lw */
        start local 6 // long lw
         5: .line 377
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.theUnsafe:Lsun/misc/Unsafe;
            aload 2 /* right */
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.BYTE_ARRAY_BASE_OFFSET:I
            i2l
            iload 5 /* i */
            i2l
            ladd
            invokevirtual sun.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
            lstore 8 /* rw */
        start local 8 // long rw
         6: .line 378
            lload 6 /* lw */
            lload 8 /* rw */
            lcmp
            ifeq 11
         7: .line 379
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.BIG_ENDIAN:Z
            ifeq 9
         8: .line 380
            lload 6 /* lw */
            lload 8 /* rw */
            invokestatic com.google.common.primitives.UnsignedLongs.compare:(JJ)I
            ireturn
         9: .line 390
      StackMap locals: long long
      StackMap stack:
            lload 6 /* lw */
            lload 8 /* rw */
            lxor
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
            bipush -8
            iand
            istore 10 /* n */
        start local 10 // int n
        10: .line 391
            lload 6 /* lw */
            iload 10 /* n */
            lushr
            ldc 255
            land
            l2i
            lload 8 /* rw */
            iload 10 /* n */
            lushr
            ldc 255
            land
            l2i
            isub
            ireturn
        end local 10 // int n
        end local 8 // long rw
        end local 6 // long lw
        11: .line 375
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 8
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            iload 4 /* strideLimit */
            if_icmplt 4
        13: .line 396
            goto 18
        14: .line 397
      StackMap locals:
      StackMap stack:
            aload 1 /* left */
            iload 5 /* i */
            baload
            aload 2 /* right */
            iload 5 /* i */
            baload
            invokestatic com.google.common.primitives.UnsignedBytes.compare:(BB)I
            istore 6 /* result */
        start local 6 // int result
        15: .line 398
            iload 6 /* result */
            ifeq 17
        16: .line 399
            iload 6 /* result */
            ireturn
        end local 6 // int result
        17: .line 396
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            iload 3 /* minLength */
            if_icmplt 14
        19: .line 402
            aload 1 /* left */
            arraylength
            aload 2 /* right */
            arraylength
            isub
            ireturn
        end local 5 // int i
        end local 4 // int strideLimit
        end local 3 // int minLength
        end local 2 // byte[] right
        end local 1 // byte[] left
        end local 0 // com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
            0   20     1         left  [B
            0   20     2        right  [B
            1   20     3    minLength  I
            2   20     4  strideLimit  I
            3   20     5            i  I
            5   11     6           lw  J
            6   11     8           rw  J
           10   11    10            n  I
           15   17     6       result  I
    MethodParameters:
       Name  Flags
      left   
      right  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator this
         0: .line 407
            ldc "UnsignedBytes.lexicographicalComparator() (sun.misc.Unsafe version)"
            areturn
        end local 0 // com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;

  public static com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] values();
    descriptor: ()[Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=0
         0: .line 1
            getstatic com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.ENUM$VALUES:[Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
            dup
            astore 0
            iconst_0
            aload 0
            arraylength
            dup
            istore 1
            anewarray com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator
            dup
            astore 2
            iconst_0
            iload 1
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
            aload 2
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator valueOf(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 1
            ldc Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
            aload 0
            invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
            checkcast com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
      Name  Flags
      name  

  public int compare(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast byte[]
            aload 2
            checkcast byte[]
            invokevirtual com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator.compare:([B[B)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Enum<Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;>;Ljava/util/Comparator<[B>;
SourceFile: "UnsignedBytes.java"
NestHost: com.google.common.primitives.UnsignedBytes
InnerClasses:
  LexicographicalComparatorHolder = com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder of com.google.common.primitives.UnsignedBytes
  final UnsafeComparator = com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator of com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder
  com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()