final class java.util.concurrent.ConcurrentLinkedDeque$Node<E>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.util.concurrent.ConcurrentLinkedDeque$Node
  super_class: java.lang.Object
{
  volatile java.util.concurrent.ConcurrentLinkedDeque$Node<E> prev;
    descriptor: Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
    flags: (0x0040) ACC_VOLATILE
    Signature: Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;

  volatile E item;
    descriptor: Ljava/lang/Object;
    flags: (0x0040) ACC_VOLATILE
    Signature: TE;

  volatile java.util.concurrent.ConcurrentLinkedDeque$Node<E> next;
    descriptor: Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
    flags: (0x0040) ACC_VOLATILE
    Signature: Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;

  private static final sun.misc.Unsafe UNSAFE;
    descriptor: Lsun/misc/Unsafe;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long prevOffset;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long itemOffset;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long nextOffset;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 335
            invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
            putstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
         1: .line 336
            ldc Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
            astore 0 /* k */
        start local 0 // java.lang.Class k
         2: .line 337
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
         3: .line 338
            aload 0 /* k */
            ldc "prev"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
         4: .line 337
            invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            putstatic java.util.concurrent.ConcurrentLinkedDeque$Node.prevOffset:J
         5: .line 339
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
         6: .line 340
            aload 0 /* k */
            ldc "item"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
         7: .line 339
            invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            putstatic java.util.concurrent.ConcurrentLinkedDeque$Node.itemOffset:J
         8: .line 341
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
         9: .line 342
            aload 0 /* k */
            ldc "next"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
        10: .line 341
            invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
            putstatic java.util.concurrent.ConcurrentLinkedDeque$Node.nextOffset:J
        end local 0 // java.lang.Class k
        11: .line 343
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Exception
        12: astore 0 /* e */
        start local 0 // java.lang.Exception e
        13: .line 344
            new java.lang.Error
            dup
            aload 0 /* e */
            invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Exception e
        14: .line 346
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2   11     0     k  Ljava/lang/Class<*>;
           13   14     0     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    11      12  Class java.lang.Exception

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
         0: .line 295
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 296
            return
        end local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;

  void <init>();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
        start local 1 // java.lang.Object item
         0: .line 302
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 303
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* this */
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.itemOffset:J
            aload 1 /* item */
            invokevirtual sun.misc.Unsafe.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
         2: .line 304
            return
        end local 1 // java.lang.Object item
        end local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
            0    3     1  item  TE;
    Signature: (TE;)V
    MethodParameters:
      Name  Flags
      item  

  boolean casItem(E, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
        start local 1 // java.lang.Object cmp
        start local 2 // java.lang.Object val
         0: .line 307
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* this */
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.itemOffset:J
            aload 1 /* cmp */
            aload 2 /* val */
            invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.Object val
        end local 1 // java.lang.Object cmp
        end local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
            0    1     1   cmp  TE;
            0    1     2   val  TE;
    Signature: (TE;TE;)Z
    MethodParameters:
      Name  Flags
      cmp   
      val   

  void lazySetNext(java.util.concurrent.ConcurrentLinkedDeque$Node<E>);
    descriptor: (Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
        start local 1 // java.util.concurrent.ConcurrentLinkedDeque$Node val
         0: .line 311
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* this */
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.nextOffset:J
            aload 1 /* val */
            invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
         1: .line 312
            return
        end local 1 // java.util.concurrent.ConcurrentLinkedDeque$Node val
        end local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
            0    2     1   val  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
    Signature: (Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;)V
    MethodParameters:
      Name  Flags
      val   

  boolean casNext(java.util.concurrent.ConcurrentLinkedDeque$Node<E>, java.util.concurrent.ConcurrentLinkedDeque$Node<E>);
    descriptor: (Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
        start local 1 // java.util.concurrent.ConcurrentLinkedDeque$Node cmp
        start local 2 // java.util.concurrent.ConcurrentLinkedDeque$Node val
         0: .line 315
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* this */
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.nextOffset:J
            aload 1 /* cmp */
            aload 2 /* val */
            invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.util.concurrent.ConcurrentLinkedDeque$Node val
        end local 1 // java.util.concurrent.ConcurrentLinkedDeque$Node cmp
        end local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
            0    1     1   cmp  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
            0    1     2   val  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
    Signature: (Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;)Z
    MethodParameters:
      Name  Flags
      cmp   
      val   

  void lazySetPrev(java.util.concurrent.ConcurrentLinkedDeque$Node<E>);
    descriptor: (Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
        start local 1 // java.util.concurrent.ConcurrentLinkedDeque$Node val
         0: .line 319
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* this */
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.prevOffset:J
            aload 1 /* val */
            invokevirtual sun.misc.Unsafe.putOrderedObject:(Ljava/lang/Object;JLjava/lang/Object;)V
         1: .line 320
            return
        end local 1 // java.util.concurrent.ConcurrentLinkedDeque$Node val
        end local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
            0    2     1   val  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
    Signature: (Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;)V
    MethodParameters:
      Name  Flags
      val   

  boolean casPrev(java.util.concurrent.ConcurrentLinkedDeque$Node<E>, java.util.concurrent.ConcurrentLinkedDeque$Node<E>);
    descriptor: (Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Z
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
        start local 1 // java.util.concurrent.ConcurrentLinkedDeque$Node cmp
        start local 2 // java.util.concurrent.ConcurrentLinkedDeque$Node val
         0: .line 323
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.UNSAFE:Lsun/misc/Unsafe;
            aload 0 /* this */
            getstatic java.util.concurrent.ConcurrentLinkedDeque$Node.prevOffset:J
            aload 1 /* cmp */
            aload 2 /* val */
            invokevirtual sun.misc.Unsafe.compareAndSwapObject:(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.util.concurrent.ConcurrentLinkedDeque$Node val
        end local 1 // java.util.concurrent.ConcurrentLinkedDeque$Node cmp
        end local 0 // java.util.concurrent.ConcurrentLinkedDeque$Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
            0    1     1   cmp  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
            0    1     2   val  Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;
    Signature: (Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;Ljava/util/concurrent/ConcurrentLinkedDeque$Node<TE;>;)Z
    MethodParameters:
      Name  Flags
      cmp   
      val   
}
Signature: <E:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ConcurrentLinkedDeque.java"
NestHost: java.util.concurrent.ConcurrentLinkedDeque
InnerClasses:
  final Node = java.util.concurrent.ConcurrentLinkedDeque$Node of java.util.concurrent.ConcurrentLinkedDeque