public final class org.bson.BsonDocumentWrapper<T> extends org.bson.BsonDocument
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.bson.BsonDocumentWrapper
  super_class: org.bson.BsonDocument
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final transient T wrappedDocument;
    descriptor: Ljava/lang/Object;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT
    Signature: TT;

  private final transient org.bson.codecs.Encoder<T> encoder;
    descriptor: Lorg/bson/codecs/Encoder;
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT
    Signature: Lorg/bson/codecs/Encoder<TT;>;

  private org.bson.BsonDocument unwrapped;
    descriptor: Lorg/bson/BsonDocument;
    flags: (0x0002) ACC_PRIVATE

  public static org.bson.BsonDocument asBsonDocument(java.lang.Object, org.bson.codecs.configuration.CodecRegistry);
    descriptor: (Ljava/lang/Object;Lorg/bson/codecs/configuration/CodecRegistry;)Lorg/bson/BsonDocument;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.Object document
        start local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
         0: .line 57
            aload 0 /* document */
            ifnonnull 2
         1: .line 58
            aconst_null
            areturn
         2: .line 60
      StackMap locals:
      StackMap stack:
            aload 0 /* document */
            instanceof org.bson.BsonDocument
            ifeq 4
         3: .line 61
            aload 0 /* document */
            checkcast org.bson.BsonDocument
            areturn
         4: .line 63
      StackMap locals:
      StackMap stack:
            new org.bson.BsonDocumentWrapper
            dup
            aload 0 /* document */
            aload 1 /* codecRegistry */
            aload 0 /* document */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokeinterface org.bson.codecs.configuration.CodecRegistry.get:(Ljava/lang/Class;)Lorg/bson/codecs/Codec;
            invokespecial org.bson.BsonDocumentWrapper.<init>:(Ljava/lang/Object;Lorg/bson/codecs/Encoder;)V
            areturn
        end local 1 // org.bson.codecs.configuration.CodecRegistry codecRegistry
        end local 0 // java.lang.Object document
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0       document  Ljava/lang/Object;
            0    5     1  codecRegistry  Lorg/bson/codecs/configuration/CodecRegistry;
    MethodParameters:
               Name  Flags
      document       final
      codecRegistry  final

  public void <init>(T, org.bson.codecs.Encoder<T>);
    descriptor: (Ljava/lang/Object;Lorg/bson/codecs/Encoder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.BsonDocumentWrapper this
        start local 1 // java.lang.Object wrappedDocument
        start local 2 // org.bson.codecs.Encoder encoder
         0: .line 73
            aload 0 /* this */
            invokespecial org.bson.BsonDocument.<init>:()V
         1: .line 74
            aload 1 /* wrappedDocument */
            ifnonnull 3
         2: .line 75
            new java.lang.IllegalArgumentException
            dup
            ldc "Document can not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 77
      StackMap locals: org.bson.BsonDocumentWrapper java.lang.Object org.bson.codecs.Encoder
      StackMap stack:
            aload 0 /* this */
            aload 1 /* wrappedDocument */
            putfield org.bson.BsonDocumentWrapper.wrappedDocument:Ljava/lang/Object;
         4: .line 78
            aload 0 /* this */
            aload 2 /* encoder */
            putfield org.bson.BsonDocumentWrapper.encoder:Lorg/bson/codecs/Encoder;
         5: .line 79
            return
        end local 2 // org.bson.codecs.Encoder encoder
        end local 1 // java.lang.Object wrappedDocument
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/bson/BsonDocumentWrapper<TT;>;
            0    6     1  wrappedDocument  TT;
            0    6     2          encoder  Lorg/bson/codecs/Encoder<TT;>;
    Signature: (TT;Lorg/bson/codecs/Encoder<TT;>;)V
    MethodParameters:
                 Name  Flags
      wrappedDocument  final
      encoder          final

  public T getWrappedDocument();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 87
            aload 0 /* this */
            getfield org.bson.BsonDocumentWrapper.wrappedDocument:Ljava/lang/Object;
            areturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
    Signature: ()TT;

  public org.bson.codecs.Encoder<T> getEncoder();
    descriptor: ()Lorg/bson/codecs/Encoder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 96
            aload 0 /* this */
            getfield org.bson.BsonDocumentWrapper.encoder:Lorg/bson/codecs/Encoder;
            areturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
    Signature: ()Lorg/bson/codecs/Encoder<TT;>;

  public boolean isUnwrapped();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 105
            aload 0 /* this */
            getfield org.bson.BsonDocumentWrapper.unwrapped:Lorg/bson/BsonDocument;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 110
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.size:()I
            ireturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 115
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.isEmpty:()Z
            ireturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;

  public boolean containsKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWrapper this
        start local 1 // java.lang.Object key
         0: .line 120
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            aload 1 /* key */
            invokevirtual org.bson.BsonDocument.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public boolean containsValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWrapper this
        start local 1 // java.lang.Object value
         0: .line 125
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            aload 1 /* value */
            invokevirtual org.bson.BsonDocument.containsValue:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object value
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bson/BsonDocumentWrapper<TT;>;
            0    1     1  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  final

  public org.bson.BsonValue get(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/bson/BsonValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWrapper this
        start local 1 // java.lang.Object key
         0: .line 130
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            aload 1 /* key */
            invokevirtual org.bson.BsonDocument.get:(Ljava/lang/Object;)Lorg/bson/BsonValue;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public org.bson.BsonValue put(java.lang.String, org.bson.BsonValue);
    descriptor: (Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.BsonDocumentWrapper this
        start local 1 // java.lang.String key
        start local 2 // org.bson.BsonValue value
         0: .line 135
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            aload 1 /* key */
            aload 2 /* value */
            invokevirtual org.bson.BsonDocument.put:(Ljava/lang/String;Lorg/bson/BsonValue;)Lorg/bson/BsonValue;
            areturn
        end local 2 // org.bson.BsonValue value
        end local 1 // java.lang.String key
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/bson/BsonDocumentWrapper<TT;>;
            0    1     1    key  Ljava/lang/String;
            0    1     2  value  Lorg/bson/BsonValue;
    MethodParameters:
       Name  Flags
      key    final
      value  final

  public org.bson.BsonValue remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/bson/BsonValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWrapper this
        start local 1 // java.lang.Object key
         0: .line 140
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            aload 1 /* key */
            invokevirtual org.bson.BsonDocument.remove:(Ljava/lang/Object;)Lorg/bson/BsonValue;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   final

  public void putAll(java.util.Map<? extends java.lang.String, ? extends org.bson.BsonValue>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWrapper this
        start local 1 // java.util.Map m
         0: .line 145
            aload 0 /* this */
            aload 1 /* m */
            invokespecial org.bson.BsonDocument.putAll:(Ljava/util/Map;)V
         1: .line 146
            return
        end local 1 // java.util.Map m
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
            0    2     1     m  Ljava/util/Map<+Ljava/lang/String;+Lorg/bson/BsonValue;>;
    Signature: (Ljava/util/Map<+Ljava/lang/String;+Lorg/bson/BsonValue;>;)V
    MethodParameters:
      Name  Flags
      m     final

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 150
            aload 0 /* this */
            invokespecial org.bson.BsonDocument.clear:()V
         1: .line 151
            return
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;

  public java.util.Set<java.lang.String> keySet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 155
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.keySet:()Ljava/util/Set;
            areturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public java.util.Collection<org.bson.BsonValue> values();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 160
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.values:()Ljava/util/Collection;
            areturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
    Signature: ()Ljava/util/Collection<Lorg/bson/BsonValue;>;

  public java.util.Set<java.util.Map$Entry<java.lang.String, org.bson.BsonValue>> entrySet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 165
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.entrySet:()Ljava/util/Set;
            areturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
    Signature: ()Ljava/util/Set<Ljava/util/Map$Entry<Ljava/lang/String;Lorg/bson/BsonValue;>;>;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWrapper this
        start local 1 // java.lang.Object o
         0: .line 170
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            aload 1 /* o */
            invokevirtual org.bson.BsonDocument.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;
            0    1     1     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     final

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 175
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.hashCode:()I
            ireturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 180
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;

  public org.bson.BsonDocument clone();
    descriptor: ()Lorg/bson/BsonDocument;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 185
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            invokevirtual org.bson.BsonDocument.clone:()Lorg/bson/BsonDocument;
            areturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;

  private org.bson.BsonDocument getUnwrapped();
    descriptor: ()Lorg/bson/BsonDocument;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 189
            aload 0 /* this */
            getfield org.bson.BsonDocumentWrapper.encoder:Lorg/bson/codecs/Encoder;
            ifnonnull 2
         1: .line 190
            new org.bson.BsonInvalidOperationException
            dup
            ldc "Can not unwrap a BsonDocumentWrapper with no Encoder"
            invokespecial org.bson.BsonInvalidOperationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.BsonDocumentWrapper.unwrapped:Lorg/bson/BsonDocument;
            ifnonnull 7
         3: .line 193
            new org.bson.BsonDocument
            dup
            invokespecial org.bson.BsonDocument.<init>:()V
            astore 1 /* unwrapped */
        start local 1 // org.bson.BsonDocument unwrapped
         4: .line 194
            new org.bson.BsonDocumentWriter
            dup
            aload 1 /* unwrapped */
            invokespecial org.bson.BsonDocumentWriter.<init>:(Lorg/bson/BsonDocument;)V
            astore 2 /* writer */
        start local 2 // org.bson.BsonWriter writer
         5: .line 195
            aload 0 /* this */
            getfield org.bson.BsonDocumentWrapper.encoder:Lorg/bson/codecs/Encoder;
            aload 2 /* writer */
            aload 0 /* this */
            getfield org.bson.BsonDocumentWrapper.wrappedDocument:Ljava/lang/Object;
            invokestatic org.bson.codecs.EncoderContext.builder:()Lorg/bson/codecs/EncoderContext$Builder;
            invokevirtual org.bson.codecs.EncoderContext$Builder.build:()Lorg/bson/codecs/EncoderContext;
            invokeinterface org.bson.codecs.Encoder.encode:(Lorg/bson/BsonWriter;Ljava/lang/Object;Lorg/bson/codecs/EncoderContext;)V
         6: .line 196
            aload 0 /* this */
            aload 1 /* unwrapped */
            putfield org.bson.BsonDocumentWrapper.unwrapped:Lorg/bson/BsonDocument;
        end local 2 // org.bson.BsonWriter writer
        end local 1 // org.bson.BsonDocument unwrapped
         7: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.BsonDocumentWrapper.unwrapped:Lorg/bson/BsonDocument;
            areturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lorg/bson/BsonDocumentWrapper<TT;>;
            4    7     1  unwrapped  Lorg/bson/BsonDocument;
            5    7     2     writer  Lorg/bson/BsonWriter;

  private java.lang.Object writeReplace();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BsonDocumentWrapper this
         0: .line 203
            aload 0 /* this */
            invokevirtual org.bson.BsonDocumentWrapper.getUnwrapped:()Lorg/bson/BsonDocument;
            areturn
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BsonDocumentWrapper<TT;>;

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.BsonDocumentWrapper this
        start local 1 // java.io.ObjectInputStream stream
         0: .line 208
            new java.io.InvalidObjectException
            dup
            ldc "Proxy required"
            invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.ObjectInputStream stream
        end local 0 // org.bson.BsonDocumentWrapper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/bson/BsonDocumentWrapper<TT;>;
            0    1     1  stream  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.io.InvalidObjectException
    MethodParameters:
        Name  Flags
      stream  final

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.bson.BsonDocumentWrapper.clone:()Lorg/bson/BsonDocument;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
Signature: <T:Ljava/lang/Object;>Lorg/bson/BsonDocument;
SourceFile: "BsonDocumentWrapper.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final Builder = org.bson.codecs.EncoderContext$Builder of org.bson.codecs.EncoderContext