public class org.bson.BasicBSONCallback implements org.bson.BSONCallback
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bson.BasicBSONCallback
  super_class: java.lang.Object
{
  private java.lang.Object root;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.LinkedList<org.bson.BSONObject> stack;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/LinkedList<Lorg/bson/BSONObject;>;

  private final java.util.LinkedList<java.lang.String> nameStack;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/LinkedList<Ljava/lang/String;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
         2: .line 52
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield org.bson.BasicBSONCallback.nameStack:Ljava/util/LinkedList;
         3: .line 53
            aload 0 /* this */
            invokevirtual org.bson.BasicBSONCallback.reset:()V
         4: .line 54
            return
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/BasicBSONCallback;

  public java.lang.Object get();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 58
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.root:Ljava/lang/Object;
            areturn
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BasicBSONCallback;

  public org.bson.BSONObject create();
    descriptor: ()Lorg/bson/BSONObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 67
            new org.bson.BasicBSONObject
            dup
            invokespecial org.bson.BasicBSONObject.<init>:()V
            areturn
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BasicBSONCallback;

  protected org.bson.BSONObject createList();
    descriptor: ()Lorg/bson/BSONObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 76
            new org.bson.types.BasicBSONList
            dup
            invokespecial org.bson.types.BasicBSONList.<init>:()V
            areturn
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BasicBSONCallback;

  public org.bson.BSONCallback createBSONCallback();
    descriptor: ()Lorg/bson/BSONCallback;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 81
            new org.bson.BasicBSONCallback
            dup
            invokespecial org.bson.BasicBSONCallback.<init>:()V
            areturn
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BasicBSONCallback;

  public org.bson.BSONObject create(boolean, java.util.List<java.lang.String>);
    descriptor: (ZLjava/util/List;)Lorg/bson/BSONObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // boolean array
        start local 2 // java.util.List path
         0: .line 92
            iload 1 /* array */
            ifeq 1
            aload 0 /* this */
            invokevirtual org.bson.BasicBSONCallback.createList:()Lorg/bson/BSONObject;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            invokevirtual org.bson.BasicBSONCallback.create:()Lorg/bson/BSONObject;
      StackMap locals:
      StackMap stack: org.bson.BSONObject
         2: areturn
        end local 2 // java.util.List path
        end local 1 // boolean array
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/bson/BasicBSONCallback;
            0    3     1  array  Z
            0    3     2   path  Ljava/util/List<Ljava/lang/String;>;
    Signature: (ZLjava/util/List<Ljava/lang/String;>;)Lorg/bson/BSONObject;
    MethodParameters:
       Name  Flags
      array  final
      path   final

  public void objectStart();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 97
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.size:()I
            ifle 2
         1: .line 98
            new java.lang.IllegalStateException
            dup
            ldc "Illegal object beginning in current context."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iconst_0
            aconst_null
            invokevirtual org.bson.BasicBSONCallback.create:(ZLjava/util/List;)Lorg/bson/BSONObject;
            putfield org.bson.BasicBSONCallback.root:Ljava/lang/Object;
         3: .line 101
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.root:Ljava/lang/Object;
            checkcast org.bson.BSONObject
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 102
            return
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/BasicBSONCallback;

  public void objectStart(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
         0: .line 106
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.nameStack:Ljava/util/LinkedList;
            aload 1 /* name */
            invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
         1: .line 107
            aload 0 /* this */
            iconst_0
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.nameStack:Ljava/util/LinkedList;
            invokevirtual org.bson.BasicBSONCallback.create:(ZLjava/util/List;)Lorg/bson/BSONObject;
            astore 2 /* o */
        start local 2 // org.bson.BSONObject o
         2: .line 108
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast org.bson.BSONObject
            aload 1 /* name */
            aload 2 /* o */
            invokeinterface org.bson.BSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 109
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            aload 2 /* o */
            invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
         4: .line 110
            return
        end local 2 // org.bson.BSONObject o
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/BasicBSONCallback;
            0    5     1  name  Ljava/lang/String;
            2    5     2     o  Lorg/bson/BSONObject;
    MethodParameters:
      Name  Flags
      name  final

  public java.lang.Object objectDone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 114
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeLast:()Ljava/lang/Object;
            checkcast org.bson.BSONObject
            astore 1 /* o */
        start local 1 // org.bson.BSONObject o
         1: .line 115
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.nameStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.size:()I
            ifle 4
         2: .line 116
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.nameStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeLast:()Ljava/lang/Object;
            pop
         3: .line 117
            goto 6
      StackMap locals: org.bson.BSONObject
      StackMap stack:
         4: aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.size:()I
            ifle 6
         5: .line 118
            new java.lang.IllegalStateException
            dup
            ldc "Illegal object end in current context."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 121
      StackMap locals:
      StackMap stack:
            invokestatic org.bson.BSON.hasDecodeHooks:()Z
            ifne 7
            aload 1 /* o */
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 1 /* o */
            invokestatic org.bson.BSON.applyDecodingHooks:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.bson.BSONObject
      StackMap locals:
      StackMap stack: org.bson.BSONObject
         8: areturn
        end local 1 // org.bson.BSONObject o
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/bson/BasicBSONCallback;
            1    9     1     o  Lorg/bson/BSONObject;

  public void arrayStart();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 126
            aload 0 /* this */
            aload 0 /* this */
            iconst_1
            aconst_null
            invokevirtual org.bson.BasicBSONCallback.create:(ZLjava/util/List;)Lorg/bson/BSONObject;
            putfield org.bson.BasicBSONCallback.root:Ljava/lang/Object;
         1: .line 127
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.root:Ljava/lang/Object;
            checkcast org.bson.BSONObject
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 128
            return
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bson/BasicBSONCallback;

  public void arrayStart(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
         0: .line 132
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.nameStack:Ljava/util/LinkedList;
            aload 1 /* name */
            invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
         1: .line 133
            aload 0 /* this */
            iconst_1
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.nameStack:Ljava/util/LinkedList;
            invokevirtual org.bson.BasicBSONCallback.create:(ZLjava/util/List;)Lorg/bson/BSONObject;
            astore 2 /* o */
        start local 2 // org.bson.BSONObject o
         2: .line 134
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast org.bson.BSONObject
            aload 1 /* name */
            aload 2 /* o */
            invokeinterface org.bson.BSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 135
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            aload 2 /* o */
            invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
         4: .line 136
            return
        end local 2 // org.bson.BSONObject o
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/BasicBSONCallback;
            0    5     1  name  Ljava/lang/String;
            2    5     2     o  Lorg/bson/BSONObject;
    MethodParameters:
      Name  Flags
      name  final

  public java.lang.Object arrayDone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 140
            aload 0 /* this */
            invokevirtual org.bson.BasicBSONCallback.objectDone:()Ljava/lang/Object;
            areturn
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BasicBSONCallback;

  public void gotNull(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
         0: .line 145
            aload 0 /* this */
            invokevirtual org.bson.BasicBSONCallback.cur:()Lorg/bson/BSONObject;
            aload 1 /* name */
            aconst_null
            invokeinterface org.bson.BSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 146
            return
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BasicBSONCallback;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public void gotUndefined(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
         0: .line 150
            return
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BasicBSONCallback;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public void gotMinKey(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
         0: .line 154
            aload 0 /* this */
            invokevirtual org.bson.BasicBSONCallback.cur:()Lorg/bson/BSONObject;
            aload 1 /* name */
            new org.bson.types.MinKey
            dup
            invokespecial org.bson.types.MinKey.<init>:()V
            invokeinterface org.bson.BSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 155
            return
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BasicBSONCallback;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public void gotMaxKey(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
         0: .line 159
            aload 0 /* this */
            invokevirtual org.bson.BasicBSONCallback.cur:()Lorg/bson/BSONObject;
            aload 1 /* name */
            new org.bson.types.MaxKey
            dup
            invokespecial org.bson.types.MaxKey.<init>:()V
            invokeinterface org.bson.BSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 160
            return
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BasicBSONCallback;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  public void gotBoolean(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // boolean value
         0: .line 164
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* value */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 165
            return
        end local 2 // boolean value
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BasicBSONCallback;
            0    2     1   name  Ljava/lang/String;
            0    2     2  value  Z
    MethodParameters:
       Name  Flags
      name   final
      value  final

  public void gotDouble(java.lang.String, double);
    descriptor: (Ljava/lang/String;D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // double value
         0: .line 169
            aload 0 /* this */
            aload 1 /* name */
            dload 2 /* value */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 170
            return
        end local 2 // double value
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BasicBSONCallback;
            0    2     1   name  Ljava/lang/String;
            0    2     2  value  D
    MethodParameters:
       Name  Flags
      name   final
      value  final

  public void gotInt(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // int value
         0: .line 174
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 175
            return
        end local 2 // int value
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BasicBSONCallback;
            0    2     1   name  Ljava/lang/String;
            0    2     2  value  I
    MethodParameters:
       Name  Flags
      name   final
      value  final

  public void gotLong(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // long value
         0: .line 179
            aload 0 /* this */
            aload 1 /* name */
            lload 2 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 180
            return
        end local 2 // long value
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BasicBSONCallback;
            0    2     1   name  Ljava/lang/String;
            0    2     2  value  J
    MethodParameters:
       Name  Flags
      name   final
      value  final

  public void gotDecimal128(java.lang.String, org.bson.types.Decimal128);
    descriptor: (Ljava/lang/String;Lorg/bson/types/Decimal128;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // org.bson.types.Decimal128 value
         0: .line 184
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* value */
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 185
            return
        end local 2 // org.bson.types.Decimal128 value
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BasicBSONCallback;
            0    2     1   name  Ljava/lang/String;
            0    2     2  value  Lorg/bson/types/Decimal128;
    MethodParameters:
       Name  Flags
      name   final
      value  final

  public void gotDate(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // long millis
         0: .line 189
            aload 0 /* this */
            aload 1 /* name */
            new java.util.Date
            dup
            lload 2 /* millis */
            invokespecial java.util.Date.<init>:(J)V
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 190
            return
        end local 2 // long millis
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bson/BasicBSONCallback;
            0    2     1    name  Ljava/lang/String;
            0    2     2  millis  J
    MethodParameters:
        Name  Flags
      name    final
      millis  final

  public void gotRegex(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String pattern
        start local 3 // java.lang.String flags
         0: .line 194
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* pattern */
            aload 3 /* flags */
            invokestatic org.bson.BSON.regexFlags:(Ljava/lang/String;)I
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;I)Ljava/util/regex/Pattern;
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 195
            return
        end local 3 // java.lang.String flags
        end local 2 // java.lang.String pattern
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/bson/BasicBSONCallback;
            0    2     1     name  Ljava/lang/String;
            0    2     2  pattern  Ljava/lang/String;
            0    2     3    flags  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      name     final
      pattern  final
      flags    final

  public void gotString(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String value
         0: .line 199
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* value */
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 200
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BasicBSONCallback;
            0    2     1   name  Ljava/lang/String;
            0    2     2  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      name   final
      value  final

  public void gotSymbol(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String value
         0: .line 204
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* value */
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 205
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BasicBSONCallback;
            0    2     1   name  Ljava/lang/String;
            0    2     2  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      name   final
      value  final

  public void gotTimestamp(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // int time
        start local 3 // int increment
         0: .line 209
            aload 0 /* this */
            aload 1 /* name */
            new org.bson.types.BSONTimestamp
            dup
            iload 2 /* time */
            iload 3 /* increment */
            invokespecial org.bson.types.BSONTimestamp.<init>:(II)V
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 210
            return
        end local 3 // int increment
        end local 2 // int time
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/bson/BasicBSONCallback;
            0    2     1       name  Ljava/lang/String;
            0    2     2       time  I
            0    2     3  increment  I
    MethodParameters:
           Name  Flags
      name       final
      time       final
      increment  final

  public void gotObjectId(java.lang.String, org.bson.types.ObjectId);
    descriptor: (Ljava/lang/String;Lorg/bson/types/ObjectId;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // org.bson.types.ObjectId id
         0: .line 214
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* id */
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 215
            return
        end local 2 // org.bson.types.ObjectId id
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BasicBSONCallback;
            0    2     1  name  Ljava/lang/String;
            0    2     2    id  Lorg/bson/types/ObjectId;
    MethodParameters:
      Name  Flags
      name  final
      id    final

  public void gotDBRef(java.lang.String, java.lang.String, org.bson.types.ObjectId);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/bson/types/ObjectId;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String namespace
        start local 3 // org.bson.types.ObjectId id
         0: .line 219
            aload 0 /* this */
            aload 1 /* name */
            new org.bson.BasicBSONObject
            dup
            ldc "$ns"
            aload 2 /* namespace */
            invokespecial org.bson.BasicBSONObject.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            ldc "$id"
            aload 3 /* id */
            invokevirtual org.bson.BasicBSONObject.append:(Ljava/lang/String;Ljava/lang/Object;)Lorg/bson/BasicBSONObject;
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 220
            return
        end local 3 // org.bson.types.ObjectId id
        end local 2 // java.lang.String namespace
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/bson/BasicBSONCallback;
            0    2     1       name  Ljava/lang/String;
            0    2     2  namespace  Ljava/lang/String;
            0    2     3         id  Lorg/bson/types/ObjectId;
    MethodParameters:
           Name  Flags
      name       final
      namespace  final
      id         final

  public void gotBinaryArray(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // byte[] data
         0: .line 225
            aload 0 /* this */
            aload 1 /* name */
            iconst_0
            aload 2 /* data */
            invokevirtual org.bson.BasicBSONCallback.gotBinary:(Ljava/lang/String;B[B)V
         1: .line 226
            return
        end local 2 // byte[] data
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BasicBSONCallback;
            0    2     1  name  Ljava/lang/String;
            0    2     2  data  [B
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      name  final
      data  final

  public void gotBinary(java.lang.String, byte, byte[]);
    descriptor: (Ljava/lang/String;B[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // byte type
        start local 3 // byte[] data
         0: .line 230
            iload 2 /* type */
            ifeq 1
            iload 2 /* type */
            iconst_2
            if_icmpne 3
         1: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* data */
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 232
            goto 4
         3: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            new org.bson.types.Binary
            dup
            iload 2 /* type */
            aload 3 /* data */
            invokespecial org.bson.types.Binary.<init>:(B[B)V
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 235
      StackMap locals:
      StackMap stack:
            return
        end local 3 // byte[] data
        end local 2 // byte type
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/BasicBSONCallback;
            0    5     1  name  Ljava/lang/String;
            0    5     2  type  B
            0    5     3  data  [B
    MethodParameters:
      Name  Flags
      name  final
      type  final
      data  final

  public void gotUUID(java.lang.String, long, long);
    descriptor: (Ljava/lang/String;JJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // long part1
        start local 4 // long part2
         0: .line 239
            aload 0 /* this */
            aload 1 /* name */
            new java.util.UUID
            dup
            lload 2 /* part1 */
            lload 4 /* part2 */
            invokespecial java.util.UUID.<init>:(JJ)V
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 240
            return
        end local 4 // long part2
        end local 2 // long part1
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BasicBSONCallback;
            0    2     1   name  Ljava/lang/String;
            0    2     2  part1  J
            0    2     4  part2  J
    MethodParameters:
       Name  Flags
      name   final
      part1  final
      part2  final

  public void gotCode(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String code
         0: .line 244
            aload 0 /* this */
            aload 1 /* name */
            new org.bson.types.Code
            dup
            aload 2 /* code */
            invokespecial org.bson.types.Code.<init>:(Ljava/lang/String;)V
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 245
            return
        end local 2 // java.lang.String code
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BasicBSONCallback;
            0    2     1  name  Ljava/lang/String;
            0    2     2  code  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final
      code  final

  public void gotCodeWScope(java.lang.String, java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String code
        start local 3 // java.lang.Object scope
         0: .line 249
            aload 0 /* this */
            aload 1 /* name */
            new org.bson.types.CodeWScope
            dup
            aload 2 /* code */
            aload 3 /* scope */
            checkcast org.bson.BSONObject
            invokespecial org.bson.types.CodeWScope.<init>:(Ljava/lang/String;Lorg/bson/BSONObject;)V
            invokevirtual org.bson.BasicBSONCallback._put:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 250
            return
        end local 3 // java.lang.Object scope
        end local 2 // java.lang.String code
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/bson/BasicBSONCallback;
            0    2     1   name  Ljava/lang/String;
            0    2     2   code  Ljava/lang/String;
            0    2     3  scope  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      name   final
      code   final
      scope  final

  protected void _put(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Object value
         0: .line 259
            aload 0 /* this */
            invokevirtual org.bson.BasicBSONCallback.cur:()Lorg/bson/BSONObject;
            aload 1 /* name */
            invokestatic org.bson.BSON.hasDecodeHooks:()Z
            ifne 1
            aload 2 /* value */
            goto 2
      StackMap locals: org.bson.BasicBSONCallback java.lang.String java.lang.Object
      StackMap stack: org.bson.BSONObject java.lang.String
         1: aload 2 /* value */
            invokestatic org.bson.BSON.applyDecodingHooks:(Ljava/lang/Object;)Ljava/lang/Object;
      StackMap locals: org.bson.BasicBSONCallback java.lang.String java.lang.Object
      StackMap stack: org.bson.BSONObject java.lang.String java.lang.Object
         2: invokeinterface org.bson.BSONObject.put:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 260
            return
        end local 2 // java.lang.Object value
        end local 1 // java.lang.String name
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/bson/BasicBSONCallback;
            0    4     1   name  Ljava/lang/String;
            0    4     2  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      name   final
      value  final

  protected org.bson.BSONObject cur();
    descriptor: ()Lorg/bson/BSONObject;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 268
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast org.bson.BSONObject
            areturn
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BasicBSONCallback;

  protected java.lang.String curName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 277
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.nameStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.peekLast:()Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/BasicBSONCallback;

  protected void setRoot(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bson.BasicBSONCallback this
        start local 1 // java.lang.Object root
         0: .line 286
            aload 0 /* this */
            aload 1 /* root */
            putfield org.bson.BasicBSONCallback.root:Ljava/lang/Object;
         1: .line 287
            return
        end local 1 // java.lang.Object root
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BasicBSONCallback;
            0    2     1  root  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      root  final

  protected boolean isStackEmpty();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 295
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.size:()I
            iconst_1
            if_icmpge 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/BasicBSONCallback;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.BasicBSONCallback this
         0: .line 300
            aload 0 /* this */
            aconst_null
            putfield org.bson.BasicBSONCallback.root:Ljava/lang/Object;
         1: .line 301
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.stack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.clear:()V
         2: .line 302
            aload 0 /* this */
            getfield org.bson.BasicBSONCallback.nameStack:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.clear:()V
         3: .line 303
            return
        end local 0 // org.bson.BasicBSONCallback this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bson/BasicBSONCallback;
}
SourceFile: "BasicBSONCallback.java"