final class com.mongodb.operation.CommandOperationHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.mongodb.operation.CommandOperationHelper
  super_class: java.lang.Object
{
  private static final java.util.List<java.lang.Integer> RETRYABLE_ERROR_CODES;
    descriptor: Ljava/util/List;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/Integer;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 890
            bipush 11
            anewarray java.lang.Integer
            dup
            iconst_0
            bipush 6
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            bipush 7
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            bipush 89
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            bipush 91
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_4
            sipush 189
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_5
            sipush 9001
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 6
            sipush 13436
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 7
            sipush 13435
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 8
            sipush 11602
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 9
            sipush 11600
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 10
            sipush 10107
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            putstatic com.mongodb.operation.CommandOperationHelper.RETRYABLE_ERROR_CODES:Ljava/util/List;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<org.bson.BsonDocument, java.lang.Void> writeConcernErrorTransformer();
    descriptor: ()Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 142
            new com.mongodb.operation.CommandOperationHelper$1
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$1.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<Lorg/bson/BsonDocument;Ljava/lang/Void;>;

  static com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<org.bson.BsonDocument, java.lang.Void> writeConcernErrorWriteTransformer();
    descriptor: ()Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 152
            new com.mongodb.operation.CommandOperationHelper$2
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$2.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;Ljava/lang/Void;>;

  static com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<org.bson.BsonDocument, java.lang.Void> writeConcernErrorTransformerAsync();
    descriptor: ()Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 162
            new com.mongodb.operation.CommandOperationHelper$3
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$3.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;Ljava/lang/Void;>;

  static com.mongodb.Function<org.bson.BsonDocument, org.bson.BsonDocument> noOpRetryCommandModifier();
    descriptor: ()Lcom/mongodb/Function;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 172
            new com.mongodb.operation.CommandOperationHelper$4
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$4.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Lcom/mongodb/Function<Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;>;

  static org.bson.BsonDocument executeCommand(com.mongodb.binding.ReadBinding, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, boolean);
    descriptor: (Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Z)Lorg/bson/BsonDocument;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.binding.ReadBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 3 // boolean retryReads
         0: .line 188
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* commandCreator */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            iload 3 /* retryReads */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Z)Ljava/lang/Object;
            checkcast org.bson.BsonDocument
            areturn
        end local 3 // boolean retryReads
        end local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.ReadBinding binding
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         binding  Lcom/mongodb/binding/ReadBinding;
            0    1     1        database  Ljava/lang/String;
            0    1     2  commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    1     3      retryReads  Z
    MethodParameters:
                Name  Flags
      binding         final
      database        final
      commandCreator  final
      retryReads      final

  static <T> T executeCommand(com.mongodb.binding.ReadBinding, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, com.mongodb.operation.CommandOperationHelper$CommandReadTransformer<org.bson.BsonDocument, T>, );
    descriptor: (Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Z)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.binding.ReadBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 3 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        start local 4 // boolean retryReads
         0: .line 193
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* commandCreator */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            aload 3 /* transformer */
            iload 4 /* retryReads */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Z)Ljava/lang/Object;
            areturn
        end local 4 // boolean retryReads
        end local 3 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        end local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.ReadBinding binding
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         binding  Lcom/mongodb/binding/ReadBinding;
            0    1     1        database  Ljava/lang/String;
            0    1     2  commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    1     3     transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<Lorg/bson/BsonDocument;TT;>;
            0    1     4      retryReads  Z
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<Lorg/bson/BsonDocument;TT;>;Z)TT;
    MethodParameters:
                Name  Flags
      binding         final
      database        final
      commandCreator  final
      transformer     final
      retryReads      final

  static <T> T executeCommand(com.mongodb.binding.ReadBinding, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, org.bson.codecs.Decoder<T>, );
    descriptor: (Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Z)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.binding.ReadBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // boolean retryReads
         0: .line 198
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* commandCreator */
            aload 3 /* decoder */
            new com.mongodb.operation.CommandOperationHelper$IdentityReadTransformer
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$IdentityReadTransformer.<init>:()V
            iload 4 /* retryReads */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Z)Ljava/lang/Object;
            areturn
        end local 4 // boolean retryReads
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.ReadBinding binding
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         binding  Lcom/mongodb/binding/ReadBinding;
            0    1     1        database  Ljava/lang/String;
            0    1     2  commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    1     3         decoder  Lorg/bson/codecs/Decoder<TT;>;
            0    1     4      retryReads  Z
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder<TT;>;Z)TT;
    MethodParameters:
                Name  Flags
      binding         final
      database        final
      commandCreator  final
      decoder         final
      retryReads      final

  static <D, T> T executeCommand(com.mongodb.binding.ReadBinding, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, org.bson.codecs.Decoder<D>, com.mongodb.operation.CommandOperationHelper$CommandReadTransformer<D, T>, );
    descriptor: (Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Z)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=6, args_size=6
        start local 0 // com.mongodb.binding.ReadBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        start local 5 // boolean retryReads
         0: .line 203
            aload 0 /* binding */
            new com.mongodb.operation.CommandOperationHelper$5
            dup
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* commandCreator */
            aload 3 /* decoder */
            aload 4 /* transformer */
            iload 5 /* retryReads */
            invokespecial com.mongodb.operation.CommandOperationHelper$5.<init>:(Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Z)V
            invokestatic com.mongodb.operation.OperationHelper.withReadConnectionSource:(Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/operation/OperationHelper$CallableWithSource;)Ljava/lang/Object;
            areturn
        end local 5 // boolean retryReads
        end local 4 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.ReadBinding binding
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0         binding  Lcom/mongodb/binding/ReadBinding;
            0    1     1        database  Ljava/lang/String;
            0    1     2  commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    1     3         decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    1     4     transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<TD;TT;>;
            0    1     5      retryReads  Z
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Lcom/mongodb/binding/ReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<TD;TT;>;Z)TT;
    MethodParameters:
                Name  Flags
      binding         final
      database        final
      commandCreator  final
      decoder         final
      transformer     final
      retryReads      final

  static <D, T> T executeCommandWithConnection(com.mongodb.binding.ReadBinding, com.mongodb.binding.ConnectionSource, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, org.bson.codecs.Decoder<D>, com.mongodb.operation.CommandOperationHelper$CommandReadTransformer<D, T>, boolean, com.mongodb.connection.Connection);
    descriptor: (Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/binding/ConnectionSource;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;ZLcom/mongodb/connection/Connection;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=13, args_size=8
        start local 0 // com.mongodb.binding.ReadBinding binding
        start local 1 // com.mongodb.binding.ConnectionSource source
        start local 2 // java.lang.String database
        start local 3 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 4 // org.bson.codecs.Decoder decoder
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        start local 6 // boolean retryReads
        start local 7 // com.mongodb.connection.Connection connection
         0: .line 216
            aconst_null
            astore 8 /* command */
        start local 8 // org.bson.BsonDocument command
         1: .line 219
            aload 3 /* commandCreator */
            aload 1 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.getServerDescription:()Lcom/mongodb/connection/ServerDescription;
            aload 7 /* connection */
            invokeinterface com.mongodb.connection.Connection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokeinterface com.mongodb.operation.CommandOperationHelper$CommandCreator.create:(Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;)Lorg/bson/BsonDocument;
            astore 8 /* command */
         2: .line 220
            aload 2 /* database */
            aload 8 /* command */
            aload 4 /* decoder */
            aload 1 /* source */
            aload 7 /* connection */
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.ReadBinding.getReadPreference:()Lcom/mongodb/ReadPreference;
            aload 5 /* transformer */
         3: .line 221
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.ReadBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
         4: .line 220
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            astore 12
         5: .line 232
            aload 7 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
         6: .line 220
            aload 12
            areturn
         7: .line 222
      StackMap locals: com.mongodb.binding.ReadBinding com.mongodb.binding.ConnectionSource java.lang.String com.mongodb.operation.CommandOperationHelper$CommandCreator org.bson.codecs.Decoder com.mongodb.operation.CommandOperationHelper$CommandReadTransformer int com.mongodb.connection.Connection org.bson.BsonDocument
      StackMap stack: com.mongodb.MongoException
            astore 10 /* e */
        start local 10 // com.mongodb.MongoException e
         8: .line 223
            aload 10 /* e */
            astore 9 /* exception */
        start local 9 // com.mongodb.MongoException exception
         9: .line 225
            iload 6 /* retryReads */
            aload 10 /* e */
            invokestatic com.mongodb.operation.CommandOperationHelper.shouldAttemptToRetryRead:(ZLjava/lang/Throwable;)Z
            ifne 13
        10: .line 226
            iload 6 /* retryReads */
            ifeq 12
        11: .line 227
            aload 8 /* command */
            invokevirtual org.bson.BsonDocument.getFirstKey:()Ljava/lang/String;
            aload 10 /* e */
            invokestatic com.mongodb.operation.CommandOperationHelper.logUnableToRetry:(Ljava/lang/String;Ljava/lang/Throwable;)V
        12: .line 229
      StackMap locals: com.mongodb.MongoException com.mongodb.MongoException
      StackMap stack:
            aload 9 /* exception */
            athrow
        end local 10 // com.mongodb.MongoException e
        13: .line 232
      StackMap locals:
      StackMap stack:
            aload 7 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
            goto 17
        end local 9 // com.mongodb.MongoException exception
        14: .line 231
      StackMap locals: com.mongodb.binding.ReadBinding com.mongodb.binding.ConnectionSource java.lang.String com.mongodb.operation.CommandOperationHelper$CommandCreator org.bson.codecs.Decoder com.mongodb.operation.CommandOperationHelper$CommandReadTransformer int com.mongodb.connection.Connection org.bson.BsonDocument
      StackMap stack: java.lang.Throwable
            astore 11
        15: .line 232
            aload 7 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
        16: .line 233
            aload 11
            athrow
        start local 9 // com.mongodb.MongoException exception
        17: .line 235
      StackMap locals: com.mongodb.MongoException
      StackMap stack:
            aload 9 /* exception */
            astore 10 /* originalException */
        start local 10 // com.mongodb.MongoException originalException
        18: .line 236
            aload 0 /* binding */
            aload 10 /* originalException */
            new com.mongodb.operation.CommandOperationHelper$6
            dup
            aload 0 /* binding */
            aload 10 /* originalException */
            aload 3 /* commandCreator */
            aload 2 /* database */
            aload 4 /* decoder */
            aload 5 /* transformer */
            invokespecial com.mongodb.operation.CommandOperationHelper$6.<init>:(Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/MongoException;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Ljava/lang/String;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;)V
            invokestatic com.mongodb.operation.OperationHelper.withReleasableConnection:(Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/MongoException;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
            areturn
        end local 10 // com.mongodb.MongoException originalException
        end local 9 // com.mongodb.MongoException exception
        end local 8 // org.bson.BsonDocument command
        end local 7 // com.mongodb.connection.Connection connection
        end local 6 // boolean retryReads
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        end local 4 // org.bson.codecs.Decoder decoder
        end local 3 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 2 // java.lang.String database
        end local 1 // com.mongodb.binding.ConnectionSource source
        end local 0 // com.mongodb.binding.ReadBinding binding
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   19     0            binding  Lcom/mongodb/binding/ReadBinding;
            0   19     1             source  Lcom/mongodb/binding/ConnectionSource;
            0   19     2           database  Ljava/lang/String;
            0   19     3     commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0   19     4            decoder  Lorg/bson/codecs/Decoder<TD;>;
            0   19     5        transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<TD;TT;>;
            0   19     6         retryReads  Z
            0   19     7         connection  Lcom/mongodb/connection/Connection;
            1   19     8            command  Lorg/bson/BsonDocument;
            9   14     9          exception  Lcom/mongodb/MongoException;
           17   19     9          exception  Lcom/mongodb/MongoException;
            8   13    10                  e  Lcom/mongodb/MongoException;
           18   19    10  originalException  Lcom/mongodb/MongoException;
      Exception table:
        from    to  target  type
           1     5       7  Class com.mongodb.MongoException
           1     5      14  any
           7    13      14  any
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Lcom/mongodb/binding/ReadBinding;Lcom/mongodb/binding/ConnectionSource;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<TD;TT;>;ZLcom/mongodb/connection/Connection;)TT;
    MethodParameters:
                Name  Flags
      binding         final
      source          final
      database        final
      commandCreator  final
      decoder         final
      transformer     final
      retryReads      final
      connection      final

  static org.bson.BsonDocument executeCommand(com.mongodb.binding.WriteBinding, java.lang.String, org.bson.BsonDocument);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;)Lorg/bson/BsonDocument;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
         0: .line 257
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            new com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformer
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformer.<init>:()V
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
            checkcast org.bson.BsonDocument
            areturn
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   binding  Lcom/mongodb/binding/WriteBinding;
            0    1     1  database  Ljava/lang/String;
            0    1     2   command  Lorg/bson/BsonDocument;
    MethodParameters:
          Name  Flags
      binding   final
      database  final
      command   final

  static <T> T executeCommand(com.mongodb.binding.WriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.codecs.Decoder decoder
         0: .line 262
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* decoder */
            new com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformer
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformer.<init>:()V
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
            areturn
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   binding  Lcom/mongodb/binding/WriteBinding;
            0    1     1  database  Ljava/lang/String;
            0    1     2   command  Lorg/bson/BsonDocument;
            0    1     3   decoder  Lorg/bson/codecs/Decoder<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TT;>;)TT;
    MethodParameters:
          Name  Flags
      binding   final
      database  final
      command   final
      decoder   final

  static <T> T executeCommand(com.mongodb.binding.WriteBinding, java.lang.String, org.bson.BsonDocument, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<org.bson.BsonDocument, T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
         0: .line 267
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            aload 3 /* transformer */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
            areturn
        end local 3 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      binding  Lcom/mongodb/binding/WriteBinding;
            0    1     1     database  Ljava/lang/String;
            0    1     2      command  Lorg/bson/BsonDocument;
            0    1     3  transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<Lorg/bson/BsonDocument;TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<Lorg/bson/BsonDocument;TT;>;)TT;
    MethodParameters:
             Name  Flags
      binding      final
      database     final
      command      final
      transformer  final

  static <D, T> T executeCommand(com.mongodb.binding.WriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<D>, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<D, T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
         0: .line 272
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            new com.mongodb.internal.validator.NoOpFieldNameValidator
            dup
            invokespecial com.mongodb.internal.validator.NoOpFieldNameValidator.<init>:()V
            aload 3 /* decoder */
            aload 4 /* transformer */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
            areturn
        end local 4 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      binding  Lcom/mongodb/binding/WriteBinding;
            0    1     1     database  Ljava/lang/String;
            0    1     2      command  Lorg/bson/BsonDocument;
            0    1     3      decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    1     4  transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TD;TT;>;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TD;TT;>;)TT;
    MethodParameters:
             Name  Flags
      binding      final
      database     final
      command      final
      decoder      final
      transformer  final

  static <T> T executeCommand(com.mongodb.binding.WriteBinding, java.lang.String, org.bson.BsonDocument, com.mongodb.connection.Connection, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<org.bson.BsonDocument, T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // com.mongodb.connection.Connection connection
        start local 4 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
         0: .line 277
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            aload 3 /* connection */
            aload 4 /* transformer */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
            areturn
        end local 4 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 3 // com.mongodb.connection.Connection connection
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      binding  Lcom/mongodb/binding/WriteBinding;
            0    1     1     database  Ljava/lang/String;
            0    1     2      command  Lorg/bson/BsonDocument;
            0    1     3   connection  Lcom/mongodb/connection/Connection;
            0    1     4  transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<Lorg/bson/BsonDocument;TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<Lorg/bson/BsonDocument;TT;>;)TT;
    MethodParameters:
             Name  Flags
      binding      final
      database     final
      command      final
      connection   final
      transformer  final

  static <T> T executeCommand(com.mongodb.binding.WriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<org.bson.BsonDocument>, com.mongodb.connection.Connection, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<org.bson.BsonDocument, T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.connection.Connection connection
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
         0: .line 283
            ldc "binding"
            aload 0 /* binding */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 284
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* decoder */
            aload 4 /* connection */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 5 /* transformer */
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            invokestatic com.mongodb.operation.CommandOperationHelper.executeWriteCommand:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            areturn
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 4 // com.mongodb.connection.Connection connection
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0      binding  Lcom/mongodb/binding/WriteBinding;
            0    2     1     database  Ljava/lang/String;
            0    2     2      command  Lorg/bson/BsonDocument;
            0    2     3      decoder  Lorg/bson/codecs/Decoder<Lorg/bson/BsonDocument;>;
            0    2     4   connection  Lcom/mongodb/connection/Connection;
            0    2     5  transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<Lorg/bson/BsonDocument;TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<Lorg/bson/BsonDocument;>;Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<Lorg/bson/BsonDocument;TT;>;)TT;
    MethodParameters:
             Name  Flags
      binding      final
      database     final
      command      final
      decoder      final
      connection   final
      transformer  final

  static <T> T executeCommand(com.mongodb.binding.WriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, org.bson.codecs.Decoder<org.bson.BsonDocument>, com.mongodb.connection.Connection, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<org.bson.BsonDocument, T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // org.bson.codecs.Decoder decoder
        start local 5 // com.mongodb.connection.Connection connection
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
         0: .line 290
            ldc "binding"
            aload 0 /* binding */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 291
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* fieldNameValidator */
            aload 4 /* decoder */
            aload 5 /* connection */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 6 /* transformer */
         2: .line 292
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
         3: .line 291
            invokestatic com.mongodb.operation.CommandOperationHelper.executeWriteCommand:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            areturn
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 5 // com.mongodb.connection.Connection connection
        end local 4 // org.bson.codecs.Decoder decoder
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0             binding  Lcom/mongodb/binding/WriteBinding;
            0    4     1            database  Ljava/lang/String;
            0    4     2             command  Lorg/bson/BsonDocument;
            0    4     3  fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    4     4             decoder  Lorg/bson/codecs/Decoder<Lorg/bson/BsonDocument;>;
            0    4     5          connection  Lcom/mongodb/connection/Connection;
            0    4     6         transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<Lorg/bson/BsonDocument;TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<Lorg/bson/BsonDocument;>;Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<Lorg/bson/BsonDocument;TT;>;)TT;
    MethodParameters:
                    Name  Flags
      binding             final
      database            final
      command             final
      fieldNameValidator  final
      decoder             final
      connection          final
      transformer         final

  static <D, T> T executeCommand(com.mongodb.binding.WriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, org.bson.codecs.Decoder<D>, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<D, T>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // org.bson.codecs.Decoder decoder
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
         0: .line 298
            aload 0 /* binding */
            new com.mongodb.operation.CommandOperationHelper$7
            dup
            aload 5 /* transformer */
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* fieldNameValidator */
            aload 4 /* decoder */
            invokespecial com.mongodb.operation.CommandOperationHelper$7.<init>:(Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;)V
            invokestatic com.mongodb.operation.OperationHelper.withReleasableConnection:(Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
            areturn
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 4 // org.bson.codecs.Decoder decoder
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0             binding  Lcom/mongodb/binding/WriteBinding;
            0    1     1            database  Ljava/lang/String;
            0    1     2             command  Lorg/bson/BsonDocument;
            0    1     3  fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    1     4             decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    1     5         transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TD;TT;>;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TD;TT;>;)TT;
    MethodParameters:
                    Name  Flags
      binding             final
      database            final
      command             final
      fieldNameValidator  final
      decoder             final
      transformer         final

  static org.bson.BsonDocument executeCommand(com.mongodb.binding.WriteBinding, java.lang.String, org.bson.BsonDocument, com.mongodb.connection.Connection);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/Connection;)Lorg/bson/BsonDocument;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // com.mongodb.connection.Connection connection
         0: .line 313
            ldc "binding"
            aload 0 /* binding */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 314
            aload 1 /* database */
            aload 2 /* command */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            aload 3 /* connection */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
         2: .line 315
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
         3: .line 314
            invokestatic com.mongodb.operation.CommandOperationHelper.executeWriteCommand:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            checkcast org.bson.BsonDocument
            areturn
        end local 3 // com.mongodb.connection.Connection connection
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0     binding  Lcom/mongodb/binding/WriteBinding;
            0    4     1    database  Ljava/lang/String;
            0    4     2     command  Lorg/bson/BsonDocument;
            0    4     3  connection  Lcom/mongodb/connection/Connection;
    MethodParameters:
            Name  Flags
      binding     final
      database    final
      command     final
      connection  final

  private static <T> T executeCommand(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, org.bson.codecs.Decoder<T>, com.mongodb.binding.ConnectionSource, com.mongodb.connection.Connection, com.mongodb.ReadPreference);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=7, args_size=7
        start local 0 // java.lang.String database
        start local 1 // org.bson.BsonDocument command
        start local 2 // org.bson.FieldNameValidator fieldNameValidator
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.binding.ConnectionSource source
        start local 5 // com.mongodb.connection.Connection connection
        start local 6 // com.mongodb.ReadPreference readPreference
         0: .line 324
            aload 0 /* database */
            aload 1 /* command */
            aload 2 /* fieldNameValidator */
            aload 3 /* decoder */
            aload 4 /* source */
            aload 5 /* connection */
         1: .line 325
            aload 6 /* readPreference */
            new com.mongodb.operation.CommandOperationHelper$IdentityReadTransformer
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$IdentityReadTransformer.<init>:()V
            aload 4 /* source */
            invokeinterface com.mongodb.binding.ConnectionSource.getSessionContext:()Lcom/mongodb/session/SessionContext;
         2: .line 324
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            areturn
        end local 6 // com.mongodb.ReadPreference readPreference
        end local 5 // com.mongodb.connection.Connection connection
        end local 4 // com.mongodb.binding.ConnectionSource source
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.FieldNameValidator fieldNameValidator
        end local 1 // org.bson.BsonDocument command
        end local 0 // java.lang.String database
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0            database  Ljava/lang/String;
            0    3     1             command  Lorg/bson/BsonDocument;
            0    3     2  fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    3     3             decoder  Lorg/bson/codecs/Decoder<TT;>;
            0    3     4              source  Lcom/mongodb/binding/ConnectionSource;
            0    3     5          connection  Lcom/mongodb/connection/Connection;
            0    3     6      readPreference  Lcom/mongodb/ReadPreference;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;)TT;
    MethodParameters:
                    Name  Flags
      database            final
      command             final
      fieldNameValidator  final
      decoder             final
      source              final
      connection          final
      readPreference      final

  private static <D, T> T executeCommand(java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<D>, com.mongodb.binding.ConnectionSource, com.mongodb.connection.Connection, com.mongodb.ReadPreference, com.mongodb.operation.CommandOperationHelper$CommandReadTransformer<D, T>, com.mongodb.session.SessionContext);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=8, args_size=8
        start local 0 // java.lang.String database
        start local 1 // org.bson.BsonDocument command
        start local 2 // org.bson.codecs.Decoder decoder
        start local 3 // com.mongodb.binding.ConnectionSource source
        start local 4 // com.mongodb.connection.Connection connection
        start local 5 // com.mongodb.ReadPreference readPreference
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        start local 7 // com.mongodb.session.SessionContext sessionContext
         0: .line 334
            aload 0 /* database */
            aload 1 /* command */
            new com.mongodb.internal.validator.NoOpFieldNameValidator
            dup
            invokespecial com.mongodb.internal.validator.NoOpFieldNameValidator.<init>:()V
            aload 2 /* decoder */
            aload 3 /* source */
            aload 4 /* connection */
         1: .line 335
            aload 5 /* readPreference */
            aload 6 /* transformer */
            aload 7 /* sessionContext */
         2: .line 334
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommand:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            areturn
        end local 7 // com.mongodb.session.SessionContext sessionContext
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        end local 5 // com.mongodb.ReadPreference readPreference
        end local 4 // com.mongodb.connection.Connection connection
        end local 3 // com.mongodb.binding.ConnectionSource source
        end local 2 // org.bson.codecs.Decoder decoder
        end local 1 // org.bson.BsonDocument command
        end local 0 // java.lang.String database
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0        database  Ljava/lang/String;
            0    3     1         command  Lorg/bson/BsonDocument;
            0    3     2         decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    3     3          source  Lcom/mongodb/binding/ConnectionSource;
            0    3     4      connection  Lcom/mongodb/connection/Connection;
            0    3     5  readPreference  Lcom/mongodb/ReadPreference;
            0    3     6     transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<TD;TT;>;
            0    3     7  sessionContext  Lcom/mongodb/session/SessionContext;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<TD;TT;>;Lcom/mongodb/session/SessionContext;)TT;
    MethodParameters:
                Name  Flags
      database        final
      command         final
      decoder         final
      source          final
      connection      final
      readPreference  final
      transformer     final
      sessionContext  final

  private static <D, T> T executeCommand(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, org.bson.codecs.Decoder<D>, com.mongodb.binding.ConnectionSource, com.mongodb.connection.Connection, com.mongodb.ReadPreference, com.mongodb.operation.CommandOperationHelper$CommandReadTransformer<D, T>, com.mongodb.session.SessionContext);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=9, args_size=9
        start local 0 // java.lang.String database
        start local 1 // org.bson.BsonDocument command
        start local 2 // org.bson.FieldNameValidator fieldNameValidator
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.binding.ConnectionSource source
        start local 5 // com.mongodb.connection.Connection connection
        start local 6 // com.mongodb.ReadPreference readPreference
        start local 7 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        start local 8 // com.mongodb.session.SessionContext sessionContext
         0: .line 343
            aload 7 /* transformer */
            aload 5 /* connection */
            aload 0 /* database */
            aload 1 /* command */
            aload 2 /* fieldNameValidator */
            aload 6 /* readPreference */
            aload 3 /* decoder */
            aload 8 /* sessionContext */
            invokeinterface com.mongodb.connection.Connection.command:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
         1: .line 344
            aload 4 /* source */
            aload 5 /* connection */
         2: .line 343
            invokeinterface com.mongodb.operation.CommandOperationHelper$CommandReadTransformer.apply:(Ljava/lang/Object;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;)Ljava/lang/Object;
            areturn
        end local 8 // com.mongodb.session.SessionContext sessionContext
        end local 7 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformer transformer
        end local 6 // com.mongodb.ReadPreference readPreference
        end local 5 // com.mongodb.connection.Connection connection
        end local 4 // com.mongodb.binding.ConnectionSource source
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.FieldNameValidator fieldNameValidator
        end local 1 // org.bson.BsonDocument command
        end local 0 // java.lang.String database
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0            database  Ljava/lang/String;
            0    3     1             command  Lorg/bson/BsonDocument;
            0    3     2  fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    3     3             decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    3     4              source  Lcom/mongodb/binding/ConnectionSource;
            0    3     5          connection  Lcom/mongodb/connection/Connection;
            0    3     6      readPreference  Lcom/mongodb/ReadPreference;
            0    3     7         transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<TD;TT;>;
            0    3     8      sessionContext  Lcom/mongodb/session/SessionContext;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/binding/ConnectionSource;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformer<TD;TT;>;Lcom/mongodb/session/SessionContext;)TT;
    MethodParameters:
                    Name  Flags
      database            final
      command             final
      fieldNameValidator  final
      decoder             final
      source              final
      connection          final
      readPreference      final
      transformer         final
      sessionContext      final

  private static <T> T executeWriteCommand(java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<T>, com.mongodb.connection.Connection, com.mongodb.ReadPreference, com.mongodb.session.SessionContext);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // java.lang.String database
        start local 1 // org.bson.BsonDocument command
        start local 2 // org.bson.codecs.Decoder decoder
        start local 3 // com.mongodb.connection.Connection connection
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // com.mongodb.session.SessionContext sessionContext
         0: .line 352
            aload 0 /* database */
            aload 1 /* command */
            new com.mongodb.internal.validator.NoOpFieldNameValidator
            dup
            invokespecial com.mongodb.internal.validator.NoOpFieldNameValidator.<init>:()V
            aload 2 /* decoder */
            aload 3 /* connection */
         1: .line 353
            aload 4 /* readPreference */
            new com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformer
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformer.<init>:()V
            aload 5 /* sessionContext */
         2: .line 352
            invokestatic com.mongodb.operation.CommandOperationHelper.executeWriteCommand:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            areturn
        end local 5 // com.mongodb.session.SessionContext sessionContext
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // com.mongodb.connection.Connection connection
        end local 2 // org.bson.codecs.Decoder decoder
        end local 1 // org.bson.BsonDocument command
        end local 0 // java.lang.String database
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0        database  Ljava/lang/String;
            0    3     1         command  Lorg/bson/BsonDocument;
            0    3     2         decoder  Lorg/bson/codecs/Decoder<TT;>;
            0    3     3      connection  Lcom/mongodb/connection/Connection;
            0    3     4  readPreference  Lcom/mongodb/ReadPreference;
            0    3     5  sessionContext  Lcom/mongodb/session/SessionContext;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/session/SessionContext;)TT;
    MethodParameters:
                Name  Flags
      database        final
      command         final
      decoder         final
      connection      final
      readPreference  final
      sessionContext  final

  private static <D, T> T executeWriteCommand(java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<D>, com.mongodb.connection.Connection, com.mongodb.ReadPreference, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<D, T>, com.mongodb.session.SessionContext);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // java.lang.String database
        start local 1 // org.bson.BsonDocument command
        start local 2 // org.bson.codecs.Decoder decoder
        start local 3 // com.mongodb.connection.Connection connection
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        start local 6 // com.mongodb.session.SessionContext sessionContext
         0: .line 360
            aload 0 /* database */
            aload 1 /* command */
            new com.mongodb.internal.validator.NoOpFieldNameValidator
            dup
            invokespecial com.mongodb.internal.validator.NoOpFieldNameValidator.<init>:()V
            aload 2 /* decoder */
            aload 3 /* connection */
         1: .line 361
            aload 4 /* readPreference */
            aload 5 /* transformer */
            aload 6 /* sessionContext */
         2: .line 360
            invokestatic com.mongodb.operation.CommandOperationHelper.executeWriteCommand:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
            areturn
        end local 6 // com.mongodb.session.SessionContext sessionContext
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // com.mongodb.connection.Connection connection
        end local 2 // org.bson.codecs.Decoder decoder
        end local 1 // org.bson.BsonDocument command
        end local 0 // java.lang.String database
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0        database  Ljava/lang/String;
            0    3     1         command  Lorg/bson/BsonDocument;
            0    3     2         decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    3     3      connection  Lcom/mongodb/connection/Connection;
            0    3     4  readPreference  Lcom/mongodb/ReadPreference;
            0    3     5     transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TD;TT;>;
            0    3     6  sessionContext  Lcom/mongodb/session/SessionContext;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TD;TT;>;Lcom/mongodb/session/SessionContext;)TT;
    MethodParameters:
                Name  Flags
      database        final
      command         final
      decoder         final
      connection      final
      readPreference  final
      transformer     final
      sessionContext  final

  private static <D, T> T executeWriteCommand(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, org.bson.codecs.Decoder<D>, com.mongodb.connection.Connection, com.mongodb.ReadPreference, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<D, T>, com.mongodb.session.SessionContext);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=8
        start local 0 // java.lang.String database
        start local 1 // org.bson.BsonDocument command
        start local 2 // org.bson.FieldNameValidator fieldNameValidator
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.connection.Connection connection
        start local 5 // com.mongodb.ReadPreference readPreference
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        start local 7 // com.mongodb.session.SessionContext sessionContext
         0: .line 369
            aload 6 /* transformer */
            aload 4 /* connection */
            aload 0 /* database */
            aload 1 /* command */
            aload 2 /* fieldNameValidator */
            aload 5 /* readPreference */
            aload 3 /* decoder */
            aload 7 /* sessionContext */
            invokeinterface com.mongodb.connection.Connection.command:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
         1: .line 370
            aload 4 /* connection */
         2: .line 369
            invokeinterface com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer.apply:(Ljava/lang/Object;Lcom/mongodb/connection/Connection;)Ljava/lang/Object;
            areturn
        end local 7 // com.mongodb.session.SessionContext sessionContext
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 5 // com.mongodb.ReadPreference readPreference
        end local 4 // com.mongodb.connection.Connection connection
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.FieldNameValidator fieldNameValidator
        end local 1 // org.bson.BsonDocument command
        end local 0 // java.lang.String database
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0            database  Ljava/lang/String;
            0    3     1             command  Lorg/bson/BsonDocument;
            0    3     2  fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    3     3             decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    3     4          connection  Lcom/mongodb/connection/Connection;
            0    3     5      readPreference  Lcom/mongodb/ReadPreference;
            0    3     6         transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TD;TT;>;
            0    3     7      sessionContext  Lcom/mongodb/session/SessionContext;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/connection/Connection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TD;TT;>;Lcom/mongodb/session/SessionContext;)TT;
    MethodParameters:
                    Name  Flags
      database            final
      command             final
      fieldNameValidator  final
      decoder             final
      connection          final
      readPreference      final
      transformer         final
      sessionContext      final

  static void executeCommandAsync(com.mongodb.binding.AsyncReadBinding, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, boolean, com.mongodb.async.SingleResultCallback<org.bson.BsonDocument>);
    descriptor: (Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;ZLcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.binding.AsyncReadBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 3 // boolean retryReads
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 380
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* commandCreator */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            iload 3 /* retryReads */
            aload 4 /* callback */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;ZLcom/mongodb/async/SingleResultCallback;)V
         1: .line 381
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // boolean retryReads
        end local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncReadBinding binding
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0         binding  Lcom/mongodb/binding/AsyncReadBinding;
            0    2     1        database  Ljava/lang/String;
            0    2     2  commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    2     3      retryReads  Z
            0    2     4        callback  Lcom/mongodb/async/SingleResultCallback<Lorg/bson/BsonDocument;>;
    Signature: (Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;ZLcom/mongodb/async/SingleResultCallback<Lorg/bson/BsonDocument;>;)V
    MethodParameters:
                Name  Flags
      binding         final
      database        final
      commandCreator  final
      retryReads      final
      callback        final

  static <T> void executeCommandAsync(com.mongodb.binding.AsyncReadBinding, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, org.bson.codecs.Decoder<T>, boolean, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;ZLcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.binding.AsyncReadBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // boolean retryReads
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 389
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* commandCreator */
            aload 3 /* decoder */
            new com.mongodb.operation.CommandOperationHelper$IdentityTransformerAsync
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$IdentityTransformerAsync.<init>:()V
            iload 4 /* retryReads */
            aload 5 /* callback */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLcom/mongodb/async/SingleResultCallback;)V
         1: .line 390
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // boolean retryReads
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncReadBinding binding
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0         binding  Lcom/mongodb/binding/AsyncReadBinding;
            0    2     1        database  Ljava/lang/String;
            0    2     2  commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    2     3         decoder  Lorg/bson/codecs/Decoder<TT;>;
            0    2     4      retryReads  Z
            0    2     5        callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder<TT;>;ZLcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                Name  Flags
      binding         final
      database        final
      commandCreator  final
      decoder         final
      retryReads      final
      callback        final

  static <T> void executeCommandAsync(com.mongodb.binding.AsyncReadBinding, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync<org.bson.BsonDocument, T>, boolean, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.binding.AsyncReadBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 3 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        start local 4 // boolean retryReads
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 398
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* commandCreator */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            aload 3 /* transformer */
            iload 4 /* retryReads */
            aload 5 /* callback */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLcom/mongodb/async/SingleResultCallback;)V
         1: .line 399
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // boolean retryReads
        end local 3 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        end local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncReadBinding binding
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0         binding  Lcom/mongodb/binding/AsyncReadBinding;
            0    2     1        database  Ljava/lang/String;
            0    2     2  commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    2     3     transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<Lorg/bson/BsonDocument;TT;>;
            0    2     4      retryReads  Z
            0    2     5        callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<Lorg/bson/BsonDocument;TT;>;ZLcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                Name  Flags
      binding         final
      database        final
      commandCreator  final
      transformer     final
      retryReads      final
      callback        final

  static <D, T> void executeCommandAsync(com.mongodb.binding.AsyncReadBinding, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, org.bson.codecs.Decoder<D>, com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync<D, T>, boolean, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=8, args_size=7
        start local 0 // com.mongodb.binding.AsyncReadBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        start local 5 // boolean retryReads
        start local 6 // com.mongodb.async.SingleResultCallback originalCallback
         0: .line 408
            aload 6 /* originalCallback */
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            astore 7 /* errorHandlingCallback */
        start local 7 // com.mongodb.async.SingleResultCallback errorHandlingCallback
         1: .line 409
            aload 0 /* binding */
            new com.mongodb.operation.CommandOperationHelper$8
            dup
            aload 7 /* errorHandlingCallback */
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* commandCreator */
            aload 3 /* decoder */
            aload 4 /* transformer */
            iload 5 /* retryReads */
            invokespecial com.mongodb.operation.CommandOperationHelper$8.<init>:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;Z)V
            invokestatic com.mongodb.operation.OperationHelper.withAsyncReadConnection:(Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
         2: .line 420
            return
        end local 7 // com.mongodb.async.SingleResultCallback errorHandlingCallback
        end local 6 // com.mongodb.async.SingleResultCallback originalCallback
        end local 5 // boolean retryReads
        end local 4 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncReadBinding binding
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                binding  Lcom/mongodb/binding/AsyncReadBinding;
            0    3     1               database  Ljava/lang/String;
            0    3     2         commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    3     3                decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    3     4            transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<TD;TT;>;
            0    3     5             retryReads  Z
            0    3     6       originalCallback  Lcom/mongodb/async/SingleResultCallback<TT;>;
            1    3     7  errorHandlingCallback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<TD;TT;>;ZLcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                  Name  Flags
      binding           final
      database          final
      commandCreator    final
      decoder           final
      transformer       final
      retryReads        final
      originalCallback  final

  static <D, T> void executeCommandAsync(com.mongodb.binding.AsyncReadBinding, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, org.bson.codecs.Decoder<D>, com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync<D, T>, boolean, com.mongodb.connection.AsyncConnection, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLcom/mongodb/connection/AsyncConnection;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=11, locals=9, args_size=8
        start local 0 // com.mongodb.binding.AsyncReadBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        start local 5 // boolean retryReads
        start local 6 // com.mongodb.connection.AsyncConnection connection
        start local 7 // com.mongodb.async.SingleResultCallback originalCallback
         0: .line 430
            aload 7 /* originalCallback */
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            astore 8 /* errorHandlingCallback */
        start local 8 // com.mongodb.async.SingleResultCallback errorHandlingCallback
         1: .line 431
            aload 0 /* binding */
            new com.mongodb.operation.CommandOperationHelper$9
            dup
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* commandCreator */
            aload 3 /* decoder */
            aload 4 /* transformer */
            iload 5 /* retryReads */
            aload 6 /* connection */
            aload 8 /* errorHandlingCallback */
            invokespecial com.mongodb.operation.CommandOperationHelper$9.<init>:(Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLcom/mongodb/connection/AsyncConnection;Lcom/mongodb/async/SingleResultCallback;)V
            invokeinterface com.mongodb.binding.AsyncReadBinding.getReadConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 438
            return
        end local 8 // com.mongodb.async.SingleResultCallback errorHandlingCallback
        end local 7 // com.mongodb.async.SingleResultCallback originalCallback
        end local 6 // com.mongodb.connection.AsyncConnection connection
        end local 5 // boolean retryReads
        end local 4 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncReadBinding binding
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                binding  Lcom/mongodb/binding/AsyncReadBinding;
            0    3     1               database  Ljava/lang/String;
            0    3     2         commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    3     3                decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    3     4            transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<TD;TT;>;
            0    3     5             retryReads  Z
            0    3     6             connection  Lcom/mongodb/connection/AsyncConnection;
            0    3     7       originalCallback  Lcom/mongodb/async/SingleResultCallback<TT;>;
            1    3     8  errorHandlingCallback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncReadBinding;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<TD;TT;>;ZLcom/mongodb/connection/AsyncConnection;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                  Name  Flags
      binding           final
      database          final
      commandCreator    final
      decoder           final
      transformer       final
      retryReads        final
      connection        final
      originalCallback  final

  static <D, T> void executeCommandAsyncWithConnection(com.mongodb.binding.AsyncReadBinding, com.mongodb.binding.AsyncConnectionSource, java.lang.String, com.mongodb.operation.CommandOperationHelper$CommandCreator, org.bson.codecs.Decoder<D>, com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync<D, T>, boolean, com.mongodb.connection.AsyncConnection, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/binding/AsyncConnectionSource;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLcom/mongodb/connection/AsyncConnection;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=19, locals=10, args_size=9
        start local 0 // com.mongodb.binding.AsyncReadBinding binding
        start local 1 // com.mongodb.binding.AsyncConnectionSource source
        start local 2 // java.lang.String database
        start local 3 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 4 // org.bson.codecs.Decoder decoder
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        start local 6 // boolean retryReads
        start local 7 // com.mongodb.connection.AsyncConnection connection
        start local 8 // com.mongodb.async.SingleResultCallback callback
         0: .line 450
            aload 3 /* commandCreator */
            aload 1 /* source */
            invokeinterface com.mongodb.binding.AsyncConnectionSource.getServerDescription:()Lcom/mongodb/connection/ServerDescription;
            aload 7 /* connection */
            invokeinterface com.mongodb.connection.AsyncConnection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokeinterface com.mongodb.operation.CommandOperationHelper$CommandCreator.create:(Lcom/mongodb/connection/ServerDescription;Lcom/mongodb/connection/ConnectionDescription;)Lorg/bson/BsonDocument;
            astore 9 /* command */
        start local 9 // org.bson.BsonDocument command
         1: .line 451
            aload 7 /* connection */
            aload 2 /* database */
            aload 9 /* command */
            new com.mongodb.internal.validator.NoOpFieldNameValidator
            dup
            invokespecial com.mongodb.internal.validator.NoOpFieldNameValidator.<init>:()V
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.AsyncReadBinding.getReadPreference:()Lcom/mongodb/ReadPreference;
            aload 4 /* decoder */
         2: .line 452
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.AsyncReadBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
         3: .line 453
            aload 0 /* binding */
            aload 1 /* source */
            aload 7 /* connection */
            aload 2 /* database */
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.AsyncReadBinding.getReadPreference:()Lcom/mongodb/ReadPreference;
         4: .line 454
            aload 9 /* command */
            aload 3 /* commandCreator */
            new com.mongodb.internal.validator.NoOpFieldNameValidator
            dup
            invokespecial com.mongodb.internal.validator.NoOpFieldNameValidator.<init>:()V
            aload 4 /* decoder */
            aload 5 /* transformer */
            iload 6 /* retryReads */
            aload 8 /* callback */
         5: .line 453
            invokestatic com.mongodb.operation.CommandOperationHelper.createCommandCallback:(Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/BsonDocument;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLcom/mongodb/async/SingleResultCallback;)Lcom/mongodb/async/SingleResultCallback;
         6: .line 451
            invokeinterface com.mongodb.connection.AsyncConnection.commandAsync:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
        end local 9 // org.bson.BsonDocument command
         7: .line 455
            goto 11
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         8: astore 9 /* e */
        start local 9 // java.lang.IllegalArgumentException e
         9: .line 456
            aload 7 /* connection */
            invokeinterface com.mongodb.connection.AsyncConnection.release:()V
        10: .line 457
            aload 8 /* callback */
            aconst_null
            aload 9 /* e */
            invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 9 // java.lang.IllegalArgumentException e
        11: .line 459
      StackMap locals:
      StackMap stack:
            return
        end local 8 // com.mongodb.async.SingleResultCallback callback
        end local 7 // com.mongodb.connection.AsyncConnection connection
        end local 6 // boolean retryReads
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        end local 4 // org.bson.codecs.Decoder decoder
        end local 3 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 2 // java.lang.String database
        end local 1 // com.mongodb.binding.AsyncConnectionSource source
        end local 0 // com.mongodb.binding.AsyncReadBinding binding
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0         binding  Lcom/mongodb/binding/AsyncReadBinding;
            0   12     1          source  Lcom/mongodb/binding/AsyncConnectionSource;
            0   12     2        database  Ljava/lang/String;
            0   12     3  commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0   12     4         decoder  Lorg/bson/codecs/Decoder<TD;>;
            0   12     5     transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<TD;TT;>;
            0   12     6      retryReads  Z
            0   12     7      connection  Lcom/mongodb/connection/AsyncConnection;
            0   12     8        callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
            1    7     9         command  Lorg/bson/BsonDocument;
            9   11     9               e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           0     7       8  Class java.lang.IllegalArgumentException
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/binding/AsyncConnectionSource;Ljava/lang/String;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<TD;TT;>;ZLcom/mongodb/connection/AsyncConnection;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                Name  Flags
      binding         final
      source          final
      database        final
      commandCreator  final
      decoder         final
      transformer     final
      retryReads      final
      connection      final
      callback        final

  private static <T, R> com.mongodb.async.SingleResultCallback<T> createCommandCallback(com.mongodb.binding.AsyncReadBinding, com.mongodb.binding.AsyncConnectionSource, com.mongodb.connection.AsyncConnection, java.lang.String, com.mongodb.ReadPreference, org.bson.BsonDocument, com.mongodb.operation.CommandOperationHelper$CommandCreator, org.bson.FieldNameValidator, org.bson.codecs.Decoder<T>, com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync<T, R>, boolean, com.mongodb.async.SingleResultCallback<R>);
    descriptor: (Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/BsonDocument;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLcom/mongodb/async/SingleResultCallback;)Lcom/mongodb/async/SingleResultCallback;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=14, locals=12, args_size=12
        start local 0 // com.mongodb.binding.AsyncReadBinding binding
        start local 1 // com.mongodb.binding.AsyncConnectionSource oldSource
        start local 2 // com.mongodb.connection.AsyncConnection oldConnection
        start local 3 // java.lang.String database
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // org.bson.BsonDocument originalCommand
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 7 // org.bson.FieldNameValidator fieldNameValidator
        start local 8 // org.bson.codecs.Decoder commandResultDecoder
        start local 9 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        start local 10 // boolean retryReads
        start local 11 // com.mongodb.async.SingleResultCallback callback
         0: .line 473
            new com.mongodb.operation.CommandOperationHelper$10
            dup
            aload 11 /* callback */
            aload 1 /* oldSource */
            aload 2 /* oldConnection */
            aload 9 /* transformer */
            iload 10 /* retryReads */
            aload 5 /* originalCommand */
            aload 0 /* binding */
            aload 6 /* commandCreator */
            aload 3 /* database */
            aload 7 /* fieldNameValidator */
            aload 4 /* readPreference */
            aload 8 /* commandResultDecoder */
            invokespecial com.mongodb.operation.CommandOperationHelper$10.<init>:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync;ZLorg/bson/BsonDocument;Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Ljava/lang/String;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;)V
            areturn
        end local 11 // com.mongodb.async.SingleResultCallback callback
        end local 10 // boolean retryReads
        end local 9 // com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync transformer
        end local 8 // org.bson.codecs.Decoder commandResultDecoder
        end local 7 // org.bson.FieldNameValidator fieldNameValidator
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 5 // org.bson.BsonDocument originalCommand
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // java.lang.String database
        end local 2 // com.mongodb.connection.AsyncConnection oldConnection
        end local 1 // com.mongodb.binding.AsyncConnectionSource oldSource
        end local 0 // com.mongodb.binding.AsyncReadBinding binding
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0               binding  Lcom/mongodb/binding/AsyncReadBinding;
            0    1     1             oldSource  Lcom/mongodb/binding/AsyncConnectionSource;
            0    1     2         oldConnection  Lcom/mongodb/connection/AsyncConnection;
            0    1     3              database  Ljava/lang/String;
            0    1     4        readPreference  Lcom/mongodb/ReadPreference;
            0    1     5       originalCommand  Lorg/bson/BsonDocument;
            0    1     6        commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    1     7    fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    1     8  commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    1     9           transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<TT;TR;>;
            0    1    10            retryReads  Z
            0    1    11              callback  Lcom/mongodb/async/SingleResultCallback<TR;>;
    Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncReadBinding;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/BsonDocument;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/operation/CommandOperationHelper$CommandReadTransformerAsync<TT;TR;>;ZLcom/mongodb/async/SingleResultCallback<TR;>;)Lcom/mongodb/async/SingleResultCallback<TT;>;
    MethodParameters:
                      Name  Flags
      binding               final
      oldSource             final
      oldConnection         final
      database              final
      readPreference        final
      originalCommand       final
      commandCreator        final
      fieldNameValidator    final
      commandResultDecoder  final
      transformer           final
      retryReads            final
      callback              final

  static void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, java.lang.String, org.bson.BsonDocument, com.mongodb.async.SingleResultCallback<org.bson.BsonDocument>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // com.mongodb.async.SingleResultCallback callback
         0: .line 559
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            aload 3 /* callback */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 560
            return
        end local 3 // com.mongodb.async.SingleResultCallback callback
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    2     1  database  Ljava/lang/String;
            0    2     2   command  Lorg/bson/BsonDocument;
            0    2     3  callback  Lcom/mongodb/async/SingleResultCallback<Lorg/bson/BsonDocument;>;
    Signature: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/async/SingleResultCallback<Lorg/bson/BsonDocument;>;)V
    MethodParameters:
          Name  Flags
      binding   final
      database  final
      command   final
      callback  final

  static <T> void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<T>, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 567
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* decoder */
            new com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformerAsync
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformerAsync.<init>:()V
            aload 4 /* callback */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 568
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0   binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    2     1  database  Ljava/lang/String;
            0    2     2   command  Lorg/bson/BsonDocument;
            0    2     3   decoder  Lorg/bson/codecs/Decoder<TT;>;
            0    2     4  callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
          Name  Flags
      binding   final
      database  final
      command   final
      decoder   final
      callback  final

  static <T> void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, java.lang.String, org.bson.BsonDocument, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<org.bson.BsonDocument, T>, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 575
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            aload 3 /* transformer */
            aload 4 /* callback */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 576
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0      binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    2     1     database  Ljava/lang/String;
            0    2     2      command  Lorg/bson/BsonDocument;
            0    2     3  transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;TT;>;
            0    2     4     callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;TT;>;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
             Name  Flags
      binding      final
      database     final
      command      final
      transformer  final
      callback     final

  static <D, T> void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<D>, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<D, T>, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 583
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            new com.mongodb.internal.validator.NoOpFieldNameValidator
            dup
            invokespecial com.mongodb.internal.validator.NoOpFieldNameValidator.<init>:()V
            aload 3 /* decoder */
            aload 4 /* transformer */
            aload 5 /* callback */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 584
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0      binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    2     1     database  Ljava/lang/String;
            0    2     2      command  Lorg/bson/BsonDocument;
            0    2     3      decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    2     4  transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TD;TT;>;
            0    2     5     callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TD;TT;>;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
             Name  Flags
      binding      final
      database     final
      command      final
      decoder      final
      transformer  final
      callback     final

  static <T> void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<org.bson.BsonDocument>, com.mongodb.connection.AsyncConnection, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<org.bson.BsonDocument, T>, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.connection.AsyncConnection connection
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 6 // com.mongodb.async.SingleResultCallback callback
         0: .line 593
            ldc "binding"
            aload 0 /* binding */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 594
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* decoder */
            aload 4 /* connection */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 5 /* transformer */
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
         2: .line 595
            aload 6 /* callback */
         3: .line 594
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
         4: .line 596
            return
        end local 6 // com.mongodb.async.SingleResultCallback callback
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 4 // com.mongodb.connection.AsyncConnection connection
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0      binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    5     1     database  Ljava/lang/String;
            0    5     2      command  Lorg/bson/BsonDocument;
            0    5     3      decoder  Lorg/bson/codecs/Decoder<Lorg/bson/BsonDocument;>;
            0    5     4   connection  Lcom/mongodb/connection/AsyncConnection;
            0    5     5  transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;TT;>;
            0    5     6     callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<Lorg/bson/BsonDocument;>;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;TT;>;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
             Name  Flags
      binding      final
      database     final
      command      final
      decoder      final
      connection   final
      transformer  final
      callback     final

  static <T> void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, org.bson.codecs.Decoder<org.bson.BsonDocument>, com.mongodb.connection.AsyncConnection, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<org.bson.BsonDocument, T>, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=8, args_size=8
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // org.bson.codecs.Decoder decoder
        start local 5 // com.mongodb.connection.AsyncConnection connection
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 7 // com.mongodb.async.SingleResultCallback callback
         0: .line 606
            ldc "binding"
            aload 0 /* binding */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 607
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* fieldNameValidator */
            aload 4 /* decoder */
            aload 5 /* connection */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 6 /* transformer */
         2: .line 608
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            aload 7 /* callback */
         3: .line 607
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
         4: .line 609
            return
        end local 7 // com.mongodb.async.SingleResultCallback callback
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 5 // com.mongodb.connection.AsyncConnection connection
        end local 4 // org.bson.codecs.Decoder decoder
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0             binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    5     1            database  Ljava/lang/String;
            0    5     2             command  Lorg/bson/BsonDocument;
            0    5     3  fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    5     4             decoder  Lorg/bson/codecs/Decoder<Lorg/bson/BsonDocument;>;
            0    5     5          connection  Lcom/mongodb/connection/AsyncConnection;
            0    5     6         transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;TT;>;
            0    5     7            callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<Lorg/bson/BsonDocument;>;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;TT;>;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                    Name  Flags
      binding             final
      database            final
      command             final
      fieldNameValidator  final
      decoder             final
      connection          final
      transformer         final
      callback            final

  static <D, T> void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, org.bson.codecs.Decoder<D>, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<D, T>, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=12, locals=7, args_size=7
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // org.bson.codecs.Decoder decoder
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 6 // com.mongodb.async.SingleResultCallback callback
         0: .line 617
            aload 0 /* binding */
            new com.mongodb.operation.CommandOperationHelper$CommandProtocolExecutingCallback
            dup
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* fieldNameValidator */
            aload 4 /* decoder */
         1: .line 618
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 5 /* transformer */
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            aload 6 /* callback */
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            invokespecial com.mongodb.operation.CommandOperationHelper$CommandProtocolExecutingCallback.<init>:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 617
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getWriteConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 619
            return
        end local 6 // com.mongodb.async.SingleResultCallback callback
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 4 // org.bson.codecs.Decoder decoder
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0             binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    4     1            database  Ljava/lang/String;
            0    4     2             command  Lorg/bson/BsonDocument;
            0    4     3  fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    4     4             decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    4     5         transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TD;TT;>;
            0    4     6            callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TD;TT;>;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                    Name  Flags
      binding             final
      database            final
      command             final
      fieldNameValidator  final
      decoder             final
      transformer         final
      callback            final

  static void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, java.lang.String, org.bson.BsonDocument, com.mongodb.connection.AsyncConnection, com.mongodb.async.SingleResultCallback<org.bson.BsonDocument>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // com.mongodb.connection.AsyncConnection connection
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 626
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* command */
            aload 3 /* connection */
            new com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformerAsync
            dup
            invokespecial com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformerAsync.<init>:()V
            aload 4 /* callback */
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 627
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // com.mongodb.connection.AsyncConnection connection
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0     binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    2     1    database  Ljava/lang/String;
            0    2     2     command  Lorg/bson/BsonDocument;
            0    2     3  connection  Lcom/mongodb/connection/AsyncConnection;
            0    2     4    callback  Lcom/mongodb/async/SingleResultCallback<Lorg/bson/BsonDocument;>;
    Signature: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/async/SingleResultCallback<Lorg/bson/BsonDocument;>;)V
    MethodParameters:
            Name  Flags
      binding     final
      database    final
      command     final
      connection  final
      callback    final

  static <T> void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, java.lang.String, org.bson.BsonDocument, com.mongodb.connection.AsyncConnection, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<org.bson.BsonDocument, T>, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=6, args_size=6
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // org.bson.BsonDocument command
        start local 3 // com.mongodb.connection.AsyncConnection connection
        start local 4 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 5 // com.mongodb.async.SingleResultCallback callback
         0: .line 635
            ldc "binding"
            aload 0 /* binding */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 636
            aload 1 /* database */
            aload 2 /* command */
            new org.bson.codecs.BsonDocumentCodec
            dup
            invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
            aload 3 /* connection */
            invokestatic com.mongodb.ReadPreference.primary:()Lcom/mongodb/ReadPreference;
            aload 4 /* transformer */
         2: .line 637
            aload 0 /* binding */
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            aload 5 /* callback */
         3: .line 636
            invokestatic com.mongodb.operation.CommandOperationHelper.executeCommandAsync:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
         4: .line 638
            return
        end local 5 // com.mongodb.async.SingleResultCallback callback
        end local 4 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 3 // com.mongodb.connection.AsyncConnection connection
        end local 2 // org.bson.BsonDocument command
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0      binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    5     1     database  Ljava/lang/String;
            0    5     2      command  Lorg/bson/BsonDocument;
            0    5     3   connection  Lcom/mongodb/connection/AsyncConnection;
            0    5     4  transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;TT;>;
            0    5     5     callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lorg/bson/BsonDocument;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<Lorg/bson/BsonDocument;TT;>;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
             Name  Flags
      binding      final
      database     final
      command      final
      connection   final
      transformer  final
      callback     final

  private static <D, T> void executeCommandAsync(java.lang.String, org.bson.BsonDocument, org.bson.codecs.Decoder<D>, com.mongodb.connection.AsyncConnection, com.mongodb.ReadPreference, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<D, T>, com.mongodb.session.SessionContext, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=12, locals=8, args_size=8
        start local 0 // java.lang.String database
        start local 1 // org.bson.BsonDocument command
        start local 2 // org.bson.codecs.Decoder decoder
        start local 3 // com.mongodb.connection.AsyncConnection connection
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 6 // com.mongodb.session.SessionContext sessionContext
        start local 7 // com.mongodb.async.SingleResultCallback callback
         0: .line 647
            aload 3 /* connection */
            aload 0 /* database */
            aload 1 /* command */
            new com.mongodb.internal.validator.NoOpFieldNameValidator
            dup
            invokespecial com.mongodb.internal.validator.NoOpFieldNameValidator.<init>:()V
            aload 4 /* readPreference */
            aload 2 /* decoder */
            aload 6 /* sessionContext */
         1: .line 648
            new com.mongodb.operation.CommandOperationHelper$11
            dup
            aload 7 /* callback */
            aload 5 /* transformer */
            aload 3 /* connection */
            invokespecial com.mongodb.operation.CommandOperationHelper$11.<init>:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/connection/AsyncConnection;)V
         2: .line 647
            invokeinterface com.mongodb.connection.AsyncConnection.commandAsync:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 664
            return
        end local 7 // com.mongodb.async.SingleResultCallback callback
        end local 6 // com.mongodb.session.SessionContext sessionContext
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // com.mongodb.connection.AsyncConnection connection
        end local 2 // org.bson.codecs.Decoder decoder
        end local 1 // org.bson.BsonDocument command
        end local 0 // java.lang.String database
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0        database  Ljava/lang/String;
            0    4     1         command  Lorg/bson/BsonDocument;
            0    4     2         decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    4     3      connection  Lcom/mongodb/connection/AsyncConnection;
            0    4     4  readPreference  Lcom/mongodb/ReadPreference;
            0    4     5     transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TD;TT;>;
            0    4     6  sessionContext  Lcom/mongodb/session/SessionContext;
            0    4     7        callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TD;TT;>;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                Name  Flags
      database        final
      command         final
      decoder         final
      connection      final
      readPreference  final
      transformer     final
      sessionContext  final
      callback        final

  private static <D, T> void executeCommandAsync(java.lang.String, org.bson.BsonDocument, org.bson.FieldNameValidator, org.bson.codecs.Decoder<D>, com.mongodb.connection.AsyncConnection, com.mongodb.ReadPreference, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<D, T>, com.mongodb.session.SessionContext, com.mongodb.async.SingleResultCallback<T>);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=15, locals=9, args_size=9
        start local 0 // java.lang.String database
        start local 1 // org.bson.BsonDocument command
        start local 2 // org.bson.FieldNameValidator fieldNameValidator
        start local 3 // org.bson.codecs.Decoder decoder
        start local 4 // com.mongodb.connection.AsyncConnection connection
        start local 5 // com.mongodb.ReadPreference readPreference
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 7 // com.mongodb.session.SessionContext sessionContext
        start local 8 // com.mongodb.async.SingleResultCallback callback
         0: .line 673
            aload 4 /* connection */
            aload 0 /* database */
            aload 1 /* command */
            aload 2 /* fieldNameValidator */
            aload 5 /* readPreference */
            aload 3 /* decoder */
            aload 7 /* sessionContext */
            iconst_1
            aconst_null
            aconst_null
         1: .line 674
            new com.mongodb.operation.CommandOperationHelper$12
            dup
            aload 8 /* callback */
            aload 6 /* transformer */
            aload 4 /* connection */
            invokespecial com.mongodb.operation.CommandOperationHelper$12.<init>:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/connection/AsyncConnection;)V
         2: .line 673
            invokeinterface com.mongodb.connection.AsyncConnection.commandAsync:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 689
            return
        end local 8 // com.mongodb.async.SingleResultCallback callback
        end local 7 // com.mongodb.session.SessionContext sessionContext
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 5 // com.mongodb.ReadPreference readPreference
        end local 4 // com.mongodb.connection.AsyncConnection connection
        end local 3 // org.bson.codecs.Decoder decoder
        end local 2 // org.bson.FieldNameValidator fieldNameValidator
        end local 1 // org.bson.BsonDocument command
        end local 0 // java.lang.String database
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    4     0            database  Ljava/lang/String;
            0    4     1             command  Lorg/bson/BsonDocument;
            0    4     2  fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    4     3             decoder  Lorg/bson/codecs/Decoder<TD;>;
            0    4     4          connection  Lcom/mongodb/connection/AsyncConnection;
            0    4     5      readPreference  Lcom/mongodb/ReadPreference;
            0    4     6         transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TD;TT;>;
            0    4     7      sessionContext  Lcom/mongodb/session/SessionContext;
            0    4     8            callback  Lcom/mongodb/async/SingleResultCallback<TT;>;
    Signature: <D:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TD;>;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/ReadPreference;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TD;TT;>;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
    MethodParameters:
                    Name  Flags
      database            final
      command             final
      fieldNameValidator  final
      decoder             final
      connection          final
      readPreference      final
      transformer         final
      sessionContext      final
      callback            final

  static <T, R> R executeRetryableCommand(com.mongodb.binding.WriteBinding, java.lang.String, com.mongodb.ReadPreference, org.bson.FieldNameValidator, org.bson.codecs.Decoder<T>, com.mongodb.operation.CommandOperationHelper$CommandCreator, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<T, R>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.ReadPreference readPreference
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // org.bson.codecs.Decoder commandResultDecoder
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
         0: .line 695
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* readPreference */
            aload 3 /* fieldNameValidator */
            aload 4 /* commandResultDecoder */
            aload 5 /* commandCreator */
         1: .line 696
            aload 6 /* transformer */
            invokestatic com.mongodb.operation.CommandOperationHelper.noOpRetryCommandModifier:()Lcom/mongodb/Function;
         2: .line 695
            invokestatic com.mongodb.operation.CommandOperationHelper.executeRetryableCommand:(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Lcom/mongodb/Function;)Ljava/lang/Object;
            areturn
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 4 // org.bson.codecs.Decoder commandResultDecoder
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // com.mongodb.ReadPreference readPreference
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    3     0               binding  Lcom/mongodb/binding/WriteBinding;
            0    3     1              database  Ljava/lang/String;
            0    3     2        readPreference  Lcom/mongodb/ReadPreference;
            0    3     3    fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    3     4  commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    3     5        commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    3     6           transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TT;TR;>;
    Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TT;TR;>;)TR;
    MethodParameters:
                      Name  Flags
      binding               final
      database              final
      readPreference        final
      fieldNameValidator    final
      commandResultDecoder  final
      commandCreator        final
      transformer           final

  static <T, R> R executeRetryableCommand(com.mongodb.binding.WriteBinding, java.lang.String, com.mongodb.ReadPreference, org.bson.FieldNameValidator, org.bson.codecs.Decoder<T>, com.mongodb.operation.CommandOperationHelper$CommandCreator, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer<T, R>, com.mongodb.Function<org.bson.BsonDocument, org.bson.BsonDocument>);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Lcom/mongodb/Function;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=11, locals=8, args_size=8
        start local 0 // com.mongodb.binding.WriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.ReadPreference readPreference
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // org.bson.codecs.Decoder commandResultDecoder
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        start local 7 // com.mongodb.Function retryCommandModifier
         0: .line 703
            aload 0 /* binding */
            new com.mongodb.operation.CommandOperationHelper$13
            dup
            aload 5 /* commandCreator */
            aload 6 /* transformer */
            aload 1 /* database */
            aload 3 /* fieldNameValidator */
            aload 2 /* readPreference */
            aload 4 /* commandResultDecoder */
            aload 0 /* binding */
            aload 7 /* retryCommandModifier */
            invokespecial com.mongodb.operation.CommandOperationHelper$13.<init>:(Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer;Ljava/lang/String;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/Function;)V
            invokestatic com.mongodb.operation.OperationHelper.withReleasableConnection:(Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
            areturn
        end local 7 // com.mongodb.Function retryCommandModifier
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer transformer
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 4 // org.bson.codecs.Decoder commandResultDecoder
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // com.mongodb.ReadPreference readPreference
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.WriteBinding binding
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0               binding  Lcom/mongodb/binding/WriteBinding;
            0    1     1              database  Ljava/lang/String;
            0    1     2        readPreference  Lcom/mongodb/ReadPreference;
            0    1     3    fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    1     4  commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    1     5        commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    1     6           transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TT;TR;>;
            0    1     7  retryCommandModifier  Lcom/mongodb/Function<Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;>;
    Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/mongodb/binding/WriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformer<TT;TR;>;Lcom/mongodb/Function<Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;>;)TR;
    MethodParameters:
                      Name  Flags
      binding               final
      database              final
      readPreference        final
      fieldNameValidator    final
      commandResultDecoder  final
      commandCreator        final
      transformer           final
      retryCommandModifier  final

  static <T, R> void executeRetryableCommand(com.mongodb.binding.AsyncWriteBinding, java.lang.String, com.mongodb.ReadPreference, org.bson.FieldNameValidator, org.bson.codecs.Decoder<T>, com.mongodb.operation.CommandOperationHelper$CommandCreator, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<T, R>, com.mongodb.async.SingleResultCallback<R>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=9, locals=8, args_size=8
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.ReadPreference readPreference
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // org.bson.codecs.Decoder commandResultDecoder
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 7 // com.mongodb.async.SingleResultCallback originalCallback
         0: .line 755
            aload 0 /* binding */
            aload 1 /* database */
            aload 2 /* readPreference */
            aload 3 /* fieldNameValidator */
            aload 4 /* commandResultDecoder */
            aload 5 /* commandCreator */
            aload 6 /* transformer */
         1: .line 756
            invokestatic com.mongodb.operation.CommandOperationHelper.noOpRetryCommandModifier:()Lcom/mongodb/Function;
            aload 7 /* originalCallback */
         2: .line 755
            invokestatic com.mongodb.operation.CommandOperationHelper.executeRetryableCommand:(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/Function;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 757
            return
        end local 7 // com.mongodb.async.SingleResultCallback originalCallback
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 4 // org.bson.codecs.Decoder commandResultDecoder
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // com.mongodb.ReadPreference readPreference
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0               binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    4     1              database  Ljava/lang/String;
            0    4     2        readPreference  Lcom/mongodb/ReadPreference;
            0    4     3    fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    4     4  commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    4     5        commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    4     6           transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TT;TR;>;
            0    4     7      originalCallback  Lcom/mongodb/async/SingleResultCallback<TR;>;
    Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TT;TR;>;Lcom/mongodb/async/SingleResultCallback<TR;>;)V
    MethodParameters:
                      Name  Flags
      binding               final
      database              final
      readPreference        final
      fieldNameValidator    final
      commandResultDecoder  final
      commandCreator        final
      transformer           final
      originalCallback      final

  static <T, R> void executeRetryableCommand(com.mongodb.binding.AsyncWriteBinding, java.lang.String, com.mongodb.ReadPreference, org.bson.FieldNameValidator, org.bson.codecs.Decoder<T>, com.mongodb.operation.CommandOperationHelper$CommandCreator, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<T, R>, com.mongodb.Function<org.bson.BsonDocument, org.bson.BsonDocument>, com.mongodb.async.SingleResultCallback<R>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/Function;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=12, locals=10, args_size=9
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // java.lang.String database
        start local 2 // com.mongodb.ReadPreference readPreference
        start local 3 // org.bson.FieldNameValidator fieldNameValidator
        start local 4 // org.bson.codecs.Decoder commandResultDecoder
        start local 5 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        start local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 7 // com.mongodb.Function retryCommandModifier
        start local 8 // com.mongodb.async.SingleResultCallback originalCallback
         0: .line 765
            aload 8 /* originalCallback */
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            astore 9 /* errorHandlingCallback */
        start local 9 // com.mongodb.async.SingleResultCallback errorHandlingCallback
         1: .line 766
            aload 0 /* binding */
            new com.mongodb.operation.CommandOperationHelper$14
            dup
            aload 9 /* errorHandlingCallback */
            aload 5 /* commandCreator */
            aload 1 /* database */
            aload 3 /* fieldNameValidator */
            aload 2 /* readPreference */
            aload 4 /* commandResultDecoder */
            aload 0 /* binding */
            aload 6 /* transformer */
            aload 7 /* retryCommandModifier */
            invokespecial com.mongodb.operation.CommandOperationHelper$14.<init>:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Ljava/lang/String;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/Function;)V
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getWriteConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
         2: .line 795
            return
        end local 9 // com.mongodb.async.SingleResultCallback errorHandlingCallback
        end local 8 // com.mongodb.async.SingleResultCallback originalCallback
        end local 7 // com.mongodb.Function retryCommandModifier
        end local 6 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 5 // com.mongodb.operation.CommandOperationHelper$CommandCreator commandCreator
        end local 4 // org.bson.codecs.Decoder commandResultDecoder
        end local 3 // org.bson.FieldNameValidator fieldNameValidator
        end local 2 // com.mongodb.ReadPreference readPreference
        end local 1 // java.lang.String database
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    3     1               database  Ljava/lang/String;
            0    3     2         readPreference  Lcom/mongodb/ReadPreference;
            0    3     3     fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    3     4   commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    3     5         commandCreator  Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;
            0    3     6            transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TT;TR;>;
            0    3     7   retryCommandModifier  Lcom/mongodb/Function<Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;>;
            0    3     8       originalCallback  Lcom/mongodb/async/SingleResultCallback<TR;>;
            1    3     9  errorHandlingCallback  Lcom/mongodb/async/SingleResultCallback<TR;>;
    Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/operation/CommandOperationHelper$CommandCreator;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TT;TR;>;Lcom/mongodb/Function<Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;>;Lcom/mongodb/async/SingleResultCallback<TR;>;)V
    MethodParameters:
                      Name  Flags
      binding               final
      database              final
      readPreference        final
      fieldNameValidator    final
      commandResultDecoder  final
      commandCreator        final
      transformer           final
      retryCommandModifier  final
      originalCallback      final

  private static <T, R> com.mongodb.async.SingleResultCallback<T> createCommandCallback(com.mongodb.binding.AsyncWriteBinding, com.mongodb.binding.AsyncConnectionSource, com.mongodb.connection.AsyncConnection, java.lang.String, com.mongodb.ReadPreference, org.bson.BsonDocument, org.bson.FieldNameValidator, org.bson.codecs.Decoder<T>, com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync<T, R>, com.mongodb.Function<org.bson.BsonDocument, org.bson.BsonDocument>, com.mongodb.async.SingleResultCallback<R>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lcom/mongodb/Function;Lcom/mongodb/async/SingleResultCallback;)Lcom/mongodb/async/SingleResultCallback;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=13, locals=11, args_size=11
        start local 0 // com.mongodb.binding.AsyncWriteBinding binding
        start local 1 // com.mongodb.binding.AsyncConnectionSource oldSource
        start local 2 // com.mongodb.connection.AsyncConnection oldConnection
        start local 3 // java.lang.String database
        start local 4 // com.mongodb.ReadPreference readPreference
        start local 5 // org.bson.BsonDocument command
        start local 6 // org.bson.FieldNameValidator fieldNameValidator
        start local 7 // org.bson.codecs.Decoder commandResultDecoder
        start local 8 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        start local 9 // com.mongodb.Function retryCommandModifier
        start local 10 // com.mongodb.async.SingleResultCallback callback
         0: .line 808
            new com.mongodb.operation.CommandOperationHelper$15
            dup
            aload 10 /* callback */
            aload 1 /* oldSource */
            aload 2 /* oldConnection */
            aload 8 /* transformer */
            aload 5 /* command */
            aload 0 /* binding */
            aload 9 /* retryCommandModifier */
            aload 3 /* database */
            aload 6 /* fieldNameValidator */
            aload 4 /* readPreference */
            aload 7 /* commandResultDecoder */
            invokespecial com.mongodb.operation.CommandOperationHelper$15.<init>:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync;Lorg/bson/BsonDocument;Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/Function;Ljava/lang/String;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;)V
            areturn
        end local 10 // com.mongodb.async.SingleResultCallback callback
        end local 9 // com.mongodb.Function retryCommandModifier
        end local 8 // com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync transformer
        end local 7 // org.bson.codecs.Decoder commandResultDecoder
        end local 6 // org.bson.FieldNameValidator fieldNameValidator
        end local 5 // org.bson.BsonDocument command
        end local 4 // com.mongodb.ReadPreference readPreference
        end local 3 // java.lang.String database
        end local 2 // com.mongodb.connection.AsyncConnection oldConnection
        end local 1 // com.mongodb.binding.AsyncConnectionSource oldSource
        end local 0 // com.mongodb.binding.AsyncWriteBinding binding
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    1     0               binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    1     1             oldSource  Lcom/mongodb/binding/AsyncConnectionSource;
            0    1     2         oldConnection  Lcom/mongodb/connection/AsyncConnection;
            0    1     3              database  Ljava/lang/String;
            0    1     4        readPreference  Lcom/mongodb/ReadPreference;
            0    1     5               command  Lorg/bson/BsonDocument;
            0    1     6    fieldNameValidator  Lorg/bson/FieldNameValidator;
            0    1     7  commandResultDecoder  Lorg/bson/codecs/Decoder<TT;>;
            0    1     8           transformer  Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TT;TR;>;
            0    1     9  retryCommandModifier  Lcom/mongodb/Function<Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;>;
            0    1    10              callback  Lcom/mongodb/async/SingleResultCallback<TR;>;
    Signature: <T:Ljava/lang/Object;R:Ljava/lang/Object;>(Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/connection/AsyncConnection;Ljava/lang/String;Lcom/mongodb/ReadPreference;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/operation/CommandOperationHelper$CommandWriteTransformerAsync<TT;TR;>;Lcom/mongodb/Function<Lorg/bson/BsonDocument;Lorg/bson/BsonDocument;>;Lcom/mongodb/async/SingleResultCallback<TR;>;)Lcom/mongodb/async/SingleResultCallback<TT;>;
    MethodParameters:
                      Name  Flags
      binding               final
      oldSource             final
      oldConnection         final
      database              final
      readPreference        final
      command               final
      fieldNameValidator    final
      commandResultDecoder  final
      transformer           final
      retryCommandModifier  final
      callback              final

  static boolean isRetryableException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 892
            aload 0 /* t */
            instanceof com.mongodb.MongoException
            ifne 2
         1: .line 893
            iconst_0
            ireturn
         2: .line 896
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            instanceof com.mongodb.MongoSocketException
            ifne 3
            aload 0 /* t */
            instanceof com.mongodb.MongoNotPrimaryException
            ifne 3
            aload 0 /* t */
            instanceof com.mongodb.MongoNodeIsRecoveringException
            ifeq 4
         3: .line 897
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 899
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            astore 1 /* errorMessage */
        start local 1 // java.lang.String errorMessage
         5: .line 900
            aload 0 /* t */
            instanceof com.mongodb.MongoWriteConcernException
            ifeq 7
         6: .line 901
            aload 0 /* t */
            checkcast com.mongodb.MongoWriteConcernException
            invokevirtual com.mongodb.MongoWriteConcernException.getWriteConcernError:()Lcom/mongodb/bulk/WriteConcernError;
            invokevirtual com.mongodb.bulk.WriteConcernError.getMessage:()Ljava/lang/String;
            astore 1 /* errorMessage */
         7: .line 903
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* errorMessage */
            ldc "not master"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 8
            aload 1 /* errorMessage */
            ldc "node is recovering"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 9
         8: .line 904
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         9: .line 906
      StackMap locals:
      StackMap stack:
            getstatic com.mongodb.operation.CommandOperationHelper.RETRYABLE_ERROR_CODES:Ljava/util/List;
            aload 0 /* t */
            checkcast com.mongodb.MongoException
            invokevirtual com.mongodb.MongoException.getCode:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String errorMessage
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0             t  Ljava/lang/Throwable;
            5   10     1  errorMessage  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      t     final

  static void rethrowIfNotNamespaceError(com.mongodb.MongoCommandException);
    descriptor: (Lcom/mongodb/MongoCommandException;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mongodb.MongoCommandException e
         0: .line 912
            aload 0 /* e */
            aconst_null
            invokestatic com.mongodb.operation.CommandOperationHelper.rethrowIfNotNamespaceError:(Lcom/mongodb/MongoCommandException;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 913
            return
        end local 0 // com.mongodb.MongoCommandException e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     e  Lcom/mongodb/MongoCommandException;
    MethodParameters:
      Name  Flags
      e     final

  static <T> T rethrowIfNotNamespaceError(com.mongodb.MongoCommandException, );
    descriptor: (Lcom/mongodb/MongoCommandException;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.mongodb.MongoCommandException e
        start local 1 // java.lang.Object defaultValue
         0: .line 916
            aload 0 /* e */
            invokestatic com.mongodb.operation.CommandOperationHelper.isNamespaceError:(Ljava/lang/Throwable;)Z
            ifne 2
         1: .line 917
            aload 0 /* e */
            athrow
         2: .line 919
      StackMap locals:
      StackMap stack:
            aload 1 /* defaultValue */
            areturn
        end local 1 // java.lang.Object defaultValue
        end local 0 // com.mongodb.MongoCommandException e
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0             e  Lcom/mongodb/MongoCommandException;
            0    3     1  defaultValue  TT;
    Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/MongoCommandException;TT;)TT;
    MethodParameters:
              Name  Flags
      e             final
      defaultValue  final

  static boolean isNamespaceError(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 923
            aload 0 /* t */
            instanceof com.mongodb.MongoCommandException
            ifeq 4
         1: .line 924
            aload 0 /* t */
            checkcast com.mongodb.MongoCommandException
            astore 1 /* e */
        start local 1 // com.mongodb.MongoCommandException e
         2: .line 925
            aload 1 /* e */
            invokevirtual com.mongodb.MongoCommandException.getErrorMessage:()Ljava/lang/String;
            ldc "ns not found"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifne 3
            aload 1 /* e */
            invokevirtual com.mongodb.MongoCommandException.getErrorCode:()I
            bipush 26
            if_icmpeq 3
            iconst_0
            ireturn
      StackMap locals: com.mongodb.MongoCommandException
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // com.mongodb.MongoCommandException e
         4: .line 927
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     t  Ljava/lang/Throwable;
            2    4     1     e  Lcom/mongodb/MongoCommandException;
    MethodParameters:
      Name  Flags
      t     final

  private static boolean shouldAttemptToRetryRead(boolean, java.lang.Throwable);
    descriptor: (ZLjava/lang/Throwable;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // boolean retryReadsEnabled
        start local 1 // java.lang.Throwable exception
         0: .line 986
            iload 0 /* retryReadsEnabled */
            ifeq 1
            aload 1 /* exception */
            invokestatic com.mongodb.operation.CommandOperationHelper.isRetryableException:(Ljava/lang/Throwable;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Throwable exception
        end local 0 // boolean retryReadsEnabled
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0  retryReadsEnabled  Z
            0    2     1          exception  Ljava/lang/Throwable;
    MethodParameters:
                   Name  Flags
      retryReadsEnabled  final
      exception          final

  private static boolean shouldAttemptToRetryWrite(org.bson.BsonDocument, java.lang.Throwable);
    descriptor: (Lorg/bson/BsonDocument;Ljava/lang/Throwable;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.bson.BsonDocument command
        start local 1 // java.lang.Throwable exception
         0: .line 990
            aload 0 /* command */
            invokestatic com.mongodb.operation.CommandOperationHelper.isRetryWritesEnabled:(Lorg/bson/BsonDocument;)Z
            ifeq 1
            aload 1 /* exception */
            invokestatic com.mongodb.operation.CommandOperationHelper.isRetryableException:(Ljava/lang/Throwable;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Throwable exception
        end local 0 // org.bson.BsonDocument command
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0    command  Lorg/bson/BsonDocument;
            0    2     1  exception  Ljava/lang/Throwable;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
      1:
    MethodParameters:
           Name  Flags
      command    final
      exception  final

  private static boolean isRetryWritesEnabled(org.bson.BsonDocument);
    descriptor: (Lorg/bson/BsonDocument;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BsonDocument command
         0: .line 994
            aload 0 /* command */
            ifnull 3
            aload 0 /* command */
            ldc "txnNumber"
            invokevirtual org.bson.BsonDocument.containsKey:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 995
            aload 0 /* command */
            invokevirtual org.bson.BsonDocument.getFirstKey:()Ljava/lang/String;
            ldc "commitTransaction"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            aload 0 /* command */
            invokevirtual org.bson.BsonDocument.getFirstKey:()Ljava/lang/String;
            ldc "abortTransaction"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 994
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // org.bson.BsonDocument command
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  command  Lorg/bson/BsonDocument;
    RuntimeVisibleParameterAnnotations: 
      0:
        com.mongodb.lang.Nullable()
    MethodParameters:
         Name  Flags
      command  final

  static boolean shouldAttemptToRetryWrite(boolean, java.lang.Throwable);
    descriptor: (ZLjava/lang/Throwable;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // boolean retryWritesEnabled
        start local 1 // java.lang.Throwable exception
         0: .line 999
            iload 0 /* retryWritesEnabled */
            ifeq 1
            aload 1 /* exception */
            invokestatic com.mongodb.operation.CommandOperationHelper.isRetryableException:(Ljava/lang/Throwable;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Throwable exception
        end local 0 // boolean retryWritesEnabled
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0  retryWritesEnabled  Z
            0    2     1           exception  Ljava/lang/Throwable;
    MethodParameters:
                    Name  Flags
      retryWritesEnabled  final
      exception           final

  static void logRetryExecute(java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.lang.String operation
        start local 1 // java.lang.Throwable originalError
         0: .line 1003
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokeinterface com.mongodb.diagnostics.logging.Logger.isDebugEnabled:()Z
            ifeq 2
         1: .line 1004
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Retrying operation %s due to an error \"%s\""
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* operation */
            aastore
            dup
            iconst_1
            aload 1 /* originalError */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         2: .line 1006
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable originalError
        end local 0 // java.lang.String operation
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0      operation  Ljava/lang/String;
            0    3     1  originalError  Ljava/lang/Throwable;
    MethodParameters:
               Name  Flags
      operation      final
      originalError  final

  static void logUnableToRetry(java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // java.lang.String operation
        start local 1 // java.lang.Throwable originalError
         0: .line 1009
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokeinterface com.mongodb.diagnostics.logging.Logger.isDebugEnabled:()Z
            ifeq 2
         1: .line 1010
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            ldc "Unable to retry operation %s due to error \"%s\""
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* operation */
            aastore
            dup
            iconst_1
            aload 1 /* originalError */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
         2: .line 1012
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable originalError
        end local 0 // java.lang.String operation
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0      operation  Ljava/lang/String;
            0    3     1  originalError  Ljava/lang/Throwable;
    MethodParameters:
               Name  Flags
      operation      final
      originalError  final

  static com.mongodb.MongoException transformWriteException(com.mongodb.MongoException);
    descriptor: (Lcom/mongodb/MongoException;)Lcom/mongodb/MongoException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.mongodb.MongoException exception
         0: .line 1015
            aload 0 /* exception */
            invokevirtual com.mongodb.MongoException.getCode:()I
            bipush 20
            if_icmpne 4
            aload 0 /* exception */
            invokevirtual com.mongodb.MongoException.getMessage:()Ljava/lang/String;
            ldc "Transaction numbers"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 4
         1: .line 1016
            new com.mongodb.MongoClientException
            dup
            ldc "This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string."
         2: .line 1017
            aload 0 /* exception */
         3: .line 1016
            invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            areturn
         4: .line 1019
      StackMap locals:
      StackMap stack:
            aload 0 /* exception */
            areturn
        end local 0 // com.mongodb.MongoException exception
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0  exception  Lcom/mongodb/MongoException;
    MethodParameters:
           Name  Flags
      exception  final

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.CommandOperationHelper this
         0: .line 1022
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1023
            return
        end local 0 // com.mongodb.operation.CommandOperationHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/mongodb/operation/CommandOperationHelper;
}
SourceFile: "CommandOperationHelper.java"
NestMembers:
  com.mongodb.operation.CommandOperationHelper$1  com.mongodb.operation.CommandOperationHelper$10  com.mongodb.operation.CommandOperationHelper$10$1  com.mongodb.operation.CommandOperationHelper$11  com.mongodb.operation.CommandOperationHelper$12  com.mongodb.operation.CommandOperationHelper$13  com.mongodb.operation.CommandOperationHelper$13$1  com.mongodb.operation.CommandOperationHelper$14  com.mongodb.operation.CommandOperationHelper$14$1  com.mongodb.operation.CommandOperationHelper$15  com.mongodb.operation.CommandOperationHelper$15$1  com.mongodb.operation.CommandOperationHelper$2  com.mongodb.operation.CommandOperationHelper$3  com.mongodb.operation.CommandOperationHelper$4  com.mongodb.operation.CommandOperationHelper$5  com.mongodb.operation.CommandOperationHelper$6  com.mongodb.operation.CommandOperationHelper$7  com.mongodb.operation.CommandOperationHelper$8  com.mongodb.operation.CommandOperationHelper$9  com.mongodb.operation.CommandOperationHelper$CommandCreator  com.mongodb.operation.CommandOperationHelper$CommandProtocolExecutingCallback  com.mongodb.operation.CommandOperationHelper$CommandProtocolExecutingCallback$1  com.mongodb.operation.CommandOperationHelper$CommandProtocolExecutingCallback$1$1  com.mongodb.operation.CommandOperationHelper$CommandReadTransformer  com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync  com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer  com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync  com.mongodb.operation.CommandOperationHelper$IdentityReadTransformer  com.mongodb.operation.CommandOperationHelper$IdentityTransformerAsync  com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformer  com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformerAsync  com.mongodb.operation.CommandOperationHelper$TransformingReadResultCallback  com.mongodb.operation.CommandOperationHelper$TransformingWriteResultCallback
InnerClasses:
  com.mongodb.operation.CommandOperationHelper$1
  com.mongodb.operation.CommandOperationHelper$10
  com.mongodb.operation.CommandOperationHelper$11
  com.mongodb.operation.CommandOperationHelper$12
  com.mongodb.operation.CommandOperationHelper$13
  com.mongodb.operation.CommandOperationHelper$14
  com.mongodb.operation.CommandOperationHelper$15
  com.mongodb.operation.CommandOperationHelper$2
  com.mongodb.operation.CommandOperationHelper$3
  com.mongodb.operation.CommandOperationHelper$4
  com.mongodb.operation.CommandOperationHelper$5
  com.mongodb.operation.CommandOperationHelper$6
  com.mongodb.operation.CommandOperationHelper$7
  com.mongodb.operation.CommandOperationHelper$8
  com.mongodb.operation.CommandOperationHelper$9
  abstract CommandCreator = com.mongodb.operation.CommandOperationHelper$CommandCreator of com.mongodb.operation.CommandOperationHelper
  private CommandProtocolExecutingCallback = com.mongodb.operation.CommandOperationHelper$CommandProtocolExecutingCallback of com.mongodb.operation.CommandOperationHelper
  abstract CommandReadTransformer = com.mongodb.operation.CommandOperationHelper$CommandReadTransformer of com.mongodb.operation.CommandOperationHelper
  abstract CommandReadTransformerAsync = com.mongodb.operation.CommandOperationHelper$CommandReadTransformerAsync of com.mongodb.operation.CommandOperationHelper
  abstract CommandWriteTransformer = com.mongodb.operation.CommandOperationHelper$CommandWriteTransformer of com.mongodb.operation.CommandOperationHelper
  abstract CommandWriteTransformerAsync = com.mongodb.operation.CommandOperationHelper$CommandWriteTransformerAsync of com.mongodb.operation.CommandOperationHelper
  IdentityReadTransformer = com.mongodb.operation.CommandOperationHelper$IdentityReadTransformer of com.mongodb.operation.CommandOperationHelper
  IdentityTransformerAsync = com.mongodb.operation.CommandOperationHelper$IdentityTransformerAsync of com.mongodb.operation.CommandOperationHelper
  IdentityWriteTransformer = com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformer of com.mongodb.operation.CommandOperationHelper
  IdentityWriteTransformerAsync = com.mongodb.operation.CommandOperationHelper$IdentityWriteTransformerAsync of com.mongodb.operation.CommandOperationHelper
  TransformingReadResultCallback = com.mongodb.operation.CommandOperationHelper$TransformingReadResultCallback of com.mongodb.operation.CommandOperationHelper
  TransformingWriteResultCallback = com.mongodb.operation.CommandOperationHelper$TransformingWriteResultCallback of com.mongodb.operation.CommandOperationHelper
  abstract AsyncCallableWithConnectionAndSource = com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource of com.mongodb.operation.OperationHelper
  abstract CallableWithConnectionAndSource = com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource of com.mongodb.operation.OperationHelper
  abstract CallableWithSource = com.mongodb.operation.OperationHelper$CallableWithSource of com.mongodb.operation.OperationHelper