abstract class io.netty.channel.AbstractChannelHandlerContext extends io.netty.util.DefaultAttributeMap implements io.netty.channel.ChannelHandlerContext, io.netty.util.ResourceLeakHint
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: io.netty.channel.AbstractChannelHandlerContext
  super_class: io.netty.util.DefaultAttributeMap
{
  private static final io.netty.util.internal.logging.InternalLogger logger;
    descriptor: Lio/netty/util/internal/logging/InternalLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  volatile io.netty.channel.AbstractChannelHandlerContext next;
    descriptor: Lio/netty/channel/AbstractChannelHandlerContext;
    flags: (0x0040) ACC_VOLATILE

  volatile io.netty.channel.AbstractChannelHandlerContext prev;
    descriptor: Lio/netty/channel/AbstractChannelHandlerContext;
    flags: (0x0040) ACC_VOLATILE

  private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.netty.channel.AbstractChannelHandlerContext> HANDLER_STATE_UPDATER;
    descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/netty/channel/AbstractChannelHandlerContext;>;

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

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

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

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

  private final boolean inbound;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean outbound;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.channel.DefaultChannelPipeline pipeline;
    descriptor: Lio/netty/channel/DefaultChannelPipeline;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean ordered;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final io.netty.util.concurrent.EventExecutor executor;
    descriptor: Lio/netty/util/concurrent/EventExecutor;
    flags: (0x0010) ACC_FINAL

  private io.netty.channel.ChannelFuture succeededFuture;
    descriptor: Lio/netty/channel/ChannelFuture;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable invokeChannelReadCompleteTask;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable invokeReadTask;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable invokeChannelWritableStateChangedTask;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable invokeFlushTask;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private volatile int handlerState;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  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=2, locals=0, args_size=0
         0: .line 38
            ldc Lio/netty/channel/AbstractChannelHandlerContext;
            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 io.netty.channel.AbstractChannelHandlerContext.$assertionsDisabled:Z
         3: .line 41
            ldc Lio/netty/channel/AbstractChannelHandlerContext;
            invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
            putstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
         4: .line 46
            ldc Lio/netty/channel/AbstractChannelHandlerContext;
            ldc "handlerState"
            invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
         5: .line 45
            putstatic io.netty.channel.AbstractChannelHandlerContext.HANDLER_STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
         6: .line 64
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(io.netty.channel.DefaultChannelPipeline, io.netty.util.concurrent.EventExecutor, java.lang.String, boolean, boolean);
    descriptor: (Lio/netty/channel/DefaultChannelPipeline;Lio/netty/util/concurrent/EventExecutor;Ljava/lang/String;ZZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.channel.DefaultChannelPipeline pipeline
        start local 2 // io.netty.util.concurrent.EventExecutor executor
        start local 3 // java.lang.String name
        start local 4 // boolean inbound
        start local 5 // boolean outbound
         0: .line 86
            aload 0 /* this */
            invokespecial io.netty.util.DefaultAttributeMap.<init>:()V
         1: .line 84
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.AbstractChannelHandlerContext.handlerState:I
         2: .line 88
            aload 0 /* this */
            aload 3 /* name */
            ldc "name"
            invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield io.netty.channel.AbstractChannelHandlerContext.name:Ljava/lang/String;
         3: .line 89
            aload 0 /* this */
            aload 1 /* pipeline */
            putfield io.netty.channel.AbstractChannelHandlerContext.pipeline:Lio/netty/channel/DefaultChannelPipeline;
         4: .line 90
            aload 0 /* this */
            aload 2 /* executor */
            putfield io.netty.channel.AbstractChannelHandlerContext.executor:Lio/netty/util/concurrent/EventExecutor;
         5: .line 91
            aload 0 /* this */
            iload 4 /* inbound */
            putfield io.netty.channel.AbstractChannelHandlerContext.inbound:Z
         6: .line 92
            aload 0 /* this */
            iload 5 /* outbound */
            putfield io.netty.channel.AbstractChannelHandlerContext.outbound:Z
         7: .line 94
            aload 0 /* this */
            aload 2 /* executor */
            ifnull 8
            aload 2 /* executor */
            instanceof io.netty.util.concurrent.OrderedEventExecutor
            ifne 8
            iconst_0
            goto 9
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext io.netty.channel.DefaultChannelPipeline io.netty.util.concurrent.EventExecutor java.lang.String int int
      StackMap stack: io.netty.channel.AbstractChannelHandlerContext
         8: iconst_1
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext io.netty.channel.DefaultChannelPipeline io.netty.util.concurrent.EventExecutor java.lang.String int int
      StackMap stack: io.netty.channel.AbstractChannelHandlerContext int
         9: putfield io.netty.channel.AbstractChannelHandlerContext.ordered:Z
        10: .line 95
            return
        end local 5 // boolean outbound
        end local 4 // boolean inbound
        end local 3 // java.lang.String name
        end local 2 // io.netty.util.concurrent.EventExecutor executor
        end local 1 // io.netty.channel.DefaultChannelPipeline pipeline
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   11     1  pipeline  Lio/netty/channel/DefaultChannelPipeline;
            0   11     2  executor  Lio/netty/util/concurrent/EventExecutor;
            0   11     3      name  Ljava/lang/String;
            0   11     4   inbound  Z
            0   11     5  outbound  Z
    MethodParameters:
          Name  Flags
      pipeline  
      executor  
      name      
      inbound   
      outbound  

  public io.netty.channel.Channel channel();
    descriptor: ()Lio/netty/channel/Channel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 99
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.channel:()Lio/netty/channel/Channel;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.channel.ChannelPipeline pipeline();
    descriptor: ()Lio/netty/channel/ChannelPipeline;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 104
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.buffer.ByteBufAllocator alloc();
    descriptor: ()Lio/netty/buffer/ByteBufAllocator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 109
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
            invokeinterface io.netty.channel.ChannelConfig.getAllocator:()Lio/netty/buffer/ByteBufAllocator;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.util.concurrent.EventExecutor executor();
    descriptor: ()Lio/netty/util/concurrent/EventExecutor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 114
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.executor:Lio/netty/util/concurrent/EventExecutor;
            ifnonnull 2
         1: .line 115
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
            areturn
         2: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.executor:Lio/netty/util/concurrent/EventExecutor;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 123
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.name:Ljava/lang/String;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.channel.ChannelHandlerContext fireChannelRegistered();
    descriptor: ()Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 128
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextInbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            invokestatic io.netty.channel.AbstractChannelHandlerContext.invokeChannelRegistered:(Lio/netty/channel/AbstractChannelHandlerContext;)V
         1: .line 129
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  static void invokeChannelRegistered(io.netty.channel.AbstractChannelHandlerContext);
    descriptor: (Lio/netty/channel/AbstractChannelHandlerContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext next
         0: .line 133
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 1 /* executor */
        start local 1 // io.netty.util.concurrent.EventExecutor executor
         1: .line 134
            aload 1 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 4
         2: .line 135
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeChannelRegistered:()V
         3: .line 136
            goto 5
         4: .line 137
      StackMap locals: io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 1 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$1
            dup
            aload 0 /* next */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$1.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;)V
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         5: .line 144
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.util.concurrent.EventExecutor executor
        end local 0 // io.netty.channel.AbstractChannelHandlerContext next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      next  Lio/netty/channel/AbstractChannelHandlerContext;
            1    6     1  executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
      Name  Flags
      next  final

  private void invokeChannelRegistered();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 147
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 149
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelInboundHandler
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelInboundHandler.channelRegistered:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 150
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 151
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
         5: .line 153
            goto 7
         6: .line 154
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelRegistered:()Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 156
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable

  public io.netty.channel.ChannelHandlerContext fireChannelUnregistered();
    descriptor: ()Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 160
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextInbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            invokestatic io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered:(Lio/netty/channel/AbstractChannelHandlerContext;)V
         1: .line 161
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  static void invokeChannelUnregistered(io.netty.channel.AbstractChannelHandlerContext);
    descriptor: (Lio/netty/channel/AbstractChannelHandlerContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext next
         0: .line 165
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 1 /* executor */
        start local 1 // io.netty.util.concurrent.EventExecutor executor
         1: .line 166
            aload 1 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 4
         2: .line 167
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered:()V
         3: .line 168
            goto 5
         4: .line 169
      StackMap locals: io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 1 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$2
            dup
            aload 0 /* next */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$2.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;)V
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         5: .line 176
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.util.concurrent.EventExecutor executor
        end local 0 // io.netty.channel.AbstractChannelHandlerContext next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      next  Lio/netty/channel/AbstractChannelHandlerContext;
            1    6     1  executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
      Name  Flags
      next  final

  private void invokeChannelUnregistered();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 179
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 181
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelInboundHandler
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelInboundHandler.channelUnregistered:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 182
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 183
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
         5: .line 185
            goto 7
         6: .line 186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered:()Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 188
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable

  public io.netty.channel.ChannelHandlerContext fireChannelActive();
    descriptor: ()Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 192
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextInbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            invokestatic io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive:(Lio/netty/channel/AbstractChannelHandlerContext;)V
         1: .line 193
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  static void invokeChannelActive(io.netty.channel.AbstractChannelHandlerContext);
    descriptor: (Lio/netty/channel/AbstractChannelHandlerContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext next
         0: .line 197
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 1 /* executor */
        start local 1 // io.netty.util.concurrent.EventExecutor executor
         1: .line 198
            aload 1 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 4
         2: .line 199
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive:()V
         3: .line 200
            goto 5
         4: .line 201
      StackMap locals: io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 1 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$3
            dup
            aload 0 /* next */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$3.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;)V
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         5: .line 208
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.util.concurrent.EventExecutor executor
        end local 0 // io.netty.channel.AbstractChannelHandlerContext next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      next  Lio/netty/channel/AbstractChannelHandlerContext;
            1    6     1  executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
      Name  Flags
      next  final

  private void invokeChannelActive();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 211
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 213
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelInboundHandler
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelInboundHandler.channelActive:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 214
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 215
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
         5: .line 217
            goto 7
         6: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelActive:()Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 220
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable

  public io.netty.channel.ChannelHandlerContext fireChannelInactive();
    descriptor: ()Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 224
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextInbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            invokestatic io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive:(Lio/netty/channel/AbstractChannelHandlerContext;)V
         1: .line 225
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  static void invokeChannelInactive(io.netty.channel.AbstractChannelHandlerContext);
    descriptor: (Lio/netty/channel/AbstractChannelHandlerContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext next
         0: .line 229
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 1 /* executor */
        start local 1 // io.netty.util.concurrent.EventExecutor executor
         1: .line 230
            aload 1 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 4
         2: .line 231
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive:()V
         3: .line 232
            goto 5
         4: .line 233
      StackMap locals: io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 1 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$4
            dup
            aload 0 /* next */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$4.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;)V
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         5: .line 240
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.util.concurrent.EventExecutor executor
        end local 0 // io.netty.channel.AbstractChannelHandlerContext next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      next  Lio/netty/channel/AbstractChannelHandlerContext;
            1    6     1  executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
      Name  Flags
      next  final

  private void invokeChannelInactive();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 243
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 245
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelInboundHandler
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelInboundHandler.channelInactive:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 246
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 247
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
         5: .line 249
            goto 7
         6: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive:()Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 252
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable

  public io.netty.channel.ChannelHandlerContext fireExceptionCaught(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Throwable cause
         0: .line 256
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.next:Lio/netty/channel/AbstractChannelHandlerContext;
            aload 1 /* cause */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught:(Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Throwable;)V
         1: .line 257
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    2     1  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      cause  final

  static void invokeExceptionCaught(io.netty.channel.AbstractChannelHandlerContext, java.lang.Throwable);
    descriptor: (Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Throwable;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext next
        start local 1 // java.lang.Throwable cause
         0: .line 261
            aload 1 /* cause */
            ldc "cause"
            invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 262
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 2 /* executor */
        start local 2 // io.netty.util.concurrent.EventExecutor executor
         2: .line 263
            aload 2 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 5
         3: .line 264
            aload 0 /* next */
            aload 1 /* cause */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught:(Ljava/lang/Throwable;)V
         4: .line 265
            goto 11
         5: .line 267
      StackMap locals: io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 2 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$5
            dup
            aload 0 /* next */
            aload 1 /* cause */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$5.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Throwable;)V
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         6: .line 273
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         8: .line 274
            getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isWarnEnabled:()Z
            ifeq 11
         9: .line 275
            getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to submit an exceptionCaught() event."
            aload 3 /* t */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        10: .line 276
            getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "The exceptionCaught() event that was failed to submit was:"
            aload 1 /* cause */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable t
        11: .line 280
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.util.concurrent.EventExecutor executor
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.AbstractChannelHandlerContext next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      next  Lio/netty/channel/AbstractChannelHandlerContext;
            0   12     1     cause  Ljava/lang/Throwable;
            2   12     2  executor  Lio/netty/util/concurrent/EventExecutor;
            8   11     3         t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Throwable
    MethodParameters:
       Name  Flags
      next   final
      cause  final

  private void invokeExceptionCaught(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Throwable cause
         0: .line 283
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 16
         1: .line 285
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            aload 0 /* this */
            aload 1 /* cause */
            invokeinterface io.netty.channel.ChannelHandler.exceptionCaught:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
         2: .line 286
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2 /* error */
        start local 2 // java.lang.Throwable error
         4: .line 287
            getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isDebugEnabled:()Z
            ifeq 10
         5: .line 288
            getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
         6: .line 289
            ldc "An exception {}was thrown by a user handler's exceptionCaught() method while handling the following exception:"
         7: .line 292
            aload 2 /* error */
            invokestatic io.netty.util.internal.ThrowableUtil.stackTraceToString:(Ljava/lang/Throwable;)Ljava/lang/String;
            aload 1 /* cause */
         8: .line 288
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 293
            goto 17
      StackMap locals: java.lang.Throwable
      StackMap stack:
        10: getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isWarnEnabled:()Z
            ifeq 17
        11: .line 294
            getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
        12: .line 295
            ldc "An exception '{}' [enable DEBUG level for full stacktrace] was thrown by a user handler's exceptionCaught() method while handling the following exception:"
        13: .line 297
            aload 2 /* error */
            aload 1 /* cause */
        14: .line 294
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 2 // java.lang.Throwable error
        15: .line 300
            goto 17
        16: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cause */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelHandlerContext;
            pop
        17: .line 303
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   18     1  cause  Ljava/lang/Throwable;
            4   15     2  error  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    MethodParameters:
       Name  Flags
      cause  final

  public io.netty.channel.ChannelHandlerContext fireUserEventTriggered(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object event
         0: .line 307
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextInbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            aload 1 /* event */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered:(Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Object;)V
         1: .line 308
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object event
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    2     1  event  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      event  final

  static void invokeUserEventTriggered(io.netty.channel.AbstractChannelHandlerContext, java.lang.Object);
    descriptor: (Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Object;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext next
        start local 1 // java.lang.Object event
         0: .line 312
            aload 1 /* event */
            ldc "event"
            invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 313
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 2 /* executor */
        start local 2 // io.netty.util.concurrent.EventExecutor executor
         2: .line 314
            aload 2 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 5
         3: .line 315
            aload 0 /* next */
            aload 1 /* event */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeUserEventTriggered:(Ljava/lang/Object;)V
         4: .line 316
            goto 6
         5: .line 317
      StackMap locals: io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 2 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$6
            dup
            aload 0 /* next */
            aload 1 /* event */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$6.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Object;)V
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         6: .line 324
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.util.concurrent.EventExecutor executor
        end local 1 // java.lang.Object event
        end local 0 // io.netty.channel.AbstractChannelHandlerContext next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      next  Lio/netty/channel/AbstractChannelHandlerContext;
            0    7     1     event  Ljava/lang/Object;
            2    7     2  executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
       Name  Flags
      next   final
      event  final

  private void invokeUserEventTriggered(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object event
         0: .line 327
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 329
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelInboundHandler
            aload 0 /* this */
            aload 1 /* event */
            invokeinterface io.netty.channel.ChannelInboundHandler.userEventTriggered:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
         2: .line 330
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 331
            aload 0 /* this */
            aload 2 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable t
         5: .line 333
            goto 7
         6: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 336
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object event
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    8     1  event  Ljava/lang/Object;
            4    5     2      t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    MethodParameters:
       Name  Flags
      event  

  public io.netty.channel.ChannelHandlerContext fireChannelRead(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
         0: .line 340
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextInbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            aload 1 /* msg */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead:(Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Object;)V
         1: .line 341
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    2     1   msg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msg   final

  static void invokeChannelRead(io.netty.channel.AbstractChannelHandlerContext, java.lang.Object);
    descriptor: (Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Object;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext next
        start local 1 // java.lang.Object msg
         0: .line 345
            aload 0 /* next */
            getfield io.netty.channel.AbstractChannelHandlerContext.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* msg */
            ldc "msg"
            invokestatic io.netty.util.internal.ObjectUtil.checkNotNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            aload 0 /* next */
            invokevirtual io.netty.channel.DefaultChannelPipeline.touch:(Ljava/lang/Object;Lio/netty/channel/AbstractChannelHandlerContext;)Ljava/lang/Object;
            astore 2 /* m */
        start local 2 // java.lang.Object m
         1: .line 346
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 3 /* executor */
        start local 3 // io.netty.util.concurrent.EventExecutor executor
         2: .line 347
            aload 3 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 5
         3: .line 348
            aload 0 /* next */
            aload 2 /* m */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead:(Ljava/lang/Object;)V
         4: .line 349
            goto 6
         5: .line 350
      StackMap locals: java.lang.Object io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 3 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$7
            dup
            aload 0 /* next */
            aload 2 /* m */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$7.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Object;)V
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         6: .line 357
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.netty.util.concurrent.EventExecutor executor
        end local 2 // java.lang.Object m
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      next  Lio/netty/channel/AbstractChannelHandlerContext;
            0    7     1       msg  Ljava/lang/Object;
            1    7     2         m  Ljava/lang/Object;
            2    7     3  executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
      Name  Flags
      next  final
      msg   

  private void invokeChannelRead(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
         0: .line 360
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 362
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelInboundHandler
            aload 0 /* this */
            aload 1 /* msg */
            invokeinterface io.netty.channel.ChannelInboundHandler.channelRead:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
         2: .line 363
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 364
            aload 0 /* this */
            aload 2 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable t
         5: .line 366
            goto 7
         6: .line 367
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 369
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    8     1   msg  Ljava/lang/Object;
            4    5     2     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      msg   

  public io.netty.channel.ChannelHandlerContext fireChannelReadComplete();
    descriptor: ()Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 373
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextInbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            invokestatic io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete:(Lio/netty/channel/AbstractChannelHandlerContext;)V
         1: .line 374
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  static void invokeChannelReadComplete(io.netty.channel.AbstractChannelHandlerContext);
    descriptor: (Lio/netty/channel/AbstractChannelHandlerContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext next
         0: .line 378
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 1 /* executor */
        start local 1 // io.netty.util.concurrent.EventExecutor executor
         1: .line 379
            aload 1 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 4
         2: .line 380
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadComplete:()V
         3: .line 381
            goto 8
         4: .line 382
      StackMap locals: io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 0 /* next */
            getfield io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadCompleteTask:Ljava/lang/Runnable;
            astore 2 /* task */
        start local 2 // java.lang.Runnable task
         5: .line 383
            aload 2 /* task */
            ifnonnull 7
         6: .line 384
            aload 0 /* next */
            new io.netty.channel.AbstractChannelHandlerContext$8
            dup
            aload 0 /* next */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$8.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;)V
            dup
            astore 2 /* task */
            putfield io.netty.channel.AbstractChannelHandlerContext.invokeChannelReadCompleteTask:Ljava/lang/Runnable;
         7: .line 391
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 1 /* executor */
            aload 2 /* task */
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
        end local 2 // java.lang.Runnable task
         8: .line 393
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.util.concurrent.EventExecutor executor
        end local 0 // io.netty.channel.AbstractChannelHandlerContext next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      next  Lio/netty/channel/AbstractChannelHandlerContext;
            1    9     1  executor  Lio/netty/util/concurrent/EventExecutor;
            5    8     2      task  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      next  final

  private void invokeChannelReadComplete();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 396
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 398
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelInboundHandler
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelInboundHandler.channelReadComplete:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 399
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 400
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
         5: .line 402
            goto 7
         6: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelReadComplete:()Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 405
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable

  public io.netty.channel.ChannelHandlerContext fireChannelWritabilityChanged();
    descriptor: ()Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 409
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextInbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            invokestatic io.netty.channel.AbstractChannelHandlerContext.invokeChannelWritabilityChanged:(Lio/netty/channel/AbstractChannelHandlerContext;)V
         1: .line 410
            aload 0 /* this */
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  static void invokeChannelWritabilityChanged(io.netty.channel.AbstractChannelHandlerContext);
    descriptor: (Lio/netty/channel/AbstractChannelHandlerContext;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext next
         0: .line 414
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 1 /* executor */
        start local 1 // io.netty.util.concurrent.EventExecutor executor
         1: .line 415
            aload 1 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 4
         2: .line 416
            aload 0 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeChannelWritabilityChanged:()V
         3: .line 417
            goto 8
         4: .line 418
      StackMap locals: io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 0 /* next */
            getfield io.netty.channel.AbstractChannelHandlerContext.invokeChannelWritableStateChangedTask:Ljava/lang/Runnable;
            astore 2 /* task */
        start local 2 // java.lang.Runnable task
         5: .line 419
            aload 2 /* task */
            ifnonnull 7
         6: .line 420
            aload 0 /* next */
            new io.netty.channel.AbstractChannelHandlerContext$9
            dup
            aload 0 /* next */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$9.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;)V
            dup
            astore 2 /* task */
            putfield io.netty.channel.AbstractChannelHandlerContext.invokeChannelWritableStateChangedTask:Ljava/lang/Runnable;
         7: .line 427
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 1 /* executor */
            aload 2 /* task */
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
        end local 2 // java.lang.Runnable task
         8: .line 429
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.util.concurrent.EventExecutor executor
        end local 0 // io.netty.channel.AbstractChannelHandlerContext next
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      next  Lio/netty/channel/AbstractChannelHandlerContext;
            1    9     1  executor  Lio/netty/util/concurrent/EventExecutor;
            5    8     2      task  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      next  final

  private void invokeChannelWritabilityChanged();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 432
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 434
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelInboundHandler
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelInboundHandler.channelWritabilityChanged:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 435
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 436
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
         5: .line 438
            goto 7
         6: .line 439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelWritabilityChanged:()Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 441
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable

  public io.netty.channel.ChannelFuture bind(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.net.SocketAddress localAddress
         0: .line 445
            aload 0 /* this */
            aload 1 /* localAddress */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.bind:(Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    1     1  localAddress  Ljava/net/SocketAddress;
    MethodParameters:
              Name  Flags
      localAddress  

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.net.SocketAddress remoteAddress
         0: .line 450
            aload 0 /* this */
            aload 1 /* remoteAddress */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.connect:(Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    1     1  remoteAddress  Ljava/net/SocketAddress;
    MethodParameters:
               Name  Flags
      remoteAddress  

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, java.net.SocketAddress);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.net.SocketAddress remoteAddress
        start local 2 // java.net.SocketAddress localAddress
         0: .line 455
            aload 0 /* this */
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.connect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // java.net.SocketAddress localAddress
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    1     1  remoteAddress  Ljava/net/SocketAddress;
            0    1     2   localAddress  Ljava/net/SocketAddress;
    MethodParameters:
               Name  Flags
      remoteAddress  
      localAddress   

  public io.netty.channel.ChannelFuture disconnect();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 460
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.disconnect:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.channel.ChannelFuture close();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 465
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.close:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.channel.ChannelFuture deregister();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 470
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.deregister:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.channel.ChannelFuture bind(java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.net.SocketAddress localAddress
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 475
            aload 1 /* localAddress */
            ifnonnull 2
         1: .line 476
            new java.lang.NullPointerException
            dup
            ldc "localAddress"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 478
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* promise */
            iconst_0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.isNotValidPromise:(Lio/netty/channel/ChannelPromise;Z)Z
            ifeq 4
         3: .line 480
            aload 2 /* promise */
            areturn
         4: .line 483
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextOutbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            astore 3 /* next */
        start local 3 // io.netty.channel.AbstractChannelHandlerContext next
         5: .line 484
            aload 3 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 4 /* executor */
        start local 4 // io.netty.util.concurrent.EventExecutor executor
         6: .line 485
            aload 4 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 9
         7: .line 486
            aload 3 /* next */
            aload 1 /* localAddress */
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeBind:(Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
         8: .line 487
            goto 12
         9: .line 488
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 4 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$10
            dup
            aload 0 /* this */
            aload 3 /* next */
            aload 1 /* localAddress */
            aload 2 /* promise */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$10.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/AbstractChannelHandlerContext;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
        10: .line 493
            aload 2 /* promise */
            aconst_null
        11: .line 488
            invokestatic io.netty.channel.AbstractChannelHandlerContext.safeExecute:(Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Runnable;Lio/netty/channel/ChannelPromise;Ljava/lang/Object;)V
        12: .line 495
      StackMap locals:
      StackMap stack:
            aload 2 /* promise */
            areturn
        end local 4 // io.netty.util.concurrent.EventExecutor executor
        end local 3 // io.netty.channel.AbstractChannelHandlerContext next
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   13     1  localAddress  Ljava/net/SocketAddress;
            0   13     2       promise  Lio/netty/channel/ChannelPromise;
            5   13     3          next  Lio/netty/channel/AbstractChannelHandlerContext;
            6   13     4      executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
              Name  Flags
      localAddress  final
      promise       final

  private void invokeBind(java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.net.SocketAddress localAddress
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 499
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 501
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelOutboundHandler
            aload 0 /* this */
            aload 1 /* localAddress */
            aload 2 /* promise */
            invokeinterface io.netty.channel.ChannelOutboundHandler.bind:(Lio/netty/channel/ChannelHandlerContext;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
         2: .line 502
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         4: .line 503
            aload 3 /* t */
            aload 2 /* promise */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.notifyOutboundHandlerException:(Ljava/lang/Throwable;Lio/netty/channel/ChannelPromise;)V
        end local 3 // java.lang.Throwable t
         5: .line 505
            goto 7
         6: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* localAddress */
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.bind:(Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         7: .line 508
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    8     1  localAddress  Ljava/net/SocketAddress;
            0    8     2       promise  Lio/netty/channel/ChannelPromise;
            4    5     3             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    MethodParameters:
              Name  Flags
      localAddress  
      promise       

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.net.SocketAddress remoteAddress
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 512
            aload 0 /* this */
            aload 1 /* remoteAddress */
            aconst_null
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.connect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    1     1  remoteAddress  Ljava/net/SocketAddress;
            0    1     2        promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
               Name  Flags
      remoteAddress  
      promise        

  public io.netty.channel.ChannelFuture connect(java.net.SocketAddress, java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.net.SocketAddress remoteAddress
        start local 2 // java.net.SocketAddress localAddress
        start local 3 // io.netty.channel.ChannelPromise promise
         0: .line 519
            aload 1 /* remoteAddress */
            ifnonnull 2
         1: .line 520
            new java.lang.NullPointerException
            dup
            ldc "remoteAddress"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 522
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* promise */
            iconst_0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.isNotValidPromise:(Lio/netty/channel/ChannelPromise;Z)Z
            ifeq 4
         3: .line 524
            aload 3 /* promise */
            areturn
         4: .line 527
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextOutbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            astore 4 /* next */
        start local 4 // io.netty.channel.AbstractChannelHandlerContext next
         5: .line 528
            aload 4 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 5 /* executor */
        start local 5 // io.netty.util.concurrent.EventExecutor executor
         6: .line 529
            aload 5 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 9
         7: .line 530
            aload 4 /* next */
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            aload 3 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeConnect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
         8: .line 531
            goto 12
         9: .line 532
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 5 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$11
            dup
            aload 0 /* this */
            aload 4 /* next */
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            aload 3 /* promise */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$11.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/AbstractChannelHandlerContext;Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
        10: .line 537
            aload 3 /* promise */
            aconst_null
        11: .line 532
            invokestatic io.netty.channel.AbstractChannelHandlerContext.safeExecute:(Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Runnable;Lio/netty/channel/ChannelPromise;Ljava/lang/Object;)V
        12: .line 539
      StackMap locals:
      StackMap stack:
            aload 3 /* promise */
            areturn
        end local 5 // io.netty.util.concurrent.EventExecutor executor
        end local 4 // io.netty.channel.AbstractChannelHandlerContext next
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // java.net.SocketAddress localAddress
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   13     1  remoteAddress  Ljava/net/SocketAddress;
            0   13     2   localAddress  Ljava/net/SocketAddress;
            0   13     3        promise  Lio/netty/channel/ChannelPromise;
            5   13     4           next  Lio/netty/channel/AbstractChannelHandlerContext;
            6   13     5       executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
               Name  Flags
      remoteAddress  final
      localAddress   final
      promise        final

  private void invokeConnect(java.net.SocketAddress, java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.net.SocketAddress remoteAddress
        start local 2 // java.net.SocketAddress localAddress
        start local 3 // io.netty.channel.ChannelPromise promise
         0: .line 543
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 545
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelOutboundHandler
            aload 0 /* this */
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            aload 3 /* promise */
            invokeinterface io.netty.channel.ChannelOutboundHandler.connect:(Lio/netty/channel/ChannelHandlerContext;Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
         2: .line 546
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 4 /* t */
        start local 4 // java.lang.Throwable t
         4: .line 547
            aload 4 /* t */
            aload 3 /* promise */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.notifyOutboundHandlerException:(Ljava/lang/Throwable;Lio/netty/channel/ChannelPromise;)V
        end local 4 // java.lang.Throwable t
         5: .line 549
            goto 7
         6: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* remoteAddress */
            aload 2 /* localAddress */
            aload 3 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.connect:(Ljava/net/SocketAddress;Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         7: .line 552
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // java.net.SocketAddress localAddress
        end local 1 // java.net.SocketAddress remoteAddress
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    8     1  remoteAddress  Ljava/net/SocketAddress;
            0    8     2   localAddress  Ljava/net/SocketAddress;
            0    8     3        promise  Lio/netty/channel/ChannelPromise;
            4    5     4              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    MethodParameters:
               Name  Flags
      remoteAddress  
      localAddress   
      promise        

  public io.netty.channel.ChannelFuture disconnect(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 556
            aload 0 /* this */
            aload 1 /* promise */
            iconst_0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.isNotValidPromise:(Lio/netty/channel/ChannelPromise;Z)Z
            ifeq 2
         1: .line 558
            aload 1 /* promise */
            areturn
         2: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextOutbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            astore 2 /* next */
        start local 2 // io.netty.channel.AbstractChannelHandlerContext next
         3: .line 562
            aload 2 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 3 /* executor */
        start local 3 // io.netty.util.concurrent.EventExecutor executor
         4: .line 563
            aload 3 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 10
         5: .line 566
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.metadata:()Lio/netty/channel/ChannelMetadata;
            invokevirtual io.netty.channel.ChannelMetadata.hasDisconnect:()Z
            ifne 8
         6: .line 567
            aload 2 /* next */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeClose:(Lio/netty/channel/ChannelPromise;)V
         7: .line 568
            goto 13
         8: .line 569
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 2 /* next */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeDisconnect:(Lio/netty/channel/ChannelPromise;)V
         9: .line 571
            goto 13
        10: .line 572
      StackMap locals:
      StackMap stack:
            aload 3 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$12
            dup
            aload 0 /* this */
            aload 2 /* next */
            aload 1 /* promise */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$12.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
        11: .line 581
            aload 1 /* promise */
            aconst_null
        12: .line 572
            invokestatic io.netty.channel.AbstractChannelHandlerContext.safeExecute:(Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Runnable;Lio/netty/channel/ChannelPromise;Ljava/lang/Object;)V
        13: .line 583
      StackMap locals:
      StackMap stack:
            aload 1 /* promise */
            areturn
        end local 3 // io.netty.util.concurrent.EventExecutor executor
        end local 2 // io.netty.channel.AbstractChannelHandlerContext next
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   14     1   promise  Lio/netty/channel/ChannelPromise;
            3   14     2      next  Lio/netty/channel/AbstractChannelHandlerContext;
            4   14     3  executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
         Name  Flags
      promise  final

  private void invokeDisconnect(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 587
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 589
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelOutboundHandler
            aload 0 /* this */
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelOutboundHandler.disconnect:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
         2: .line 590
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 591
            aload 2 /* t */
            aload 1 /* promise */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.notifyOutboundHandlerException:(Ljava/lang/Throwable;Lio/netty/channel/ChannelPromise;)V
        end local 2 // java.lang.Throwable t
         5: .line 593
            goto 7
         6: .line 594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.disconnect:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         7: .line 596
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    8     1  promise  Lio/netty/channel/ChannelPromise;
            4    5     2        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      promise  

  public io.netty.channel.ChannelFuture close(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 600
            aload 0 /* this */
            aload 1 /* promise */
            iconst_0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.isNotValidPromise:(Lio/netty/channel/ChannelPromise;Z)Z
            ifeq 2
         1: .line 602
            aload 1 /* promise */
            areturn
         2: .line 605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextOutbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            astore 2 /* next */
        start local 2 // io.netty.channel.AbstractChannelHandlerContext next
         3: .line 606
            aload 2 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 3 /* executor */
        start local 3 // io.netty.util.concurrent.EventExecutor executor
         4: .line 607
            aload 3 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 7
         5: .line 608
            aload 2 /* next */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeClose:(Lio/netty/channel/ChannelPromise;)V
         6: .line 609
            goto 10
         7: .line 610
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 3 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$13
            dup
            aload 0 /* this */
            aload 2 /* next */
            aload 1 /* promise */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$13.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
         8: .line 615
            aload 1 /* promise */
            aconst_null
         9: .line 610
            invokestatic io.netty.channel.AbstractChannelHandlerContext.safeExecute:(Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Runnable;Lio/netty/channel/ChannelPromise;Ljava/lang/Object;)V
        10: .line 618
      StackMap locals:
      StackMap stack:
            aload 1 /* promise */
            areturn
        end local 3 // io.netty.util.concurrent.EventExecutor executor
        end local 2 // io.netty.channel.AbstractChannelHandlerContext next
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   11     1   promise  Lio/netty/channel/ChannelPromise;
            3   11     2      next  Lio/netty/channel/AbstractChannelHandlerContext;
            4   11     3  executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
         Name  Flags
      promise  final

  private void invokeClose(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 622
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 624
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelOutboundHandler
            aload 0 /* this */
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelOutboundHandler.close:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
         2: .line 625
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 626
            aload 2 /* t */
            aload 1 /* promise */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.notifyOutboundHandlerException:(Ljava/lang/Throwable;Lio/netty/channel/ChannelPromise;)V
        end local 2 // java.lang.Throwable t
         5: .line 628
            goto 7
         6: .line 629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.close:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         7: .line 631
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    8     1  promise  Lio/netty/channel/ChannelPromise;
            4    5     2        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      promise  

  public io.netty.channel.ChannelFuture deregister(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 635
            aload 0 /* this */
            aload 1 /* promise */
            iconst_0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.isNotValidPromise:(Lio/netty/channel/ChannelPromise;Z)Z
            ifeq 2
         1: .line 637
            aload 1 /* promise */
            areturn
         2: .line 640
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextOutbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            astore 2 /* next */
        start local 2 // io.netty.channel.AbstractChannelHandlerContext next
         3: .line 641
            aload 2 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 3 /* executor */
        start local 3 // io.netty.util.concurrent.EventExecutor executor
         4: .line 642
            aload 3 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 7
         5: .line 643
            aload 2 /* next */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeDeregister:(Lio/netty/channel/ChannelPromise;)V
         6: .line 644
            goto 10
         7: .line 645
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 3 /* executor */
            new io.netty.channel.AbstractChannelHandlerContext$14
            dup
            aload 0 /* this */
            aload 2 /* next */
            aload 1 /* promise */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$14.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
         8: .line 650
            aload 1 /* promise */
            aconst_null
         9: .line 645
            invokestatic io.netty.channel.AbstractChannelHandlerContext.safeExecute:(Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Runnable;Lio/netty/channel/ChannelPromise;Ljava/lang/Object;)V
        10: .line 653
      StackMap locals:
      StackMap stack:
            aload 1 /* promise */
            areturn
        end local 3 // io.netty.util.concurrent.EventExecutor executor
        end local 2 // io.netty.channel.AbstractChannelHandlerContext next
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   11     1   promise  Lio/netty/channel/ChannelPromise;
            3   11     2      next  Lio/netty/channel/AbstractChannelHandlerContext;
            4   11     3  executor  Lio/netty/util/concurrent/EventExecutor;
    MethodParameters:
         Name  Flags
      promise  final

  private void invokeDeregister(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 657
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 659
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelOutboundHandler
            aload 0 /* this */
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelOutboundHandler.deregister:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
         2: .line 660
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         4: .line 661
            aload 2 /* t */
            aload 1 /* promise */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.notifyOutboundHandlerException:(Ljava/lang/Throwable;Lio/netty/channel/ChannelPromise;)V
        end local 2 // java.lang.Throwable t
         5: .line 663
            goto 7
         6: .line 664
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.deregister:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         7: .line 666
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    8     1  promise  Lio/netty/channel/ChannelPromise;
            4    5     2        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      promise  

  public io.netty.channel.ChannelHandlerContext read();
    descriptor: ()Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 670
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextOutbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            astore 1 /* next */
        start local 1 // io.netty.channel.AbstractChannelHandlerContext next
         1: .line 671
            aload 1 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 2 /* executor */
        start local 2 // io.netty.util.concurrent.EventExecutor executor
         2: .line 672
            aload 2 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 5
         3: .line 673
            aload 1 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeRead:()V
         4: .line 674
            goto 9
         5: .line 675
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 1 /* next */
            getfield io.netty.channel.AbstractChannelHandlerContext.invokeReadTask:Ljava/lang/Runnable;
            astore 3 /* task */
        start local 3 // java.lang.Runnable task
         6: .line 676
            aload 3 /* task */
            ifnonnull 8
         7: .line 677
            aload 1 /* next */
            new io.netty.channel.AbstractChannelHandlerContext$15
            dup
            aload 0 /* this */
            aload 1 /* next */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$15.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/AbstractChannelHandlerContext;)V
            dup
            astore 3 /* task */
            putfield io.netty.channel.AbstractChannelHandlerContext.invokeReadTask:Ljava/lang/Runnable;
         8: .line 684
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 2 /* executor */
            aload 3 /* task */
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
        end local 3 // java.lang.Runnable task
         9: .line 687
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 2 // io.netty.util.concurrent.EventExecutor executor
        end local 1 // io.netty.channel.AbstractChannelHandlerContext next
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lio/netty/channel/AbstractChannelHandlerContext;
            1   10     1      next  Lio/netty/channel/AbstractChannelHandlerContext;
            2   10     2  executor  Lio/netty/util/concurrent/EventExecutor;
            6    9     3      task  Ljava/lang/Runnable;

  private void invokeRead();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 691
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 6
         1: .line 693
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelOutboundHandler
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelOutboundHandler.read:(Lio/netty/channel/ChannelHandlerContext;)V
         2: .line 694
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         4: .line 695
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
         5: .line 697
            goto 7
         6: .line 698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.read:()Lio/netty/channel/ChannelHandlerContext;
            pop
         7: .line 700
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            4    5     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Throwable

  public io.netty.channel.ChannelFuture write(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
         0: .line 704
            aload 0 /* this */
            aload 1 /* msg */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    1     1   msg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msg   

  public io.netty.channel.ChannelFuture write(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 709
            aload 1 /* msg */
            ifnonnull 2
         1: .line 710
            new java.lang.NullPointerException
            dup
            ldc "msg"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* promise */
            iconst_1
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.isNotValidPromise:(Lio/netty/channel/ChannelPromise;Z)Z
            ifeq 9
         3: .line 715
            aload 1 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
            pop
         4: .line 717
            aload 2 /* promise */
         5: areturn
         6: .line 719
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         7: .line 720
            aload 1 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
            pop
         8: .line 721
            aload 3 /* e */
            athrow
        end local 3 // java.lang.RuntimeException e
         9: .line 723
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            iconst_0
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.write:(Ljava/lang/Object;ZLio/netty/channel/ChannelPromise;)V
        10: .line 725
            aload 2 /* promise */
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   11     1      msg  Ljava/lang/Object;
            0   11     2  promise  Lio/netty/channel/ChannelPromise;
            7    9     3        e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.RuntimeException
    MethodParameters:
         Name  Flags
      msg      final
      promise  final

  private void invokeWrite(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 729
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 3
         1: .line 730
            aload 0 /* this */
            aload 1 /* msg */
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeWrite0:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
         2: .line 731
            goto 4
         3: .line 732
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         4: .line 734
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    5     1      msg  Ljava/lang/Object;
            0    5     2  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      msg      
      promise  

  private void invokeWrite0(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 738
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelOutboundHandler
            aload 0 /* this */
            aload 1 /* msg */
            aload 2 /* promise */
            invokeinterface io.netty.channel.ChannelOutboundHandler.write:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
         1: .line 739
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         3: .line 740
            aload 3 /* t */
            aload 2 /* promise */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.notifyOutboundHandlerException:(Ljava/lang/Throwable;Lio/netty/channel/ChannelPromise;)V
        end local 3 // java.lang.Throwable t
         4: .line 742
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    5     1      msg  Ljava/lang/Object;
            0    5     2  promise  Lio/netty/channel/ChannelPromise;
            3    4     3        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      msg      
      promise  

  public io.netty.channel.ChannelHandlerContext flush();
    descriptor: ()Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 746
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextOutbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            astore 1 /* next */
        start local 1 // io.netty.channel.AbstractChannelHandlerContext next
         1: .line 747
            aload 1 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 2 /* executor */
        start local 2 // io.netty.util.concurrent.EventExecutor executor
         2: .line 748
            aload 2 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 5
         3: .line 749
            aload 1 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeFlush:()V
         4: .line 750
            goto 9
         5: .line 751
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 1 /* next */
            getfield io.netty.channel.AbstractChannelHandlerContext.invokeFlushTask:Ljava/lang/Runnable;
            astore 3 /* task */
        start local 3 // java.lang.Runnable task
         6: .line 752
            aload 3 /* task */
            ifnonnull 8
         7: .line 753
            aload 1 /* next */
            new io.netty.channel.AbstractChannelHandlerContext$16
            dup
            aload 0 /* this */
            aload 1 /* next */
            invokespecial io.netty.channel.AbstractChannelHandlerContext$16.<init>:(Lio/netty/channel/AbstractChannelHandlerContext;Lio/netty/channel/AbstractChannelHandlerContext;)V
            dup
            astore 3 /* task */
            putfield io.netty.channel.AbstractChannelHandlerContext.invokeFlushTask:Ljava/lang/Runnable;
         8: .line 760
      StackMap locals: java.lang.Runnable
      StackMap stack:
            aload 2 /* executor */
            aload 3 /* task */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.voidPromise:()Lio/netty/channel/ChannelPromise;
            aconst_null
            invokestatic io.netty.channel.AbstractChannelHandlerContext.safeExecute:(Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Runnable;Lio/netty/channel/ChannelPromise;Ljava/lang/Object;)V
        end local 3 // java.lang.Runnable task
         9: .line 763
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 2 // io.netty.util.concurrent.EventExecutor executor
        end local 1 // io.netty.channel.AbstractChannelHandlerContext next
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lio/netty/channel/AbstractChannelHandlerContext;
            1   10     1      next  Lio/netty/channel/AbstractChannelHandlerContext;
            2   10     2  executor  Lio/netty/util/concurrent/EventExecutor;
            6    9     3      task  Ljava/lang/Runnable;

  private void invokeFlush();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 767
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 3
         1: .line 768
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeFlush0:()V
         2: .line 769
            goto 4
         3: .line 770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.flush:()Lio/netty/channel/ChannelHandlerContext;
            pop
         4: .line 772
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  private void invokeFlush0();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 776
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.handler:()Lio/netty/channel/ChannelHandler;
            checkcast io.netty.channel.ChannelOutboundHandler
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelOutboundHandler.flush:(Lio/netty/channel/ChannelHandlerContext;)V
         1: .line 777
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 778
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
         4: .line 780
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            3    4     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  public io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 784
            aload 1 /* msg */
            ifnonnull 2
         1: .line 785
            new java.lang.NullPointerException
            dup
            ldc "msg"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 788
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* promise */
            iconst_1
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.isNotValidPromise:(Lio/netty/channel/ChannelPromise;Z)Z
            ifeq 5
         3: .line 789
            aload 1 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
            pop
         4: .line 791
            aload 2 /* promise */
            areturn
         5: .line 794
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            iconst_1
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.write:(Ljava/lang/Object;ZLio/netty/channel/ChannelPromise;)V
         6: .line 796
            aload 2 /* promise */
            areturn
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    7     1      msg  Ljava/lang/Object;
            0    7     2  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      msg      
      promise  

  private void invokeWriteAndFlush(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 800
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeHandler:()Z
            ifeq 4
         1: .line 801
            aload 0 /* this */
            aload 1 /* msg */
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeWrite0:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
         2: .line 802
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeFlush0:()V
         3: .line 803
            goto 5
         4: .line 804
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         5: .line 806
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    6     1      msg  Ljava/lang/Object;
            0    6     2  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      msg      
      promise  

  private void write(java.lang.Object, boolean, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;ZLio/netty/channel/ChannelPromise;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
        start local 2 // boolean flush
        start local 3 // io.netty.channel.ChannelPromise promise
         0: .line 809
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.findContextOutbound:()Lio/netty/channel/AbstractChannelHandlerContext;
            astore 4 /* next */
        start local 4 // io.netty.channel.AbstractChannelHandlerContext next
         1: .line 810
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 1 /* msg */
            aload 4 /* next */
            invokevirtual io.netty.channel.DefaultChannelPipeline.touch:(Ljava/lang/Object;Lio/netty/channel/AbstractChannelHandlerContext;)Ljava/lang/Object;
            astore 5 /* m */
        start local 5 // java.lang.Object m
         2: .line 811
            aload 4 /* next */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            astore 6 /* executor */
        start local 6 // io.netty.util.concurrent.EventExecutor executor
         3: .line 812
            aload 6 /* executor */
            invokeinterface io.netty.util.concurrent.EventExecutor.inEventLoop:()Z
            ifeq 9
         4: .line 813
            iload 2 /* flush */
            ifeq 7
         5: .line 814
            aload 4 /* next */
            aload 5 /* m */
            aload 3 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
         6: .line 815
            goto 14
         7: .line 816
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext java.lang.Object io.netty.util.concurrent.EventExecutor
      StackMap stack:
            aload 4 /* next */
            aload 5 /* m */
            aload 3 /* promise */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeWrite:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
         8: .line 818
            goto 14
         9: .line 820
      StackMap locals:
      StackMap stack:
            iload 2 /* flush */
            ifeq 12
        10: .line 821
            aload 4 /* next */
            aload 5 /* m */
            aload 3 /* promise */
            invokestatic io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.newInstance:(Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/AbstractChannelHandlerContext$WriteAndFlushTask;
            astore 7 /* task */
        start local 7 // io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask task
        11: .line 822
            goto 13
        end local 7 // io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask task
        12: .line 823
      StackMap locals:
      StackMap stack:
            aload 4 /* next */
            aload 5 /* m */
            aload 3 /* promise */
            invokestatic io.netty.channel.AbstractChannelHandlerContext$WriteTask.newInstance:(Lio/netty/channel/AbstractChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/AbstractChannelHandlerContext$WriteTask;
            astore 7 /* task */
        start local 7 // io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask task
        13: .line 825
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask
      StackMap stack:
            aload 6 /* executor */
            aload 7 /* task */
            aload 3 /* promise */
            aload 5 /* m */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.safeExecute:(Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Runnable;Lio/netty/channel/ChannelPromise;Ljava/lang/Object;)V
        end local 7 // io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask task
        14: .line 827
      StackMap locals:
      StackMap stack:
            return
        end local 6 // io.netty.util.concurrent.EventExecutor executor
        end local 5 // java.lang.Object m
        end local 4 // io.netty.channel.AbstractChannelHandlerContext next
        end local 3 // io.netty.channel.ChannelPromise promise
        end local 2 // boolean flush
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   15     1       msg  Ljava/lang/Object;
            0   15     2     flush  Z
            0   15     3   promise  Lio/netty/channel/ChannelPromise;
            1   15     4      next  Lio/netty/channel/AbstractChannelHandlerContext;
            2   15     5         m  Ljava/lang/Object;
            3   15     6  executor  Lio/netty/util/concurrent/EventExecutor;
           11   12     7      task  Lio/netty/channel/AbstractChannelHandlerContext$AbstractWriteTask;
           13   14     7      task  Lio/netty/channel/AbstractChannelHandlerContext$AbstractWriteTask;
    MethodParameters:
         Name  Flags
      msg      
      flush    
      promise  

  public io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Object msg
         0: .line 831
            aload 0 /* this */
            aload 1 /* msg */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            areturn
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    1     1   msg  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      msg   

  private static void notifyOutboundHandlerException(java.lang.Throwable, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Throwable;Lio/netty/channel/ChannelPromise;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Throwable cause
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 837
            aload 1 /* promise */
            aload 0 /* cause */
            aload 1 /* promise */
            instanceof io.netty.channel.VoidChannelPromise
            ifeq 1
            aconst_null
            goto 2
      StackMap locals: java.lang.Throwable io.netty.channel.ChannelPromise
      StackMap stack: io.netty.channel.ChannelPromise java.lang.Throwable
         1: getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
      StackMap locals: java.lang.Throwable io.netty.channel.ChannelPromise
      StackMap stack: io.netty.channel.ChannelPromise java.lang.Throwable io.netty.util.internal.logging.InternalLogger
         2: invokestatic io.netty.util.internal.PromiseNotificationUtil.tryFailure:(Lio/netty/util/concurrent/Promise;Ljava/lang/Throwable;Lio/netty/util/internal/logging/InternalLogger;)V
         3: .line 838
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // java.lang.Throwable cause
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0    cause  Ljava/lang/Throwable;
            0    4     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      cause    
      promise  

  private void notifyHandlerException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Throwable cause
         0: .line 841
            aload 1 /* cause */
            invokestatic io.netty.channel.AbstractChannelHandlerContext.inExceptionCaught:(Ljava/lang/Throwable;)Z
            ifeq 7
         1: .line 842
            getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
            invokeinterface io.netty.util.internal.logging.InternalLogger.isWarnEnabled:()Z
            ifeq 6
         2: .line 843
            getstatic io.netty.channel.AbstractChannelHandlerContext.logger:Lio/netty/util/internal/logging/InternalLogger;
         3: .line 844
            ldc "An exception was thrown by a user handler while handling an exceptionCaught event"
         4: .line 845
            aload 1 /* cause */
         5: .line 843
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
         6: .line 847
      StackMap locals:
      StackMap stack:
            return
         7: .line 850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cause */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught:(Ljava/lang/Throwable;)V
         8: .line 851
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    9     1  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      cause  

  private static boolean inExceptionCaught(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=1
        start local 0 // java.lang.Throwable cause
         0: .line 855
      StackMap locals:
      StackMap stack:
            aload 0 /* cause */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 1 /* trace */
        start local 1 // java.lang.StackTraceElement[] trace
         1: .line 856
            aload 1 /* trace */
            ifnull 10
         2: .line 857
            aload 1 /* trace */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 9
      StackMap locals: java.lang.Throwable java.lang.StackTraceElement[] top int int java.lang.StackTraceElement[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* t */
        start local 2 // java.lang.StackTraceElement t
         4: .line 858
            aload 2 /* t */
            ifnonnull 6
         5: .line 859
            goto 10
         6: .line 861
      StackMap locals: java.lang.Throwable java.lang.StackTraceElement[] java.lang.StackTraceElement int int java.lang.StackTraceElement[]
      StackMap stack:
            ldc "exceptionCaught"
            aload 2 /* t */
            invokevirtual java.lang.StackTraceElement.getMethodName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 862
            iconst_1
            ireturn
        end local 2 // java.lang.StackTraceElement t
         8: .line 857
      StackMap locals: java.lang.Throwable java.lang.StackTraceElement[] top int int java.lang.StackTraceElement[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         9: iload 3
            iload 4
            if_icmplt 3
        10: .line 867
      StackMap locals: java.lang.Throwable java.lang.StackTraceElement[]
      StackMap stack:
            aload 0 /* cause */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 0 /* cause */
        end local 1 // java.lang.StackTraceElement[] trace
        11: .line 868
            aload 0 /* cause */
            ifnonnull 0
        12: .line 870
            iconst_0
            ireturn
        end local 0 // java.lang.Throwable cause
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0  cause  Ljava/lang/Throwable;
            1   11     1  trace  [Ljava/lang/StackTraceElement;
            4    8     2      t  Ljava/lang/StackTraceElement;
    MethodParameters:
       Name  Flags
      cause  

  public io.netty.channel.ChannelPromise newPromise();
    descriptor: ()Lio/netty/channel/ChannelPromise;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 875
            new io.netty.channel.DefaultChannelPromise
            dup
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokespecial io.netty.channel.DefaultChannelPromise.<init>:(Lio/netty/channel/Channel;Lio/netty/util/concurrent/EventExecutor;)V
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.channel.ChannelProgressivePromise newProgressivePromise();
    descriptor: ()Lio/netty/channel/ChannelProgressivePromise;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 880
            new io.netty.channel.DefaultChannelProgressivePromise
            dup
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokespecial io.netty.channel.DefaultChannelProgressivePromise.<init>:(Lio/netty/channel/Channel;Lio/netty/util/concurrent/EventExecutor;)V
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.channel.ChannelFuture newSucceededFuture();
    descriptor: ()Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 885
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.succeededFuture:Lio/netty/channel/ChannelFuture;
            astore 1 /* succeededFuture */
        start local 1 // io.netty.channel.ChannelFuture succeededFuture
         1: .line 886
            aload 1 /* succeededFuture */
            ifnonnull 3
         2: .line 887
            aload 0 /* this */
            new io.netty.channel.SucceededChannelFuture
            dup
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            invokespecial io.netty.channel.SucceededChannelFuture.<init>:(Lio/netty/channel/Channel;Lio/netty/util/concurrent/EventExecutor;)V
            dup
            astore 1 /* succeededFuture */
            putfield io.netty.channel.AbstractChannelHandlerContext.succeededFuture:Lio/netty/channel/ChannelFuture;
         3: .line 889
      StackMap locals: io.netty.channel.ChannelFuture
      StackMap stack:
            aload 1 /* succeededFuture */
            areturn
        end local 1 // io.netty.channel.ChannelFuture succeededFuture
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lio/netty/channel/AbstractChannelHandlerContext;
            1    4     1  succeededFuture  Lio/netty/channel/ChannelFuture;

  public io.netty.channel.ChannelFuture newFailedFuture(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Lio/netty/channel/ChannelFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // java.lang.Throwable cause
         0: .line 894
            new io.netty.channel.FailedChannelFuture
            dup
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.executor:()Lio/netty/util/concurrent/EventExecutor;
            aload 1 /* cause */
            invokespecial io.netty.channel.FailedChannelFuture.<init>:(Lio/netty/channel/Channel;Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Throwable;)V
            areturn
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    1     1  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      cause  

  private boolean isNotValidPromise(io.netty.channel.ChannelPromise, boolean);
    descriptor: (Lio/netty/channel/ChannelPromise;Z)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.channel.ChannelPromise promise
        start local 2 // boolean allowVoidPromise
         0: .line 898
            aload 1 /* promise */
            ifnonnull 2
         1: .line 899
            new java.lang.NullPointerException
            dup
            ldc "promise"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 902
      StackMap locals:
      StackMap stack:
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.isDone:()Z
            ifeq 6
         3: .line 907
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.isCancelled:()Z
            ifeq 5
         4: .line 908
            iconst_1
            ireturn
         5: .line 910
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "promise already done: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* promise */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 913
      StackMap locals:
      StackMap stack:
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.channel:()Lio/netty/channel/Channel;
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            if_acmpeq 10
         7: .line 914
            new java.lang.IllegalArgumentException
            dup
         8: .line 915
            ldc "promise.channel does not match: %s (expected: %s)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.channel:()Lio/netty/channel/Channel;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aastore
         9: .line 914
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 918
      StackMap locals:
      StackMap stack:
            aload 1 /* promise */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lio/netty/channel/DefaultChannelPromise;
            if_acmpne 12
        11: .line 919
            iconst_0
            ireturn
        12: .line 922
      StackMap locals:
      StackMap stack:
            iload 2 /* allowVoidPromise */
            ifne 16
            aload 1 /* promise */
            instanceof io.netty.channel.VoidChannelPromise
            ifeq 16
        13: .line 923
            new java.lang.IllegalArgumentException
            dup
        14: .line 924
            new java.lang.StringBuilder
            dup
            ldc Lio/netty/channel/VoidChannelPromise;
            invokestatic io.netty.util.internal.StringUtil.simpleClassName:(Ljava/lang/Class;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " not allowed for this operation"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 923
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 927
      StackMap locals:
      StackMap stack:
            aload 1 /* promise */
            instanceof io.netty.channel.AbstractChannel$CloseFuture
            ifeq 20
        17: .line 928
            new java.lang.IllegalArgumentException
            dup
        18: .line 929
            new java.lang.StringBuilder
            dup
            ldc Lio/netty/channel/AbstractChannel$CloseFuture;
            invokestatic io.netty.util.internal.StringUtil.simpleClassName:(Ljava/lang/Class;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " not allowed in a pipeline"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 928
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 931
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // boolean allowVoidPromise
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lio/netty/channel/AbstractChannelHandlerContext;
            0   21     1           promise  Lio/netty/channel/ChannelPromise;
            0   21     2  allowVoidPromise  Z
    MethodParameters:
                  Name  Flags
      promise           
      allowVoidPromise  

  private io.netty.channel.AbstractChannelHandlerContext findContextInbound();
    descriptor: ()Lio/netty/channel/AbstractChannelHandlerContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 935
            aload 0 /* this */
            astore 1 /* ctx */
        start local 1 // io.netty.channel.AbstractChannelHandlerContext ctx
         1: .line 937
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext
      StackMap stack:
            aload 1 /* ctx */
            getfield io.netty.channel.AbstractChannelHandlerContext.next:Lio/netty/channel/AbstractChannelHandlerContext;
            astore 1 /* ctx */
         2: .line 938
            aload 1 /* ctx */
            getfield io.netty.channel.AbstractChannelHandlerContext.inbound:Z
            ifeq 1
         3: .line 939
            aload 1 /* ctx */
            areturn
        end local 1 // io.netty.channel.AbstractChannelHandlerContext ctx
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            1    4     1   ctx  Lio/netty/channel/AbstractChannelHandlerContext;

  private io.netty.channel.AbstractChannelHandlerContext findContextOutbound();
    descriptor: ()Lio/netty/channel/AbstractChannelHandlerContext;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 943
            aload 0 /* this */
            astore 1 /* ctx */
        start local 1 // io.netty.channel.AbstractChannelHandlerContext ctx
         1: .line 945
      StackMap locals: io.netty.channel.AbstractChannelHandlerContext
      StackMap stack:
            aload 1 /* ctx */
            getfield io.netty.channel.AbstractChannelHandlerContext.prev:Lio/netty/channel/AbstractChannelHandlerContext;
            astore 1 /* ctx */
         2: .line 946
            aload 1 /* ctx */
            getfield io.netty.channel.AbstractChannelHandlerContext.outbound:Z
            ifeq 1
         3: .line 947
            aload 1 /* ctx */
            areturn
        end local 1 // io.netty.channel.AbstractChannelHandlerContext ctx
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            1    4     1   ctx  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.channel.ChannelPromise voidPromise();
    descriptor: ()Lio/netty/channel/ChannelPromise;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 952
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokeinterface io.netty.channel.Channel.voidPromise:()Lio/netty/channel/ChannelPromise;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  final void setRemoved();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 956
            aload 0 /* this */
            iconst_3
            putfield io.netty.channel.AbstractChannelHandlerContext.handlerState:I
         1: .line 957
            return
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  final void setAddComplete();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 961
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.handlerState:I
            istore 1 /* oldState */
        start local 1 // int oldState
         1: .line 965
            iload 1 /* oldState */
            iconst_3
            if_icmpeq 2
            getstatic io.netty.channel.AbstractChannelHandlerContext.HANDLER_STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iload 1 /* oldState */
            iconst_2
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            ifeq 0
         2: .line 966
      StackMap locals: int
      StackMap stack:
            return
        end local 1 // int oldState
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lio/netty/channel/AbstractChannelHandlerContext;
            1    3     1  oldState  I

  final void setAddPending();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 972
            getstatic io.netty.channel.AbstractChannelHandlerContext.HANDLER_STATE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
            aload 0 /* this */
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
            istore 1 /* updated */
        start local 1 // boolean updated
         1: .line 973
            getstatic io.netty.channel.AbstractChannelHandlerContext.$assertionsDisabled:Z
            ifne 2
            iload 1 /* updated */
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 974
      StackMap locals: int
      StackMap stack:
            return
        end local 1 // boolean updated
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/netty/channel/AbstractChannelHandlerContext;
            1    3     1  updated  Z

  private boolean invokeHandler();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 986
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.handlerState:I
            istore 1 /* handlerState */
        start local 1 // int handlerState
         1: .line 987
            iload 1 /* handlerState */
            iconst_2
            if_icmpeq 3
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.ordered:Z
            ifne 2
            iload 1 /* handlerState */
            iconst_1
            if_icmpeq 3
      StackMap locals: int
      StackMap stack:
         2: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // int handlerState
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lio/netty/channel/AbstractChannelHandlerContext;
            1    4     1  handlerState  I

  public boolean isRemoved();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 992
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.handlerState:I
            iconst_3
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public <T> io.netty.util.Attribute<T> attr(io.netty.util.AttributeKey<T>);
    descriptor: (Lio/netty/util/AttributeKey;)Lio/netty/util/Attribute;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.util.AttributeKey key
         0: .line 997
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aload 1 /* key */
            invokeinterface io.netty.channel.Channel.attr:(Lio/netty/util/AttributeKey;)Lio/netty/util/Attribute;
            areturn
        end local 1 // io.netty.util.AttributeKey key
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    1     1   key  Lio/netty/util/AttributeKey<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/netty/util/AttributeKey<TT;>;)Lio/netty/util/Attribute<TT;>;
    MethodParameters:
      Name  Flags
      key   

  public <T> boolean hasAttr(io.netty.util.AttributeKey<T>);
    descriptor: (Lio/netty/util/AttributeKey;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
        start local 1 // io.netty.util.AttributeKey key
         0: .line 1002
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            aload 1 /* key */
            invokeinterface io.netty.channel.Channel.hasAttr:(Lio/netty/util/AttributeKey;)Z
            ireturn
        end local 1 // io.netty.util.AttributeKey key
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;
            0    1     1   key  Lio/netty/util/AttributeKey<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/netty/util/AttributeKey<TT;>;)Z
    MethodParameters:
      Name  Flags
      key   

  private static void safeExecute(io.netty.util.concurrent.EventExecutor, java.lang.Runnable, io.netty.channel.ChannelPromise, java.lang.Object);
    descriptor: (Lio/netty/util/concurrent/EventExecutor;Ljava/lang/Runnable;Lio/netty/channel/ChannelPromise;Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // io.netty.util.concurrent.EventExecutor executor
        start local 1 // java.lang.Runnable runnable
        start local 2 // io.netty.channel.ChannelPromise promise
        start local 3 // java.lang.Object msg
         0: .line 1007
            aload 0 /* executor */
            aload 1 /* runnable */
            invokeinterface io.netty.util.concurrent.EventExecutor.execute:(Ljava/lang/Runnable;)V
         1: .line 1008
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 4 /* cause */
        start local 4 // java.lang.Throwable cause
         3: .line 1010
            aload 2 /* promise */
            aload 4 /* cause */
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
         4: .line 1011
            goto 9
      StackMap locals: io.netty.util.concurrent.EventExecutor java.lang.Runnable io.netty.channel.ChannelPromise java.lang.Object java.lang.Throwable
      StackMap stack: java.lang.Throwable
         5: astore 5
         6: .line 1012
            aload 3 /* msg */
            ifnull 8
         7: .line 1013
            aload 3 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
            pop
         8: .line 1015
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
         9: .line 1012
      StackMap locals:
      StackMap stack:
            aload 3 /* msg */
            ifnull 11
        10: .line 1013
            aload 3 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.Throwable cause
        11: .line 1017
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object msg
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Runnable runnable
        end local 0 // io.netty.util.concurrent.EventExecutor executor
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0  executor  Lio/netty/util/concurrent/EventExecutor;
            0   12     1  runnable  Ljava/lang/Runnable;
            0   12     2   promise  Lio/netty/channel/ChannelPromise;
            0   12     3       msg  Ljava/lang/Object;
            3   11     4     cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
           3     5       5  any
    MethodParameters:
          Name  Flags
      executor  
      runnable  
      promise   
      msg       

  public java.lang.String toHintString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 1021
            new java.lang.StringBuilder
            dup
            bipush 39
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' will handle the message from this point."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannelHandlerContext this
         0: .line 1026
            new java.lang.StringBuilder
            dup
            ldc Lio/netty/channel/ChannelHandlerContext;
            invokestatic io.netty.util.internal.StringUtil.simpleClassName:(Ljava/lang/Class;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannelHandlerContext.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.channel:()Lio/netty/channel/Channel;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            bipush 41
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // io.netty.channel.AbstractChannelHandlerContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannelHandlerContext;

  public io.netty.channel.ChannelInboundInvoker fireChannelInactive();
    descriptor: ()Lio/netty/channel/ChannelInboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive:()Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelOutboundInvoker flush();
    descriptor: ()Lio/netty/channel/ChannelOutboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.flush:()Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelInboundInvoker fireChannelUnregistered();
    descriptor: ()Lio/netty/channel/ChannelInboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered:()Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelOutboundInvoker read();
    descriptor: ()Lio/netty/channel/ChannelOutboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.read:()Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelInboundInvoker fireChannelRegistered();
    descriptor: ()Lio/netty/channel/ChannelInboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelRegistered:()Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelInboundInvoker fireUserEventTriggered(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelInboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelInboundInvoker fireChannelRead(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/netty/channel/ChannelInboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelInboundInvoker fireChannelReadComplete();
    descriptor: ()Lio/netty/channel/ChannelInboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelReadComplete:()Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelInboundInvoker fireChannelWritabilityChanged();
    descriptor: ()Lio/netty/channel/ChannelInboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelWritabilityChanged:()Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelInboundInvoker fireExceptionCaught(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Lio/netty/channel/ChannelInboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.netty.channel.ChannelInboundInvoker fireChannelActive();
    descriptor: ()Lio/netty/channel/ChannelInboundInvoker;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.netty.channel.AbstractChannelHandlerContext.fireChannelActive:()Lio/netty/channel/ChannelHandlerContext;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "AbstractChannelHandlerContext.java"
NestMembers:
  io.netty.channel.AbstractChannelHandlerContext$1  io.netty.channel.AbstractChannelHandlerContext$10  io.netty.channel.AbstractChannelHandlerContext$11  io.netty.channel.AbstractChannelHandlerContext$12  io.netty.channel.AbstractChannelHandlerContext$13  io.netty.channel.AbstractChannelHandlerContext$14  io.netty.channel.AbstractChannelHandlerContext$15  io.netty.channel.AbstractChannelHandlerContext$16  io.netty.channel.AbstractChannelHandlerContext$2  io.netty.channel.AbstractChannelHandlerContext$3  io.netty.channel.AbstractChannelHandlerContext$4  io.netty.channel.AbstractChannelHandlerContext$5  io.netty.channel.AbstractChannelHandlerContext$6  io.netty.channel.AbstractChannelHandlerContext$7  io.netty.channel.AbstractChannelHandlerContext$8  io.netty.channel.AbstractChannelHandlerContext$9  io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask  io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask  io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask$1  io.netty.channel.AbstractChannelHandlerContext$WriteTask  io.netty.channel.AbstractChannelHandlerContext$WriteTask$1
InnerClasses:
  final CloseFuture = io.netty.channel.AbstractChannel$CloseFuture of io.netty.channel.AbstractChannel
  io.netty.channel.AbstractChannelHandlerContext$1
  io.netty.channel.AbstractChannelHandlerContext$10
  io.netty.channel.AbstractChannelHandlerContext$11
  io.netty.channel.AbstractChannelHandlerContext$12
  io.netty.channel.AbstractChannelHandlerContext$13
  io.netty.channel.AbstractChannelHandlerContext$14
  io.netty.channel.AbstractChannelHandlerContext$15
  io.netty.channel.AbstractChannelHandlerContext$16
  io.netty.channel.AbstractChannelHandlerContext$2
  io.netty.channel.AbstractChannelHandlerContext$3
  io.netty.channel.AbstractChannelHandlerContext$4
  io.netty.channel.AbstractChannelHandlerContext$5
  io.netty.channel.AbstractChannelHandlerContext$6
  io.netty.channel.AbstractChannelHandlerContext$7
  io.netty.channel.AbstractChannelHandlerContext$8
  io.netty.channel.AbstractChannelHandlerContext$9
  abstract AbstractWriteTask = io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask of io.netty.channel.AbstractChannelHandlerContext
  final WriteAndFlushTask = io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask of io.netty.channel.AbstractChannelHandlerContext
  final WriteTask = io.netty.channel.AbstractChannelHandlerContext$WriteTask of io.netty.channel.AbstractChannelHandlerContext