public class com.android.internal.util.dump.DualDumpOutputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.internal.util.dump.DualDumpOutputStream
  super_class: java.lang.Object
{
  private static final java.lang.String LOG_TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final android.util.proto.ProtoOutputStream mProtoStream;
    descriptor: Landroid/util/proto/ProtoOutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.android.internal.util.IndentingPrintWriter mIpw;
    descriptor: Lcom/android/internal/util/IndentingPrintWriter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.LinkedList<com.android.internal.util.dump.DualDumpOutputStream$DumpObject> mDumpObjects;
    descriptor: Ljava/util/LinkedList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/LinkedList<Lcom/android/internal/util/dump/DualDumpOutputStream$DumpObject;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 38
            ldc Lcom/android/internal/util/dump/DualDumpOutputStream;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            putstatic com.android.internal.util.dump.DualDumpOutputStream.LOG_TAG:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.util.proto.ProtoOutputStream);
    descriptor: (Landroid/util/proto/ProtoOutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // android.util.proto.ProtoOutputStream proto
         0: .line 139
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
         2: .line 140
            aload 0 /* this */
            aload 1 /* proto */
            putfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
         3: .line 141
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.dump.DualDumpOutputStream.mIpw:Lcom/android/internal/util/IndentingPrintWriter;
         4: .line 142
            return
        end local 1 // android.util.proto.ProtoOutputStream proto
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    5     1  proto  Landroid/util/proto/ProtoOutputStream;
    MethodParameters:
       Name  Flags
      proto  

  public void <init>(com.android.internal.util.IndentingPrintWriter);
    descriptor: (Lcom/android/internal/util/IndentingPrintWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // com.android.internal.util.IndentingPrintWriter ipw
         0: .line 149
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
         2: .line 150
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
         3: .line 151
            aload 0 /* this */
            aload 1 /* ipw */
            putfield com.android.internal.util.dump.DualDumpOutputStream.mIpw:Lcom/android/internal/util/IndentingPrintWriter;
         4: .line 154
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            new com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            dup
            aconst_null
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpObject.<init>:(Ljava/lang/String;)V
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 155
            return
        end local 1 // com.android.internal.util.IndentingPrintWriter ipw
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    6     1   ipw  Lcom/android/internal/util/IndentingPrintWriter;
    MethodParameters:
      Name  Flags
      ipw   

  public void write(java.lang.String, long, double);
    descriptor: (Ljava/lang/String;JD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // java.lang.String fieldName
        start local 2 // long fieldId
        start local 4 // double val
         0: .line 158
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 3
         1: .line 159
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            lload 2 /* fieldId */
            dload 4 /* val */
            invokevirtual android.util.proto.ProtoOutputStream.write:(JD)V
         2: .line 160
            goto 4
         3: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 1 /* fieldName */
            new com.android.internal.util.dump.DualDumpOutputStream$DumpField
            dup
            aload 1 /* fieldName */
            dload 4 /* val */
            invokestatic java.lang.String.valueOf:(D)Ljava/lang/String;
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpField.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.add:(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
         4: .line 163
      StackMap locals:
      StackMap stack:
            return
        end local 4 // double val
        end local 2 // long fieldId
        end local 1 // java.lang.String fieldName
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    5     1  fieldName  Ljava/lang/String;
            0    5     2    fieldId  J
            0    5     4        val  D
    MethodParameters:
           Name  Flags
      fieldName  
      fieldId    
      val        

  public void write(java.lang.String, long, boolean);
    descriptor: (Ljava/lang/String;JZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // java.lang.String fieldName
        start local 2 // long fieldId
        start local 4 // boolean val
         0: .line 166
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 3
         1: .line 167
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            lload 2 /* fieldId */
            iload 4 /* val */
            invokevirtual android.util.proto.ProtoOutputStream.write:(JZ)V
         2: .line 168
            goto 4
         3: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 1 /* fieldName */
            new com.android.internal.util.dump.DualDumpOutputStream$DumpField
            dup
            aload 1 /* fieldName */
            iload 4 /* val */
            invokestatic java.lang.String.valueOf:(Z)Ljava/lang/String;
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpField.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.add:(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
         4: .line 171
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean val
        end local 2 // long fieldId
        end local 1 // java.lang.String fieldName
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    5     1  fieldName  Ljava/lang/String;
            0    5     2    fieldId  J
            0    5     4        val  Z
    MethodParameters:
           Name  Flags
      fieldName  
      fieldId    
      val        

  public void write(java.lang.String, long, int);
    descriptor: (Ljava/lang/String;JI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // java.lang.String fieldName
        start local 2 // long fieldId
        start local 4 // int val
         0: .line 174
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 3
         1: .line 175
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            lload 2 /* fieldId */
            iload 4 /* val */
            invokevirtual android.util.proto.ProtoOutputStream.write:(JI)V
         2: .line 176
            goto 4
         3: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 1 /* fieldName */
            new com.android.internal.util.dump.DualDumpOutputStream$DumpField
            dup
            aload 1 /* fieldName */
            iload 4 /* val */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpField.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.add:(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
         4: .line 179
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int val
        end local 2 // long fieldId
        end local 1 // java.lang.String fieldName
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    5     1  fieldName  Ljava/lang/String;
            0    5     2    fieldId  J
            0    5     4        val  I
    MethodParameters:
           Name  Flags
      fieldName  
      fieldId    
      val        

  public void write(java.lang.String, long, float);
    descriptor: (Ljava/lang/String;JF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // java.lang.String fieldName
        start local 2 // long fieldId
        start local 4 // float val
         0: .line 182
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 3
         1: .line 183
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            lload 2 /* fieldId */
            fload 4 /* val */
            invokevirtual android.util.proto.ProtoOutputStream.write:(JF)V
         2: .line 184
            goto 4
         3: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 1 /* fieldName */
            new com.android.internal.util.dump.DualDumpOutputStream$DumpField
            dup
            aload 1 /* fieldName */
            fload 4 /* val */
            invokestatic java.lang.String.valueOf:(F)Ljava/lang/String;
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpField.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.add:(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
         4: .line 187
      StackMap locals:
      StackMap stack:
            return
        end local 4 // float val
        end local 2 // long fieldId
        end local 1 // java.lang.String fieldName
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    5     1  fieldName  Ljava/lang/String;
            0    5     2    fieldId  J
            0    5     4        val  F
    MethodParameters:
           Name  Flags
      fieldName  
      fieldId    
      val        

  public void write(java.lang.String, long, byte[]);
    descriptor: (Ljava/lang/String;J[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // java.lang.String fieldName
        start local 2 // long fieldId
        start local 4 // byte[] val
         0: .line 190
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 3
         1: .line 191
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            lload 2 /* fieldId */
            aload 4 /* val */
            invokevirtual android.util.proto.ProtoOutputStream.write:(J[B)V
         2: .line 192
            goto 4
         3: .line 193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 1 /* fieldName */
            new com.android.internal.util.dump.DualDumpOutputStream$DumpField
            dup
            aload 1 /* fieldName */
            aload 4 /* val */
            invokestatic java.util.Arrays.toString:([B)Ljava/lang/String;
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpField.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.add:(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
         4: .line 195
      StackMap locals:
      StackMap stack:
            return
        end local 4 // byte[] val
        end local 2 // long fieldId
        end local 1 // java.lang.String fieldName
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    5     1  fieldName  Ljava/lang/String;
            0    5     2    fieldId  J
            0    5     4        val  [B
    MethodParameters:
           Name  Flags
      fieldName  
      fieldId    
      val        

  public void write(java.lang.String, long, long);
    descriptor: (Ljava/lang/String;JJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // java.lang.String fieldName
        start local 2 // long fieldId
        start local 4 // long val
         0: .line 198
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 3
         1: .line 199
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            lload 2 /* fieldId */
            lload 4 /* val */
            invokevirtual android.util.proto.ProtoOutputStream.write:(JJ)V
         2: .line 200
            goto 4
         3: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 1 /* fieldName */
            new com.android.internal.util.dump.DualDumpOutputStream$DumpField
            dup
            aload 1 /* fieldName */
            lload 4 /* val */
            invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpField.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.add:(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
         4: .line 203
      StackMap locals:
      StackMap stack:
            return
        end local 4 // long val
        end local 2 // long fieldId
        end local 1 // java.lang.String fieldName
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    5     1  fieldName  Ljava/lang/String;
            0    5     2    fieldId  J
            0    5     4        val  J
    MethodParameters:
           Name  Flags
      fieldName  
      fieldId    
      val        

  public void write(java.lang.String, long, java.lang.String);
    descriptor: (Ljava/lang/String;JLjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // java.lang.String fieldName
        start local 2 // long fieldId
        start local 4 // java.lang.String val
         0: .line 206
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 3
         1: .line 207
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            lload 2 /* fieldId */
            aload 4 /* val */
            invokevirtual android.util.proto.ProtoOutputStream.write:(JLjava/lang/String;)V
         2: .line 208
            goto 4
         3: .line 209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 1 /* fieldName */
            new com.android.internal.util.dump.DualDumpOutputStream$DumpField
            dup
            aload 1 /* fieldName */
            aload 4 /* val */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpField.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.add:(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
         4: .line 211
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String val
        end local 2 // long fieldId
        end local 1 // java.lang.String fieldName
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    5     1  fieldName  Ljava/lang/String;
            0    5     2    fieldId  J
            0    5     4        val  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      fieldName  
      fieldId    
      val        

  public long start(java.lang.String, long);
    descriptor: (Ljava/lang/String;J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // java.lang.String fieldName
        start local 2 // long fieldId
         0: .line 214
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 2
         1: .line 215
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            lload 2 /* fieldId */
            invokevirtual android.util.proto.ProtoOutputStream.start:(J)J
            lreturn
         2: .line 217
      StackMap locals:
      StackMap stack:
            new com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            dup
            aload 1 /* fieldName */
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpObject.<init>:(Ljava/lang/String;)V
            astore 4 /* d */
        start local 4 // com.android.internal.util.dump.DualDumpOutputStream$DumpObject d
         3: .line 218
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 1 /* fieldName */
            aload 4 /* d */
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.add:(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
         4: .line 219
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            aload 4 /* d */
            invokevirtual java.util.LinkedList.addLast:(Ljava/lang/Object;)V
         5: .line 220
            aload 4 /* d */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            i2l
            lreturn
        end local 4 // com.android.internal.util.dump.DualDumpOutputStream$DumpObject d
        end local 2 // long fieldId
        end local 1 // java.lang.String fieldName
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    6     1  fieldName  Ljava/lang/String;
            0    6     2    fieldId  J
            3    6     4          d  Lcom/android/internal/util/dump/DualDumpOutputStream$DumpObject;
    MethodParameters:
           Name  Flags
      fieldName  
      fieldId    

  public void end(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // long token
         0: .line 225
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 3
         1: .line 226
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            lload 1 /* token */
            invokevirtual android.util.proto.ProtoOutputStream.end:(J)V
         2: .line 227
            goto 8
         3: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            i2l
            lload 1 /* token */
            lcmp
            ifeq 7
         4: .line 229
            getstatic com.android.internal.util.dump.DualDumpOutputStream.LOG_TAG:Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc "Unexpected token for ending "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            getfield com.android.internal.util.dump.DualDumpOutputStream$DumpObject.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 230
            ldc " at "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getStackTrace:()[Ljava/lang/StackTraceElement;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 229
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         7: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.removeLast:()Ljava/lang/Object;
            pop
         8: .line 234
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long token
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    9     1  token  J
    MethodParameters:
       Name  Flags
      token  

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
         0: .line 237
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 3
         1: .line 238
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            invokevirtual android.util.proto.ProtoOutputStream.flush:()V
         2: .line 239
            goto 8
         3: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.size:()I
            iconst_1
            if_icmpne 7
         4: .line 241
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getFirst:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mIpw:Lcom/android/internal/util/IndentingPrintWriter;
            iconst_0
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.print:(Lcom/android/internal/util/IndentingPrintWriter;Z)V
         5: .line 244
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.clear:()V
         6: .line 245
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            new com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            dup
            aconst_null
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpObject.<init>:(Ljava/lang/String;)V
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mIpw:Lcom/android/internal/util/IndentingPrintWriter;
            invokevirtual com.android.internal.util.IndentingPrintWriter.flush:()V
         8: .line 250
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/android/internal/util/dump/DualDumpOutputStream;

  public void writeNested(java.lang.String, byte[]);
    descriptor: (Ljava/lang/String;[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
        start local 1 // java.lang.String fieldName
        start local 2 // byte[] nestedState
         0: .line 261
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mIpw:Lcom/android/internal/util/IndentingPrintWriter;
            ifnonnull 3
         1: .line 262
            getstatic com.android.internal.util.dump.DualDumpOutputStream.LOG_TAG:Ljava/lang/String;
            ldc "writeNested does not work for proto logging"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 263
            return
         3: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mDumpObjects:Ljava/util/LinkedList;
            invokevirtual java.util.LinkedList.getLast:()Ljava/lang/Object;
            checkcast com.android.internal.util.dump.DualDumpOutputStream$DumpObject
            aload 1 /* fieldName */
         4: .line 267
            new com.android.internal.util.dump.DualDumpOutputStream$DumpField
            dup
            aload 1 /* fieldName */
            new java.lang.String
            dup
            aload 2 /* nestedState */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokespecial com.android.internal.util.dump.DualDumpOutputStream$DumpField.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 266
            invokevirtual com.android.internal.util.dump.DualDumpOutputStream$DumpObject.add:(Ljava/lang/String;Lcom/android/internal/util/dump/DualDumpOutputStream$Dumpable;)V
         6: .line 268
            return
        end local 2 // byte[] nestedState
        end local 1 // java.lang.String fieldName
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lcom/android/internal/util/dump/DualDumpOutputStream;
            0    7     1    fieldName  Ljava/lang/String;
            0    7     2  nestedState  [B
    MethodParameters:
             Name  Flags
      fieldName    
      nestedState  

  public boolean isProto();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.internal.util.dump.DualDumpOutputStream this
         0: .line 274
            aload 0 /* this */
            getfield com.android.internal.util.dump.DualDumpOutputStream.mProtoStream:Landroid/util/proto/ProtoOutputStream;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.android.internal.util.dump.DualDumpOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/internal/util/dump/DualDumpOutputStream;
}
SourceFile: "DualDumpOutputStream.java"
NestMembers:
  com.android.internal.util.dump.DualDumpOutputStream$DumpField  com.android.internal.util.dump.DualDumpOutputStream$DumpObject  com.android.internal.util.dump.DualDumpOutputStream$Dumpable
InnerClasses:
  private DumpField = com.android.internal.util.dump.DualDumpOutputStream$DumpField of com.android.internal.util.dump.DualDumpOutputStream
  private DumpObject = com.android.internal.util.dump.DualDumpOutputStream$DumpObject of com.android.internal.util.dump.DualDumpOutputStream
  private abstract Dumpable = com.android.internal.util.dump.DualDumpOutputStream$Dumpable of com.android.internal.util.dump.DualDumpOutputStream