public class com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel implements com.mongodb.internal.connection.ExtendedAsynchronousByteChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel
  super_class: java.lang.Object
{
  private final com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup group;
    descriptor: Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.internal.connection.tlschannel.TlsChannel tlsChannel;
    descriptor: Lcom/mongodb/internal/connection/tlschannel/TlsChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup$RegisteredSocket registeredSocket;
    descriptor: Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup, com.mongodb.internal.connection.tlschannel.TlsChannel, java.nio.channels.SocketChannel);
    descriptor: (Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;Lcom/mongodb/internal/connection/tlschannel/TlsChannel;Ljava/nio/channels/SocketChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup channelGroup
        start local 2 // com.mongodb.internal.connection.tlschannel.TlsChannel tlsChannel
        start local 3 // java.nio.channels.SocketChannel socketChannel
         0: .line 76
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 80
            aload 3 /* socketChannel */
            invokevirtual java.nio.channels.SocketChannel.isOpen:()Z
            ifne 3
         2: .line 81
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         3: .line 83
      StackMap locals: com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup com.mongodb.internal.connection.tlschannel.TlsChannel java.nio.channels.SocketChannel
      StackMap stack:
            aload 2 /* tlsChannel */
            invokeinterface com.mongodb.internal.connection.tlschannel.TlsChannel.isOpen:()Z
            ifne 5
         4: .line 84
            new java.nio.channels.ClosedChannelException
            dup
            invokespecial java.nio.channels.ClosedChannelException.<init>:()V
            athrow
         5: .line 86
      StackMap locals:
      StackMap stack:
            aload 3 /* socketChannel */
            invokevirtual java.nio.channels.SocketChannel.isBlocking:()Z
            ifeq 7
         6: .line 87
            new java.lang.IllegalArgumentException
            dup
            ldc "socket channel must be in non-blocking mode"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* channelGroup */
            putfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
         8: .line 90
            aload 0 /* this */
            aload 2 /* tlsChannel */
            putfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.tlsChannel:Lcom/mongodb/internal/connection/tlschannel/TlsChannel;
         9: .line 91
            aload 0 /* this */
            aload 1 /* channelGroup */
            aload 2 /* tlsChannel */
            aload 3 /* socketChannel */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.registerSocket:(Lcom/mongodb/internal/connection/tlschannel/TlsChannel;Ljava/nio/channels/SocketChannel;)Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
            putfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
        10: .line 92
            return
        end local 3 // java.nio.channels.SocketChannel socketChannel
        end local 2 // com.mongodb.internal.connection.tlschannel.TlsChannel tlsChannel
        end local 1 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup channelGroup
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0   11     1   channelGroup  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
            0   11     2     tlsChannel  Lcom/mongodb/internal/connection/tlschannel/TlsChannel;
            0   11     3  socketChannel  Ljava/nio/channels/SocketChannel;
    Exceptions:
      throws java.nio.channels.ClosedChannelException, java.lang.IllegalArgumentException
    MethodParameters:
               Name  Flags
      channelGroup   final
      tlsChannel     final
      socketChannel  final

  public <A> void read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.nio.ByteBuffer dst
        start local 2 // java.lang.Object attach
        start local 3 // java.nio.channels.CompletionHandler handler
         0: .line 98
            aload 0 /* this */
            aload 1 /* dst */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.checkReadOnly:(Ljava/nio/ByteBuffer;)V
         1: .line 99
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 4
         2: .line 100
            aload 0 /* this */
            aload 2 /* attach */
            aload 3 /* handler */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.completeWithZeroInt:(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
         3: .line 101
            return
         4: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
         5: .line 104
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
         6: .line 105
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* dst */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:(Ljava/nio/ByteBuffer;)V
         7: .line 106
            lconst_0
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
         8: .line 107
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$1
            dup
            aload 0 /* this */
            aload 3 /* handler */
            aload 2 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$1.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
         9: .line 118
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$2
            dup
            aload 0 /* this */
            aload 3 /* handler */
            aload 2 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$2.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
        10: .line 103
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.startRead:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;JLjava/util/concurrent/TimeUnit;Ljava/util/function/LongConsumer;Ljava/util/function/Consumer;)Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$ReadOperation;
            pop
        11: .line 129
            return
        end local 3 // java.nio.channels.CompletionHandler handler
        end local 2 // java.lang.Object attach
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0   12     1      dst  Ljava/nio/ByteBuffer;
            0   12     2   attach  TA;
            0   12     3  handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)V
    MethodParameters:
         Name  Flags
      dst      final
      attach   final
      handler  final

  public <A> void read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=7, args_size=6
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.nio.ByteBuffer dst
        start local 2 // long timeout
        start local 4 // java.util.concurrent.TimeUnit unit
        start local 5 // java.lang.Object attach
        start local 6 // java.nio.channels.CompletionHandler handler
         0: .line 136
            aload 0 /* this */
            aload 1 /* dst */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.checkReadOnly:(Ljava/nio/ByteBuffer;)V
         1: .line 137
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 4
         2: .line 138
            aload 0 /* this */
            aload 5 /* attach */
            aload 6 /* handler */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.completeWithZeroInt:(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
         3: .line 139
            return
         4: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
         5: .line 142
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
         6: .line 143
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* dst */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:(Ljava/nio/ByteBuffer;)V
         7: .line 144
            lload 2 /* timeout */
            aload 4 /* unit */
         8: .line 145
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$3
            dup
            aload 0 /* this */
            aload 6 /* handler */
            aload 5 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$3.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
         9: .line 156
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$4
            dup
            aload 0 /* this */
            aload 6 /* handler */
            aload 5 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$4.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
        10: .line 141
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.startRead:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;JLjava/util/concurrent/TimeUnit;Ljava/util/function/LongConsumer;Ljava/util/function/Consumer;)Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$ReadOperation;
            pop
        11: .line 167
            return
        end local 6 // java.nio.channels.CompletionHandler handler
        end local 5 // java.lang.Object attach
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long timeout
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0   12     1      dst  Ljava/nio/ByteBuffer;
            0   12     2  timeout  J
            0   12     4     unit  Ljava/util/concurrent/TimeUnit;
            0   12     5   attach  TA;
            0   12     6  handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)V
    MethodParameters:
         Name  Flags
      dst      final
      timeout  final
      unit     final
      attach   final
      handler  final

  public <A> void read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
    descriptor: ([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=10, args_size=8
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.nio.ByteBuffer[] dsts
        start local 2 // int offset
        start local 3 // int length
        start local 4 // long timeout
        start local 6 // java.util.concurrent.TimeUnit unit
        start local 7 // java.lang.Object attach
        start local 8 // java.nio.channels.CompletionHandler handler
         0: .line 174
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:([Ljava/nio/ByteBuffer;II)V
            astore 9 /* bufferSet */
        start local 9 // com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet bufferSet
         1: .line 175
            aload 9 /* bufferSet */
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.isReadOnly:()Z
            ifeq 3
         2: .line 176
            new java.lang.IllegalArgumentException
            dup
            ldc "buffer is read-only"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 178
      StackMap locals: com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
      StackMap stack:
            aload 9 /* bufferSet */
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.hasRemaining:()Z
            ifne 6
         4: .line 179
            aload 0 /* this */
            aload 7 /* attach */
            aload 8 /* handler */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.completeWithZeroLong:(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
         5: .line 180
            return
         6: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
         7: .line 183
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
         8: .line 184
            aload 9 /* bufferSet */
         9: .line 185
            lload 4 /* timeout */
            aload 6 /* unit */
        10: .line 186
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$5
            dup
            aload 0 /* this */
            aload 8 /* handler */
            aload 7 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$5.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
        11: .line 197
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$6
            dup
            aload 0 /* this */
            aload 8 /* handler */
            aload 7 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$6.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
        12: .line 182
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.startRead:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;JLjava/util/concurrent/TimeUnit;Ljava/util/function/LongConsumer;Ljava/util/function/Consumer;)Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$ReadOperation;
            pop
        13: .line 208
            return
        end local 9 // com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet bufferSet
        end local 8 // java.nio.channels.CompletionHandler handler
        end local 7 // java.lang.Object attach
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long timeout
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0   14     1       dsts  [Ljava/nio/ByteBuffer;
            0   14     2     offset  I
            0   14     3     length  I
            0   14     4    timeout  J
            0   14     6       unit  Ljava/util/concurrent/TimeUnit;
            0   14     7     attach  TA;
            0   14     8    handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;-TA;>;
            1   14     9  bufferSet  Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
    Signature: <A:Ljava/lang/Object;>([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;-TA;>;)V
    MethodParameters:
         Name  Flags
      dsts     final
      offset   final
      length   final
      timeout  final
      unit     final
      attach   final
      handler  final

  public java.util.concurrent.Future<java.lang.Integer> read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=3, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.nio.ByteBuffer dst
         0: .line 212
            aload 0 /* this */
            aload 1 /* dst */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.checkReadOnly:(Ljava/nio/ByteBuffer;)V
         1: .line 213
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 3
         2: .line 214
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic java.util.concurrent.CompletableFuture.completedFuture:(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
            areturn
         3: .line 216
      StackMap locals:
      StackMap stack:
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureReadResult
            dup
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureReadResult.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;)V
            astore 2 /* future */
        start local 2 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureReadResult future
         4: .line 217
            aload 2 /* future */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
         5: .line 218
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
         6: .line 219
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* dst */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:(Ljava/nio/ByteBuffer;)V
         7: .line 220
            lconst_0
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
         8: .line 221
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$7
            dup
            aload 0 /* this */
            aload 2 /* future */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$7.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel$FutureReadResult;)V
         9: .line 227
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$8
            dup
            aload 0 /* this */
            aload 2 /* future */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$8.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel$FutureReadResult;)V
        10: .line 217
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.startRead:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;JLjava/util/concurrent/TimeUnit;Ljava/util/function/LongConsumer;Ljava/util/function/Consumer;)Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$ReadOperation;
            putfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureReadResult.op:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$ReadOperation;
        11: .line 233
            aload 2 /* future */
            areturn
        end local 2 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureReadResult future
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0   12     1     dst  Ljava/nio/ByteBuffer;
            4   12     2  future  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel$FutureReadResult;
    Signature: (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future<Ljava/lang/Integer;>;
    MethodParameters:
      Name  Flags
      dst   final

  private void checkReadOnly(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.nio.ByteBuffer dst
         0: .line 237
            aload 1 /* dst */
            invokevirtual java.nio.ByteBuffer.isReadOnly:()Z
            ifeq 2
         1: .line 238
            new java.lang.IllegalArgumentException
            dup
            ldc "buffer is read-only"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 240
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0    3     1   dst  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      dst   final

  public <A> void write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=4, args_size=4
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // java.lang.Object attach
        start local 3 // java.nio.channels.CompletionHandler handler
         0: .line 244
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 3
         1: .line 245
            aload 0 /* this */
            aload 2 /* attach */
            aload 3 /* handler */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.completeWithZeroInt:(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
         2: .line 246
            return
         3: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
         4: .line 249
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
         5: .line 250
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* src */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:(Ljava/nio/ByteBuffer;)V
         6: .line 251
            lconst_0
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
         7: .line 252
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$9
            dup
            aload 0 /* this */
            aload 3 /* handler */
            aload 2 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$9.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
         8: .line 263
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$10
            dup
            aload 0 /* this */
            aload 3 /* handler */
            aload 2 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$10.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
         9: .line 248
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.startWrite:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;JLjava/util/concurrent/TimeUnit;Ljava/util/function/LongConsumer;Ljava/util/function/Consumer;)Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$WriteOperation;
            pop
        10: .line 274
            return
        end local 3 // java.nio.channels.CompletionHandler handler
        end local 2 // java.lang.Object attach
        end local 1 // java.nio.ByteBuffer src
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0   11     1      src  Ljava/nio/ByteBuffer;
            0   11     2   attach  TA;
            0   11     3  handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)V
    MethodParameters:
         Name  Flags
      src      final
      attach   final
      handler  final

  public <A> void write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=7, args_size=6
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.nio.ByteBuffer src
        start local 2 // long timeout
        start local 4 // java.util.concurrent.TimeUnit unit
        start local 5 // java.lang.Object attach
        start local 6 // java.nio.channels.CompletionHandler handler
         0: .line 281
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 3
         1: .line 282
            aload 0 /* this */
            aload 5 /* attach */
            aload 6 /* handler */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.completeWithZeroInt:(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
         2: .line 283
            return
         3: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
         4: .line 286
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
         5: .line 287
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* src */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:(Ljava/nio/ByteBuffer;)V
         6: .line 288
            lload 2 /* timeout */
            aload 4 /* unit */
         7: .line 289
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$11
            dup
            aload 0 /* this */
            aload 6 /* handler */
            aload 5 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$11.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
         8: .line 300
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$12
            dup
            aload 0 /* this */
            aload 6 /* handler */
            aload 5 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$12.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
         9: .line 285
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.startWrite:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;JLjava/util/concurrent/TimeUnit;Ljava/util/function/LongConsumer;Ljava/util/function/Consumer;)Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$WriteOperation;
            pop
        10: .line 311
            return
        end local 6 // java.nio.channels.CompletionHandler handler
        end local 5 // java.lang.Object attach
        end local 4 // java.util.concurrent.TimeUnit unit
        end local 2 // long timeout
        end local 1 // java.nio.ByteBuffer src
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0   11     1      src  Ljava/nio/ByteBuffer;
            0   11     2  timeout  J
            0   11     4     unit  Ljava/util/concurrent/TimeUnit;
            0   11     5   attach  TA;
            0   11     6  handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
    Signature: <A:Ljava/lang/Object;>(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)V
    MethodParameters:
         Name  Flags
      src      final
      timeout  final
      unit     final
      attach   final
      handler  final

  public <A> void write(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
    descriptor: ([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=10, args_size=8
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
        start local 4 // long timeout
        start local 6 // java.util.concurrent.TimeUnit unit
        start local 7 // java.lang.Object attach
        start local 8 // java.nio.channels.CompletionHandler handler
         0: .line 318
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:([Ljava/nio/ByteBuffer;II)V
            astore 9 /* bufferSet */
        start local 9 // com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet bufferSet
         1: .line 319
            aload 9 /* bufferSet */
            invokevirtual com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.hasRemaining:()Z
            ifne 4
         2: .line 320
            aload 0 /* this */
            aload 7 /* attach */
            aload 8 /* handler */
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.completeWithZeroLong:(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
         3: .line 321
            return
         4: .line 323
      StackMap locals: com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
         5: .line 324
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
         6: .line 325
            aload 9 /* bufferSet */
         7: .line 326
            lload 4 /* timeout */
            aload 6 /* unit */
         8: .line 327
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$13
            dup
            aload 0 /* this */
            aload 8 /* handler */
            aload 7 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$13.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
         9: .line 338
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$14
            dup
            aload 0 /* this */
            aload 8 /* handler */
            aload 7 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$14.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
        10: .line 323
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.startWrite:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;JLjava/util/concurrent/TimeUnit;Ljava/util/function/LongConsumer;Ljava/util/function/Consumer;)Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$WriteOperation;
            pop
        11: .line 349
            return
        end local 9 // com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet bufferSet
        end local 8 // java.nio.channels.CompletionHandler handler
        end local 7 // java.lang.Object attach
        end local 6 // java.util.concurrent.TimeUnit unit
        end local 4 // long timeout
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0   12     1       srcs  [Ljava/nio/ByteBuffer;
            0   12     2     offset  I
            0   12     3     length  I
            0   12     4    timeout  J
            0   12     6       unit  Ljava/util/concurrent/TimeUnit;
            0   12     7     attach  TA;
            0   12     8    handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;-TA;>;
            1   12     9  bufferSet  Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
    Signature: <A:Ljava/lang/Object;>([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;-TA;>;)V
    MethodParameters:
         Name  Flags
      srcs     final
      offset   final
      length   final
      timeout  final
      unit     final
      attach   final
      handler  final

  public java.util.concurrent.Future<java.lang.Integer> write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=3, args_size=2
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.nio.ByteBuffer src
         0: .line 353
            aload 1 /* src */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 2
         1: .line 354
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic java.util.concurrent.CompletableFuture.completedFuture:(Ljava/lang/Object;)Ljava/util/concurrent/CompletableFuture;
            areturn
         2: .line 356
      StackMap locals:
      StackMap stack:
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureWriteResult
            dup
            aload 0 /* this */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureWriteResult.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;)V
            astore 2 /* future */
        start local 2 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureWriteResult future
         3: .line 357
            aload 2 /* future */
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
         4: .line 358
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
         5: .line 359
            new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
            dup
            aload 1 /* src */
            invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:(Ljava/nio/ByteBuffer;)V
         6: .line 360
            lconst_0
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
         7: .line 361
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$15
            dup
            aload 0 /* this */
            aload 2 /* future */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$15.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel$FutureWriteResult;)V
         8: .line 367
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$16
            dup
            aload 0 /* this */
            aload 2 /* future */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$16.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel$FutureWriteResult;)V
         9: .line 357
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.startWrite:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;JLjava/util/concurrent/TimeUnit;Ljava/util/function/LongConsumer;Ljava/util/function/Consumer;)Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$WriteOperation;
            putfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureWriteResult.op:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$WriteOperation;
        10: .line 373
            aload 2 /* future */
            areturn
        end local 2 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureWriteResult future
        end local 1 // java.nio.ByteBuffer src
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0   11     1     src  Ljava/nio/ByteBuffer;
            3   11     2  future  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel$FutureWriteResult;
    Signature: (Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future<Ljava/lang/Integer;>;
    MethodParameters:
      Name  Flags
      src   final

  private <A> void completeWithZeroInt(A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>);
    descriptor: (Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.lang.Object attach
        start local 2 // java.nio.channels.CompletionHandler handler
         0: .line 377
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.executor:Ljava/util/concurrent/ExecutorService;
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$17
            dup
            aload 0 /* this */
            aload 2 /* handler */
            aload 1 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$17.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            pop
         1: .line 383
            return
        end local 2 // java.nio.channels.CompletionHandler handler
        end local 1 // java.lang.Object attach
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0    2     1   attach  TA;
            0    2     2  handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;
    Signature: <A:Ljava/lang/Object;>(TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Integer;-TA;>;)V
    MethodParameters:
         Name  Flags
      attach   final
      handler  final

  private <A> void completeWithZeroLong(A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>);
    descriptor: (Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
        start local 1 // java.lang.Object attach
        start local 2 // java.nio.channels.CompletionHandler handler
         0: .line 386
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup.executor:Ljava/util/concurrent/ExecutorService;
            new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$18
            dup
            aload 0 /* this */
            aload 2 /* handler */
            aload 1 /* attach */
            invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$18.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            pop
         1: .line 392
            return
        end local 2 // java.nio.channels.CompletionHandler handler
        end local 1 // java.lang.Object attach
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
            0    2     1   attach  TA;
            0    2     2  handler  Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;-TA;>;
    Signature: <A:Ljava/lang/Object;>(TA;Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;-TA;>;)V
    MethodParameters:
         Name  Flags
      attach   final
      handler  final

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
         0: .line 401
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.tlsChannel:Lcom/mongodb/internal/connection/tlschannel/TlsChannel;
            invokeinterface com.mongodb.internal.connection.tlschannel.TlsChannel.isOpen:()Z
            ireturn
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
         0: .line 413
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.tlsChannel:Lcom/mongodb/internal/connection/tlschannel/TlsChannel;
            invokeinterface com.mongodb.internal.connection.tlschannel.TlsChannel.close:()V
         1: .line 414
            aload 0 /* this */
            getfield com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.registeredSocket:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup$RegisteredSocket;
            invokevirtual com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup$RegisteredSocket.close:()V
         2: .line 415
            return
        end local 0 // com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannel;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "AsynchronousTlsChannel.java"
NestMembers:
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$1$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$10  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$10$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$11  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$11$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$12  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$12$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$13  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$13$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$14  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$14$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$15  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$16  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$17  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$18  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$2  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$2$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$3  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$3$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$4  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$4$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$5  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$5$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$6  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$6$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$7  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$8  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$9  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$9$1  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureReadResult  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureWriteResult
InnerClasses:
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$1
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$10
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$11
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$12
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$13
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$14
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$15
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$16
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$17
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$18
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$2
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$3
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$4
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$5
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$6
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$7
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$8
  com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$9
  private FutureReadResult = com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureReadResult of com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel
  private FutureWriteResult = com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel$FutureWriteResult of com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel
  final ReadOperation = com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup$ReadOperation of com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup
  RegisteredSocket = com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup$RegisteredSocket of com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup
  final WriteOperation = com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup$WriteOperation of com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup