public abstract class io.netty.channel.AbstractChannel$AbstractUnsafe implements io.netty.channel.Channel$Unsafe
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.netty.channel.AbstractChannel$AbstractUnsafe
  super_class: java.lang.Object
{
  private volatile io.netty.channel.ChannelOutboundBuffer outboundBuffer;
    descriptor: Lio/netty/channel/ChannelOutboundBuffer;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private io.netty.channel.RecvByteBufAllocator$Handle recvHandle;
    descriptor: Lio/netty/channel/RecvByteBufAllocator$Handle;
    flags: (0x0002) ACC_PRIVATE

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

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

  final io.netty.channel.AbstractChannel this$0;
    descriptor: Lio/netty/channel/AbstractChannel;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 423
            ldc Lio/netty/channel/AbstractChannel;
            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.AbstractChannel$AbstractUnsafe.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(io.netty.channel.AbstractChannel);
    descriptor: (Lio/netty/channel/AbstractChannel;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 423
            aload 0 /* this */
            aload 1
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 425
            aload 0 /* this */
            new io.netty.channel.ChannelOutboundBuffer
            dup
            aload 1
            invokespecial io.netty.channel.ChannelOutboundBuffer.<init>:(Lio/netty/channel/AbstractChannel;)V
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.outboundBuffer:Lio/netty/channel/ChannelOutboundBuffer;
         2: .line 429
            aload 0 /* this */
            iconst_1
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.neverRegistered:Z
         3: .line 423
            return
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
    MethodParameters:
        Name  Flags
      this$0  final

  private void assertEventLoop();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 432
            getstatic io.netty.channel.AbstractChannel$AbstractUnsafe.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.registered:Z
            ifeq 1
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.eventLoop:Lio/netty/channel/EventLoop;
            invokeinterface io.netty.channel.EventLoop.inEventLoop:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 433
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;

  public io.netty.channel.RecvByteBufAllocator$Handle recvBufAllocHandle();
    descriptor: ()Lio/netty/channel/RecvByteBufAllocator$Handle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 437
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.recvHandle:Lio/netty/channel/RecvByteBufAllocator$Handle;
            ifnonnull 2
         1: .line 438
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.config:()Lio/netty/channel/ChannelConfig;
            invokeinterface io.netty.channel.ChannelConfig.getRecvByteBufAllocator:()Lio/netty/channel/RecvByteBufAllocator;
            invokeinterface io.netty.channel.RecvByteBufAllocator.newHandle:()Lio/netty/channel/RecvByteBufAllocator$Handle;
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.recvHandle:Lio/netty/channel/RecvByteBufAllocator$Handle;
         2: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.recvHandle:Lio/netty/channel/RecvByteBufAllocator$Handle;
            areturn
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;

  public final io.netty.channel.ChannelOutboundBuffer outboundBuffer();
    descriptor: ()Lio/netty/channel/ChannelOutboundBuffer;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 445
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.outboundBuffer:Lio/netty/channel/ChannelOutboundBuffer;
            areturn
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;

  public final java.net.SocketAddress localAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 450
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.localAddress0:()Ljava/net/SocketAddress;
            areturn
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;

  public final java.net.SocketAddress remoteAddress();
    descriptor: ()Ljava/net/SocketAddress;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 455
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.remoteAddress0:()Ljava/net/SocketAddress;
            areturn
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;

  public final void register(io.netty.channel.EventLoop, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/EventLoop;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.EventLoop eventLoop
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 460
            aload 1 /* eventLoop */
            ifnonnull 2
         1: .line 461
            new java.lang.NullPointerException
            dup
            ldc "eventLoop"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isRegistered:()Z
            ifeq 5
         3: .line 464
            aload 2 /* promise */
            new java.lang.IllegalStateException
            dup
            ldc "registered to an event loop already"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
         4: .line 465
            return
         5: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            aload 1 /* eventLoop */
            invokevirtual io.netty.channel.AbstractChannel.isCompatible:(Lio/netty/channel/EventLoop;)Z
            ifne 10
         6: .line 468
            aload 2 /* promise */
         7: .line 469
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "incompatible event loop type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* eventLoop */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
         8: .line 468
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
         9: .line 470
            return
        10: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            aload 1 /* eventLoop */
            putfield io.netty.channel.AbstractChannel.eventLoop:Lio/netty/channel/EventLoop;
        11: .line 475
            aload 1 /* eventLoop */
            invokeinterface io.netty.channel.EventLoop.inEventLoop:()Z
            ifeq 14
        12: .line 476
            aload 0 /* this */
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.register0:(Lio/netty/channel/ChannelPromise;)V
        13: .line 477
            goto 24
        14: .line 479
      StackMap locals:
      StackMap stack:
            aload 1 /* eventLoop */
            new io.netty.channel.AbstractChannel$AbstractUnsafe$1
            dup
            aload 0 /* this */
            aload 2 /* promise */
            invokespecial io.netty.channel.AbstractChannel$AbstractUnsafe$1.<init>:(Lio/netty/channel/AbstractChannel$AbstractUnsafe;Lio/netty/channel/ChannelPromise;)V
            invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
        15: .line 485
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 3 /* t */
        start local 3 // java.lang.Throwable t
        17: .line 486
            getstatic io.netty.channel.AbstractChannel.logger:Lio/netty/util/internal/logging/InternalLogger;
        18: .line 487
            ldc "Force-closing a channel whose registration task was not accepted by an event loop: {}"
        19: .line 488
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            aload 3 /* t */
        20: .line 486
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        21: .line 489
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.closeForcibly:()V
        22: .line 490
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.closeFuture:Lio/netty/channel/AbstractChannel$CloseFuture;
            invokevirtual io.netty.channel.AbstractChannel$CloseFuture.setClosed:()Z
            pop
        23: .line 491
            aload 0 /* this */
            aload 2 /* promise */
            aload 3 /* t */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Throwable t
        24: .line 494
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // io.netty.channel.EventLoop eventLoop
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0       this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0   25     1  eventLoop  Lio/netty/channel/EventLoop;
            0   25     2    promise  Lio/netty/channel/ChannelPromise;
           17   24     3          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          14    15      16  Class java.lang.Throwable
    MethodParameters:
           Name  Flags
      eventLoop  
      promise    final

  private void register0(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.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 500
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.setUncancellable:()Z
            ifeq 1
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.ensureOpen:(Lio/netty/channel/ChannelPromise;)Z
            ifne 2
         1: .line 501
      StackMap locals:
      StackMap stack:
            return
         2: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.neverRegistered:Z
            istore 2 /* firstRegistration */
        start local 2 // boolean firstRegistration
         3: .line 504
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.doRegister:()V
         4: .line 505
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.neverRegistered:Z
         5: .line 506
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            iconst_1
            putfield io.netty.channel.AbstractChannel.registered:Z
         6: .line 510
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded:()V
         7: .line 512
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess:(Lio/netty/channel/ChannelPromise;)V
         8: .line 513
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.fireChannelRegistered:()Lio/netty/channel/ChannelPipeline;
            pop
         9: .line 516
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            ifeq 20
        10: .line 517
            iload 2 /* firstRegistration */
            ifeq 13
        11: .line 518
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.fireChannelActive:()Lio/netty/channel/ChannelPipeline;
            pop
        12: .line 519
            goto 20
      StackMap locals: int
      StackMap stack:
        13: aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.config:()Lio/netty/channel/ChannelConfig;
            invokeinterface io.netty.channel.ChannelConfig.isAutoRead:()Z
            ifeq 20
        14: .line 524
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.beginRead:()V
        end local 2 // boolean firstRegistration
        15: .line 527
            goto 20
      StackMap locals: io.netty.channel.AbstractChannel$AbstractUnsafe io.netty.channel.ChannelPromise
      StackMap stack: java.lang.Throwable
        16: astore 2 /* t */
        start local 2 // java.lang.Throwable t
        17: .line 529
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.closeForcibly:()V
        18: .line 530
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.closeFuture:Lio/netty/channel/AbstractChannel$CloseFuture;
            invokevirtual io.netty.channel.AbstractChannel$CloseFuture.setClosed:()Z
            pop
        19: .line 531
            aload 0 /* this */
            aload 1 /* promise */
            aload 2 /* t */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable t
        20: .line 533
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   21     0               this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0   21     1            promise  Lio/netty/channel/ChannelPromise;
            3   15     2  firstRegistration  Z
           17   20     2                  t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1      16  Class java.lang.Throwable
           2    15      16  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      promise  

  public final void bind(java.net.SocketAddress, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/net/SocketAddress;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // java.net.SocketAddress localAddress
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 537
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 539
            aload 2 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.setUncancellable:()Z
            ifeq 2
            aload 0 /* this */
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.ensureOpen:(Lio/netty/channel/ChannelPromise;)Z
            ifne 3
         2: .line 540
      StackMap locals:
      StackMap stack:
            return
         3: .line 544
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.config:()Lio/netty/channel/ChannelConfig;
            getstatic io.netty.channel.ChannelOption.SO_BROADCAST:Lio/netty/channel/ChannelOption;
            invokeinterface io.netty.channel.ChannelConfig.getOption:(Lio/netty/channel/ChannelOption;)Ljava/lang/Object;
            invokevirtual java.lang.Boolean.equals:(Ljava/lang/Object;)Z
            ifeq 12
         4: .line 545
            aload 1 /* localAddress */
            instanceof java.net.InetSocketAddress
            ifeq 12
         5: .line 546
            aload 1 /* localAddress */
            checkcast java.net.InetSocketAddress
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.isAnyLocalAddress:()Z
            ifne 12
         6: .line 547
            invokestatic io.netty.util.internal.PlatformDependent.isWindows:()Z
            ifne 12
            invokestatic io.netty.util.internal.PlatformDependent.maybeSuperUser:()Z
            ifne 12
         7: .line 550
            getstatic io.netty.channel.AbstractChannel.logger:Lio/netty/util/internal/logging/InternalLogger;
         8: .line 551
            new java.lang.StringBuilder
            dup
            ldc "A non-root user can't receive a broadcast packet if the socket is not bound to a wildcard address; binding to a non-wildcard address ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 553
            aload 1 /* localAddress */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ") anyway as requested."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 551
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 550
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;)V
        12: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            istore 3 /* wasActive */
        start local 3 // boolean wasActive
        13: .line 558
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            aload 1 /* localAddress */
            invokevirtual io.netty.channel.AbstractChannel.doBind:(Ljava/net/SocketAddress;)V
        14: .line 559
            goto 19
      StackMap locals: io.netty.channel.AbstractChannel$AbstractUnsafe java.net.SocketAddress io.netty.channel.ChannelPromise int
      StackMap stack: java.lang.Throwable
        15: astore 4 /* t */
        start local 4 // java.lang.Throwable t
        16: .line 560
            aload 0 /* this */
            aload 2 /* promise */
            aload 4 /* t */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
        17: .line 561
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.closeIfClosed:()V
        18: .line 562
            return
        end local 4 // java.lang.Throwable t
        19: .line 565
      StackMap locals:
      StackMap stack:
            iload 3 /* wasActive */
            ifne 21
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            ifeq 21
        20: .line 566
            aload 0 /* this */
            new io.netty.channel.AbstractChannel$AbstractUnsafe$2
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.AbstractChannel$AbstractUnsafe$2.<init>:(Lio/netty/channel/AbstractChannel$AbstractUnsafe;)V
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.invokeLater:(Ljava/lang/Runnable;)V
        21: .line 574
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess:(Lio/netty/channel/ChannelPromise;)V
        22: .line 575
            return
        end local 3 // boolean wasActive
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.net.SocketAddress localAddress
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0          this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0   23     1  localAddress  Ljava/net/SocketAddress;
            0   23     2       promise  Lio/netty/channel/ChannelPromise;
           13   23     3     wasActive  Z
           16   19     4             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          13    14      15  Class java.lang.Throwable
    MethodParameters:
              Name  Flags
      localAddress  final
      promise       final

  public final void disconnect(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 579
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 581
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.setUncancellable:()Z
            ifne 3
         2: .line 582
            return
         3: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            istore 2 /* wasActive */
        start local 2 // boolean wasActive
         4: .line 587
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.doDisconnect:()V
         5: .line 588
            goto 10
      StackMap locals: io.netty.channel.AbstractChannel$AbstractUnsafe io.netty.channel.ChannelPromise int
      StackMap stack: java.lang.Throwable
         6: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         7: .line 589
            aload 0 /* this */
            aload 1 /* promise */
            aload 3 /* t */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
         8: .line 590
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.closeIfClosed:()V
         9: .line 591
            return
        end local 3 // java.lang.Throwable t
        10: .line 594
      StackMap locals:
      StackMap stack:
            iload 2 /* wasActive */
            ifeq 12
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            ifne 12
        11: .line 595
            aload 0 /* this */
            new io.netty.channel.AbstractChannel$AbstractUnsafe$3
            dup
            aload 0 /* this */
            invokespecial io.netty.channel.AbstractChannel$AbstractUnsafe$3.<init>:(Lio/netty/channel/AbstractChannel$AbstractUnsafe;)V
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.invokeLater:(Ljava/lang/Runnable;)V
        12: .line 603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess:(Lio/netty/channel/ChannelPromise;)V
        13: .line 604
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.closeIfClosed:()V
        14: .line 605
            return
        end local 2 // boolean wasActive
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0   15     1    promise  Lio/netty/channel/ChannelPromise;
            4   15     2  wasActive  Z
            7   10     3          t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      promise  final

  public final void close(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 609
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 611
            aload 0 /* this */
            aload 1 /* promise */
            getstatic io.netty.channel.AbstractChannel.CLOSE_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
            getstatic io.netty.channel.AbstractChannel.CLOSE_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
            iconst_0
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.close:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;Ljava/nio/channels/ClosedChannelException;Z)V
         2: .line 612
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    3     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      promise  final

  public final void shutdownOutput(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 620
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 621
            aload 0 /* this */
            aload 1 /* promise */
            aconst_null
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.shutdownOutput:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
         2: .line 622
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    3     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      promise  final

  private void shutdownOutput(io.netty.channel.ChannelPromise, java.lang.Throwable);
    descriptor: (Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
        start local 2 // java.lang.Throwable cause
         0: .line 630
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.setUncancellable:()Z
            ifne 2
         1: .line 631
            return
         2: .line 634
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.outboundBuffer:Lio/netty/channel/ChannelOutboundBuffer;
            astore 3 /* outboundBuffer */
        start local 3 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
         3: .line 635
            aload 3 /* outboundBuffer */
            ifnonnull 6
         4: .line 636
            aload 1 /* promise */
            getstatic io.netty.channel.AbstractChannel.CLOSE_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
         5: .line 637
            return
         6: .line 639
      StackMap locals: io.netty.channel.ChannelOutboundBuffer
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.outboundBuffer:Lio/netty/channel/ChannelOutboundBuffer;
         7: .line 641
            aload 2 /* cause */
            ifnonnull 9
         8: .line 642
            new io.netty.channel.socket.ChannelOutputShutdownException
            dup
            ldc "Channel output shutdown"
            invokespecial io.netty.channel.socket.ChannelOutputShutdownException.<init>:(Ljava/lang/String;)V
            goto 10
         9: .line 643
      StackMap locals:
      StackMap stack:
            new io.netty.channel.socket.ChannelOutputShutdownException
            dup
            ldc "Channel output shutdown"
            aload 2 /* cause */
            invokespecial io.netty.channel.socket.ChannelOutputShutdownException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
        10: .line 641
      StackMap locals:
      StackMap stack: io.netty.channel.socket.ChannelOutputShutdownException
            astore 4 /* shutdownCause */
        start local 4 // java.lang.Throwable shutdownCause
        11: .line 644
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.prepareToClose:()Ljava/util/concurrent/Executor;
            astore 5 /* closeExecutor */
        start local 5 // java.util.concurrent.Executor closeExecutor
        12: .line 645
            aload 5 /* closeExecutor */
            ifnull 15
        13: .line 646
            aload 5 /* closeExecutor */
            new io.netty.channel.AbstractChannel$AbstractUnsafe$4
            dup
            aload 0 /* this */
            aload 1 /* promise */
            aload 3 /* outboundBuffer */
            aload 4 /* shutdownCause */
            invokespecial io.netty.channel.AbstractChannel$AbstractUnsafe$4.<init>:(Lio/netty/channel/AbstractChannel$AbstractUnsafe;Lio/netty/channel/ChannelPromise;Lio/netty/channel/ChannelOutboundBuffer;Ljava/lang/Throwable;)V
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
        14: .line 666
            goto 25
        15: .line 669
      StackMap locals: java.lang.Throwable java.util.concurrent.Executor
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.doShutdownOutput:()V
        16: .line 670
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.setSuccess:()Lio/netty/channel/ChannelPromise;
            pop
        17: .line 671
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: astore 6 /* err */
        start local 6 // java.lang.Throwable err
        19: .line 672
            aload 1 /* promise */
            aload 6 /* err */
            invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
            pop
        end local 6 // java.lang.Throwable err
        20: .line 674
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 3 /* outboundBuffer */
            aload 4 /* shutdownCause */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.closeOutboundBufferForShutdown:(Lio/netty/channel/ChannelPipeline;Lio/netty/channel/ChannelOutboundBuffer;Ljava/lang/Throwable;)V
            goto 25
        21: .line 673
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        22: .line 674
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 3 /* outboundBuffer */
            aload 4 /* shutdownCause */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.closeOutboundBufferForShutdown:(Lio/netty/channel/ChannelPipeline;Lio/netty/channel/ChannelOutboundBuffer;Ljava/lang/Throwable;)V
        23: .line 675
            aload 7
            athrow
        24: .line 674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            aload 3 /* outboundBuffer */
            aload 4 /* shutdownCause */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.closeOutboundBufferForShutdown:(Lio/netty/channel/ChannelPipeline;Lio/netty/channel/ChannelOutboundBuffer;Ljava/lang/Throwable;)V
        25: .line 677
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.util.concurrent.Executor closeExecutor
        end local 4 // java.lang.Throwable shutdownCause
        end local 3 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
        end local 2 // java.lang.Throwable cause
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0            this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0   26     1         promise  Lio/netty/channel/ChannelPromise;
            0   26     2           cause  Ljava/lang/Throwable;
            3   26     3  outboundBuffer  Lio/netty/channel/ChannelOutboundBuffer;
           11   26     4   shutdownCause  Ljava/lang/Throwable;
           12   26     5   closeExecutor  Ljava/util/concurrent/Executor;
           19   20     6             err  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          15    17      18  Class java.lang.Throwable
          15    20      21  any
    MethodParameters:
         Name  Flags
      promise  final
      cause    

  private void closeOutboundBufferForShutdown(io.netty.channel.ChannelPipeline, io.netty.channel.ChannelOutboundBuffer, java.lang.Throwable);
    descriptor: (Lio/netty/channel/ChannelPipeline;Lio/netty/channel/ChannelOutboundBuffer;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPipeline pipeline
        start local 2 // io.netty.channel.ChannelOutboundBuffer buffer
        start local 3 // java.lang.Throwable cause
         0: .line 681
            aload 2 /* buffer */
            aload 3 /* cause */
            iconst_0
            invokevirtual io.netty.channel.ChannelOutboundBuffer.failFlushed:(Ljava/lang/Throwable;Z)V
         1: .line 682
            aload 2 /* buffer */
            aload 3 /* cause */
            iconst_1
            invokevirtual io.netty.channel.ChannelOutboundBuffer.close:(Ljava/lang/Throwable;Z)V
         2: .line 683
            aload 1 /* pipeline */
            getstatic io.netty.channel.socket.ChannelOutputShutdownEvent.INSTANCE:Lio/netty/channel/socket/ChannelOutputShutdownEvent;
            invokeinterface io.netty.channel.ChannelPipeline.fireUserEventTriggered:(Ljava/lang/Object;)Lio/netty/channel/ChannelPipeline;
            pop
         3: .line 684
            return
        end local 3 // java.lang.Throwable cause
        end local 2 // io.netty.channel.ChannelOutboundBuffer buffer
        end local 1 // io.netty.channel.ChannelPipeline pipeline
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    4     1  pipeline  Lio/netty/channel/ChannelPipeline;
            0    4     2    buffer  Lio/netty/channel/ChannelOutboundBuffer;
            0    4     3     cause  Ljava/lang/Throwable;
    MethodParameters:
          Name  Flags
      pipeline  
      buffer    
      cause     

  private void close(io.netty.channel.ChannelPromise, java.lang.Throwable, java.nio.channels.ClosedChannelException, boolean);
    descriptor: (Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;Ljava/nio/channels/ClosedChannelException;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=9, args_size=5
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
        start local 2 // java.lang.Throwable cause
        start local 3 // java.nio.channels.ClosedChannelException closeCause
        start local 4 // boolean notify
         0: .line 688
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.setUncancellable:()Z
            ifne 2
         1: .line 689
            return
         2: .line 692
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.closeInitiated:Z
            ifeq 9
         3: .line 693
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.closeFuture:Lio/netty/channel/AbstractChannel$CloseFuture;
            invokevirtual io.netty.channel.AbstractChannel$CloseFuture.isDone:()Z
            ifeq 6
         4: .line 695
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess:(Lio/netty/channel/ChannelPromise;)V
         5: .line 696
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 1 /* promise */
            instanceof io.netty.channel.VoidChannelPromise
            ifne 8
         7: .line 698
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.closeFuture:Lio/netty/channel/AbstractChannel$CloseFuture;
            new io.netty.channel.AbstractChannel$AbstractUnsafe$5
            dup
            aload 0 /* this */
            aload 1 /* promise */
            invokespecial io.netty.channel.AbstractChannel$AbstractUnsafe$5.<init>:(Lio/netty/channel/AbstractChannel$AbstractUnsafe;Lio/netty/channel/ChannelPromise;)V
            invokevirtual io.netty.channel.AbstractChannel$CloseFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
            pop
         8: .line 705
      StackMap locals:
      StackMap stack:
            return
         9: .line 708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            iconst_1
            putfield io.netty.channel.AbstractChannel.closeInitiated:Z
        10: .line 710
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            istore 5 /* wasActive */
        start local 5 // boolean wasActive
        11: .line 711
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.outboundBuffer:Lio/netty/channel/ChannelOutboundBuffer;
            astore 6 /* outboundBuffer */
        start local 6 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
        12: .line 712
            aload 0 /* this */
            aconst_null
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.outboundBuffer:Lio/netty/channel/ChannelOutboundBuffer;
        13: .line 713
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.prepareToClose:()Ljava/util/concurrent/Executor;
            astore 7 /* closeExecutor */
        start local 7 // java.util.concurrent.Executor closeExecutor
        14: .line 714
            aload 7 /* closeExecutor */
            ifnull 17
        15: .line 715
            aload 7 /* closeExecutor */
            new io.netty.channel.AbstractChannel$AbstractUnsafe$6
            dup
            aload 0 /* this */
            aload 1 /* promise */
            aload 6 /* outboundBuffer */
            aload 2 /* cause */
            iload 4 /* notify */
            aload 3 /* closeCause */
            iload 5 /* wasActive */
            invokespecial io.netty.channel.AbstractChannel$AbstractUnsafe$6.<init>:(Lio/netty/channel/AbstractChannel$AbstractUnsafe;Lio/netty/channel/ChannelPromise;Lio/netty/channel/ChannelOutboundBuffer;Ljava/lang/Throwable;ZLjava/nio/channels/ClosedChannelException;Z)V
            invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
        16: .line 737
            goto 31
        17: .line 740
      StackMap locals: int io.netty.channel.ChannelOutboundBuffer java.util.concurrent.Executor
      StackMap stack:
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0:(Lio/netty/channel/ChannelPromise;)V
        18: .line 741
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 8
        20: .line 742
            aload 6 /* outboundBuffer */
            ifnull 23
        21: .line 744
            aload 6 /* outboundBuffer */
            aload 2 /* cause */
            iload 4 /* notify */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.failFlushed:(Ljava/lang/Throwable;Z)V
        22: .line 745
            aload 6 /* outboundBuffer */
            aload 3 /* closeCause */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.close:(Ljava/nio/channels/ClosedChannelException;)V
        23: .line 747
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        24: .line 742
      StackMap locals:
      StackMap stack:
            aload 6 /* outboundBuffer */
            ifnull 27
        25: .line 744
            aload 6 /* outboundBuffer */
            aload 2 /* cause */
            iload 4 /* notify */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.failFlushed:(Ljava/lang/Throwable;Z)V
        26: .line 745
            aload 6 /* outboundBuffer */
            aload 3 /* closeCause */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.close:(Ljava/nio/channels/ClosedChannelException;)V
        27: .line 748
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.inFlush0:Z
            ifeq 30
        28: .line 749
            aload 0 /* this */
            new io.netty.channel.AbstractChannel$AbstractUnsafe$7
            dup
            aload 0 /* this */
            iload 5 /* wasActive */
            invokespecial io.netty.channel.AbstractChannel$AbstractUnsafe$7.<init>:(Lio/netty/channel/AbstractChannel$AbstractUnsafe;Z)V
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.invokeLater:(Ljava/lang/Runnable;)V
        29: .line 755
            goto 31
        30: .line 756
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* wasActive */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.fireChannelInactiveAndDeregister:(Z)V
        31: .line 759
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.util.concurrent.Executor closeExecutor
        end local 6 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
        end local 5 // boolean wasActive
        end local 4 // boolean notify
        end local 3 // java.nio.channels.ClosedChannelException closeCause
        end local 2 // java.lang.Throwable cause
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   32     0            this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0   32     1         promise  Lio/netty/channel/ChannelPromise;
            0   32     2           cause  Ljava/lang/Throwable;
            0   32     3      closeCause  Ljava/nio/channels/ClosedChannelException;
            0   32     4          notify  Z
           11   32     5       wasActive  Z
           12   32     6  outboundBuffer  Lio/netty/channel/ChannelOutboundBuffer;
           14   32     7   closeExecutor  Ljava/util/concurrent/Executor;
      Exception table:
        from    to  target  type
          17    19      19  any
    MethodParameters:
            Name  Flags
      promise     final
      cause       final
      closeCause  final
      notify      final

  private void doClose0(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.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 763
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.doClose:()V
         1: .line 764
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.closeFuture:Lio/netty/channel/AbstractChannel$CloseFuture;
            invokevirtual io.netty.channel.AbstractChannel$CloseFuture.setClosed:()Z
            pop
         2: .line 765
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess:(Lio/netty/channel/ChannelPromise;)V
         3: .line 766
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2 /* t */
        start local 2 // java.lang.Throwable t
         5: .line 767
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.closeFuture:Lio/netty/channel/AbstractChannel$CloseFuture;
            invokevirtual io.netty.channel.AbstractChannel$CloseFuture.setClosed:()Z
            pop
         6: .line 768
            aload 0 /* this */
            aload 1 /* promise */
            aload 2 /* t */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable t
         7: .line 770
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    8     1  promise  Lio/netty/channel/ChannelPromise;
            5    7     2        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      promise  

  private void fireChannelInactiveAndDeregister(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // boolean wasActive
         0: .line 773
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
            iload 1 /* wasActive */
            ifeq 1
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals: io.netty.channel.AbstractChannel$AbstractUnsafe int
      StackMap stack: io.netty.channel.AbstractChannel$AbstractUnsafe io.netty.channel.ChannelPromise
         1: iconst_0
      StackMap locals: io.netty.channel.AbstractChannel$AbstractUnsafe int
      StackMap stack: io.netty.channel.AbstractChannel$AbstractUnsafe io.netty.channel.ChannelPromise int
         2: invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.deregister:(Lio/netty/channel/ChannelPromise;Z)V
         3: .line 774
            return
        end local 1 // boolean wasActive
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    4     1  wasActive  Z
    MethodParameters:
           Name  Flags
      wasActive  final

  public final void closeForcibly();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 778
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 781
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.doClose:()V
         2: .line 782
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 1 /* e */
        start local 1 // java.lang.Exception e
         4: .line 783
            getstatic io.netty.channel.AbstractChannel.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to close a channel."
            aload 1 /* e */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
         5: .line 785
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            4    5     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception

  public final void deregister(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 789
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 791
            aload 0 /* this */
            aload 1 /* promise */
            iconst_0
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.deregister:(Lio/netty/channel/ChannelPromise;Z)V
         2: .line 792
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    3     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      promise  final

  private void deregister(io.netty.channel.ChannelPromise, boolean);
    descriptor: (Lio/netty/channel/ChannelPromise;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
        start local 2 // boolean fireChannelInactive
         0: .line 795
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.setUncancellable:()Z
            ifne 2
         1: .line 796
            return
         2: .line 799
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.registered:Z
            ifne 5
         3: .line 800
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess:(Lio/netty/channel/ChannelPromise;)V
         4: .line 801
            return
         5: .line 813
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new io.netty.channel.AbstractChannel$AbstractUnsafe$8
            dup
            aload 0 /* this */
            iload 2 /* fireChannelInactive */
            aload 1 /* promise */
            invokespecial io.netty.channel.AbstractChannel$AbstractUnsafe$8.<init>:(Lio/netty/channel/AbstractChannel$AbstractUnsafe;ZLio/netty/channel/ChannelPromise;)V
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.invokeLater:(Ljava/lang/Runnable;)V
         6: .line 836
            return
        end local 2 // boolean fireChannelInactive
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    7     1              promise  Lio/netty/channel/ChannelPromise;
            0    7     2  fireChannelInactive  Z
    MethodParameters:
                     Name  Flags
      promise              final
      fireChannelInactive  final

  public final void beginRead();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 840
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 842
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            ifne 3
         2: .line 843
            return
         3: .line 847
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.doBeginRead:()V
         4: .line 848
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         5: astore 1 /* e */
        start local 1 // java.lang.Exception e
         6: .line 849
            aload 0 /* this */
            new io.netty.channel.AbstractChannel$AbstractUnsafe$9
            dup
            aload 0 /* this */
            aload 1 /* e */
            invokespecial io.netty.channel.AbstractChannel$AbstractUnsafe$9.<init>:(Lio/netty/channel/AbstractChannel$AbstractUnsafe;Ljava/lang/Exception;)V
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.invokeLater:(Ljava/lang/Runnable;)V
         7: .line 855
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.close:(Lio/netty/channel/ChannelPromise;)V
        end local 1 // java.lang.Exception e
         8: .line 857
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            6    8     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception

  public final void write(java.lang.Object, io.netty.channel.ChannelPromise);
    descriptor: (Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // java.lang.Object msg
        start local 2 // io.netty.channel.ChannelPromise promise
         0: .line 861
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 863
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.outboundBuffer:Lio/netty/channel/ChannelOutboundBuffer;
            astore 3 /* outboundBuffer */
        start local 3 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
         2: .line 864
            aload 3 /* outboundBuffer */
            ifnonnull 6
         3: .line 869
            aload 0 /* this */
            aload 2 /* promise */
            getstatic io.netty.channel.AbstractChannel.WRITE_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
         4: .line 871
            aload 1 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
            pop
         5: .line 872
            return
         6: .line 877
      StackMap locals: io.netty.channel.ChannelOutboundBuffer
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            aload 1 /* msg */
            invokevirtual io.netty.channel.AbstractChannel.filterOutboundMessage:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* msg */
         7: .line 878
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.pipeline:Lio/netty/channel/DefaultChannelPipeline;
            invokevirtual io.netty.channel.DefaultChannelPipeline.estimatorHandle:()Lio/netty/channel/MessageSizeEstimator$Handle;
            aload 1 /* msg */
            invokeinterface io.netty.channel.MessageSizeEstimator$Handle.size:(Ljava/lang/Object;)I
            istore 4 /* size */
        start local 4 // int size
         8: .line 879
            iload 4 /* size */
            ifge 15
         9: .line 880
            iconst_0
            istore 4 /* size */
        10: .line 882
            goto 15
        end local 4 // int size
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 5 /* t */
        start local 5 // java.lang.Throwable t
        12: .line 883
            aload 0 /* this */
            aload 2 /* promise */
            aload 5 /* t */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
        13: .line 884
            aload 1 /* msg */
            invokestatic io.netty.util.ReferenceCountUtil.release:(Ljava/lang/Object;)Z
            pop
        14: .line 885
            return
        end local 5 // java.lang.Throwable t
        start local 4 // int size
        15: .line 888
      StackMap locals: int
      StackMap stack:
            aload 3 /* outboundBuffer */
            aload 1 /* msg */
            iload 4 /* size */
            aload 2 /* promise */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.addMessage:(Ljava/lang/Object;ILio/netty/channel/ChannelPromise;)V
        16: .line 889
            return
        end local 4 // int size
        end local 3 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
        end local 2 // io.netty.channel.ChannelPromise promise
        end local 1 // java.lang.Object msg
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0   17     1             msg  Ljava/lang/Object;
            0   17     2         promise  Lio/netty/channel/ChannelPromise;
            2   17     3  outboundBuffer  Lio/netty/channel/ChannelOutboundBuffer;
            8   11     4            size  I
           15   17     4            size  I
           12   15     5               t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           6    10      11  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      msg      
      promise  

  public final void flush();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 893
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 895
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.outboundBuffer:Lio/netty/channel/ChannelOutboundBuffer;
            astore 1 /* outboundBuffer */
        start local 1 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
         2: .line 896
            aload 1 /* outboundBuffer */
            ifnonnull 4
         3: .line 897
            return
         4: .line 900
      StackMap locals: io.netty.channel.ChannelOutboundBuffer
      StackMap stack:
            aload 1 /* outboundBuffer */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.addFlush:()V
         5: .line 901
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.flush0:()V
         6: .line 902
            return
        end local 1 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            2    7     1  outboundBuffer  Lio/netty/channel/ChannelOutboundBuffer;

  protected void flush0();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 906
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.inFlush0:Z
            ifeq 2
         1: .line 908
            return
         2: .line 911
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.outboundBuffer:Lio/netty/channel/ChannelOutboundBuffer;
            astore 1 /* outboundBuffer */
        start local 1 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
         3: .line 912
            aload 1 /* outboundBuffer */
            ifnull 4
            aload 1 /* outboundBuffer */
            invokevirtual io.netty.channel.ChannelOutboundBuffer.isEmpty:()Z
            ifeq 5
         4: .line 913
      StackMap locals: io.netty.channel.ChannelOutboundBuffer
      StackMap stack:
            return
         5: .line 916
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.inFlush0:Z
         6: .line 919
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isActive:()Z
            ifne 17
         7: .line 921
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isOpen:()Z
            ifeq 10
         8: .line 922
            aload 1 /* outboundBuffer */
            getstatic io.netty.channel.AbstractChannel.FLUSH0_NOT_YET_CONNECTED_EXCEPTION:Ljava/nio/channels/NotYetConnectedException;
            iconst_1
            invokevirtual io.netty.channel.ChannelOutboundBuffer.failFlushed:(Ljava/lang/Throwable;Z)V
         9: .line 923
            goto 15
        10: .line 925
      StackMap locals:
      StackMap stack:
            aload 1 /* outboundBuffer */
            getstatic io.netty.channel.AbstractChannel.FLUSH0_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
            iconst_0
            invokevirtual io.netty.channel.ChannelOutboundBuffer.failFlushed:(Ljava/lang/Throwable;Z)V
        11: .line 927
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 2
        13: .line 928
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.inFlush0:Z
        14: .line 929
            aload 2
            athrow
        15: .line 928
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.inFlush0:Z
        16: .line 930
            return
        17: .line 934
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            aload 1 /* outboundBuffer */
            invokevirtual io.netty.channel.AbstractChannel.doWrite:(Lio/netty/channel/ChannelOutboundBuffer;)V
        18: .line 935
            goto 31
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 2 /* t */
        start local 2 // java.lang.Throwable t
        20: .line 936
            aload 2 /* t */
            instanceof java.io.IOException
            ifeq 23
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.config:()Lio/netty/channel/ChannelConfig;
            invokeinterface io.netty.channel.ChannelConfig.isAutoClose:()Z
            ifeq 23
        21: .line 945
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
            aload 2 /* t */
            getstatic io.netty.channel.AbstractChannel.FLUSH0_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
            iconst_0
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.close:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;Ljava/nio/channels/ClosedChannelException;Z)V
        22: .line 946
            goto 27
        23: .line 948
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
            aload 2 /* t */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.shutdownOutput:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
        24: .line 949
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 3 /* t2 */
        start local 3 // java.lang.Throwable t2
        26: .line 950
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
            aload 3 /* t2 */
            getstatic io.netty.channel.AbstractChannel.FLUSH0_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
            iconst_0
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.close:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;Ljava/nio/channels/ClosedChannelException;Z)V
        end local 3 // java.lang.Throwable t2
        end local 2 // java.lang.Throwable t
        27: .line 954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.inFlush0:Z
            goto 32
        28: .line 953
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        29: .line 954
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.inFlush0:Z
        30: .line 955
            aload 4
            athrow
        31: .line 954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield io.netty.channel.AbstractChannel$AbstractUnsafe.inFlush0:Z
        32: .line 956
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelOutboundBuffer outboundBuffer
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   33     0            this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            3   33     1  outboundBuffer  Lio/netty/channel/ChannelOutboundBuffer;
           20   27     2               t  Ljava/lang/Throwable;
           26   27     3              t2  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           7    12      12  any
          17    18      19  Class java.lang.Throwable
          23    24      25  Class java.lang.Throwable
          17    27      28  any

  public final io.netty.channel.ChannelPromise voidPromise();
    descriptor: ()Lio/netty/channel/ChannelPromise;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 960
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.assertEventLoop:()V
         1: .line 962
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            getfield io.netty.channel.AbstractChannel.unsafeVoidPromise:Lio/netty/channel/VoidChannelPromise;
            areturn
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;

  protected final boolean ensureOpen(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 966
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isOpen:()Z
            ifeq 2
         1: .line 967
            iconst_1
            ireturn
         2: .line 970
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* promise */
            getstatic io.netty.channel.AbstractChannel.ENSURE_OPEN_CLOSED_CHANNEL_EXCEPTION:Ljava/nio/channels/ClosedChannelException;
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
         3: .line 971
            iconst_0
            ireturn
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    4     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      promise  

  protected final void safeSetSuccess(io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/channel/ChannelPromise;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
         0: .line 978
            aload 1 /* promise */
            instanceof io.netty.channel.VoidChannelPromise
            ifne 2
            aload 1 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.trySuccess:()Z
            ifne 2
         1: .line 979
            getstatic io.netty.channel.AbstractChannel.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to mark a promise as success because it is done already: {}"
            aload 1 /* promise */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 981
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    3     1  promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
         Name  Flags
      promise  

  protected final void safeSetFailure(io.netty.channel.ChannelPromise, java.lang.Throwable);
    descriptor: (Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // io.netty.channel.ChannelPromise promise
        start local 2 // java.lang.Throwable cause
         0: .line 987
            aload 1 /* promise */
            instanceof io.netty.channel.VoidChannelPromise
            ifne 2
            aload 1 /* promise */
            aload 2 /* cause */
            invokeinterface io.netty.channel.ChannelPromise.tryFailure:(Ljava/lang/Throwable;)Z
            ifne 2
         1: .line 988
            getstatic io.netty.channel.AbstractChannel.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Failed to mark a promise as failure because it's done already: {}"
            aload 1 /* promise */
            aload 2 /* cause */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 990
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable cause
        end local 1 // io.netty.channel.ChannelPromise promise
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    3     1  promise  Lio/netty/channel/ChannelPromise;
            0    3     2    cause  Ljava/lang/Throwable;
    MethodParameters:
         Name  Flags
      promise  
      cause    

  protected final void closeIfClosed();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 993
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.isOpen:()Z
            ifeq 2
         1: .line 994
            return
         2: .line 996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.voidPromise:()Lio/netty/channel/ChannelPromise;
            invokevirtual io.netty.channel.AbstractChannel$AbstractUnsafe.close:(Lio/netty/channel/ChannelPromise;)V
         3: .line 997
            return
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;

  private void invokeLater(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // java.lang.Runnable task
         0: .line 1012
            aload 0 /* this */
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            invokevirtual io.netty.channel.AbstractChannel.eventLoop:()Lio/netty/channel/EventLoop;
            aload 1 /* task */
            invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
         1: .line 1013
            goto 4
      StackMap locals:
      StackMap stack: java.util.concurrent.RejectedExecutionException
         2: astore 2 /* e */
        start local 2 // java.util.concurrent.RejectedExecutionException e
         3: .line 1014
            getstatic io.netty.channel.AbstractChannel.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "Can't invoke task later as EventLoop rejected it"
            aload 2 /* e */
            invokeinterface io.netty.util.internal.logging.InternalLogger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.util.concurrent.RejectedExecutionException e
         4: .line 1016
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Runnable task
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    5     1  task  Ljava/lang/Runnable;
            3    4     2     e  Ljava/util/concurrent/RejectedExecutionException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.util.concurrent.RejectedExecutionException
    MethodParameters:
      Name  Flags
      task  

  protected final java.lang.Throwable annotateConnectException(java.lang.Throwable, java.net.SocketAddress);
    descriptor: (Ljava/lang/Throwable;Ljava/net/SocketAddress;)Ljava/lang/Throwable;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
        start local 1 // java.lang.Throwable cause
        start local 2 // java.net.SocketAddress remoteAddress
         0: .line 1022
            aload 1 /* cause */
            instanceof java.net.ConnectException
            ifeq 2
         1: .line 1023
            new io.netty.channel.AbstractChannel$AnnotatedConnectException
            dup
            aload 1 /* cause */
            checkcast java.net.ConnectException
            aload 2 /* remoteAddress */
            invokespecial io.netty.channel.AbstractChannel$AnnotatedConnectException.<init>:(Ljava/net/ConnectException;Ljava/net/SocketAddress;)V
            areturn
         2: .line 1025
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            instanceof java.net.NoRouteToHostException
            ifeq 4
         3: .line 1026
            new io.netty.channel.AbstractChannel$AnnotatedNoRouteToHostException
            dup
            aload 1 /* cause */
            checkcast java.net.NoRouteToHostException
            aload 2 /* remoteAddress */
            invokespecial io.netty.channel.AbstractChannel$AnnotatedNoRouteToHostException.<init>:(Ljava/net/NoRouteToHostException;Ljava/net/SocketAddress;)V
            areturn
         4: .line 1028
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            instanceof java.net.SocketException
            ifeq 6
         5: .line 1029
            new io.netty.channel.AbstractChannel$AnnotatedSocketException
            dup
            aload 1 /* cause */
            checkcast java.net.SocketException
            aload 2 /* remoteAddress */
            invokespecial io.netty.channel.AbstractChannel$AnnotatedSocketException.<init>:(Ljava/net/SocketException;Ljava/net/SocketAddress;)V
            areturn
         6: .line 1032
      StackMap locals:
      StackMap stack:
            aload 1 /* cause */
            areturn
        end local 2 // java.net.SocketAddress remoteAddress
        end local 1 // java.lang.Throwable cause
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;
            0    7     1          cause  Ljava/lang/Throwable;
            0    7     2  remoteAddress  Ljava/net/SocketAddress;
    MethodParameters:
               Name  Flags
      cause          
      remoteAddress  

  protected java.util.concurrent.Executor prepareToClose();
    descriptor: ()Ljava/util/concurrent/Executor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
         0: .line 1042
            aconst_null
            areturn
        end local 0 // io.netty.channel.AbstractChannel$AbstractUnsafe this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/channel/AbstractChannel$AbstractUnsafe;

  static io.netty.channel.AbstractChannel access$0(io.netty.channel.AbstractChannel$AbstractUnsafe);
    descriptor: (Lio/netty/channel/AbstractChannel$AbstractUnsafe;)Lio/netty/channel/AbstractChannel;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 423
            aload 0
            getfield io.netty.channel.AbstractChannel$AbstractUnsafe.this$0:Lio/netty/channel/AbstractChannel;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "AbstractChannel.java"
NestHost: io.netty.channel.AbstractChannel
InnerClasses:
  protected abstract AbstractUnsafe = io.netty.channel.AbstractChannel$AbstractUnsafe of io.netty.channel.AbstractChannel
  io.netty.channel.AbstractChannel$AbstractUnsafe$1
  io.netty.channel.AbstractChannel$AbstractUnsafe$2
  io.netty.channel.AbstractChannel$AbstractUnsafe$3
  io.netty.channel.AbstractChannel$AbstractUnsafe$4
  io.netty.channel.AbstractChannel$AbstractUnsafe$5
  io.netty.channel.AbstractChannel$AbstractUnsafe$6
  io.netty.channel.AbstractChannel$AbstractUnsafe$7
  io.netty.channel.AbstractChannel$AbstractUnsafe$8
  io.netty.channel.AbstractChannel$AbstractUnsafe$9
  private final AnnotatedConnectException = io.netty.channel.AbstractChannel$AnnotatedConnectException of io.netty.channel.AbstractChannel
  private final AnnotatedNoRouteToHostException = io.netty.channel.AbstractChannel$AnnotatedNoRouteToHostException of io.netty.channel.AbstractChannel
  private final AnnotatedSocketException = io.netty.channel.AbstractChannel$AnnotatedSocketException of io.netty.channel.AbstractChannel
  final CloseFuture = io.netty.channel.AbstractChannel$CloseFuture of io.netty.channel.AbstractChannel
  public abstract Unsafe = io.netty.channel.Channel$Unsafe of io.netty.channel.Channel
  public abstract Handle = io.netty.channel.MessageSizeEstimator$Handle of io.netty.channel.MessageSizeEstimator
  public abstract Handle = io.netty.channel.RecvByteBufAllocator$Handle of io.netty.channel.RecvByteBufAllocator