public class android.os.health.HealthStatsWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.os.health.HealthStatsWriter
  super_class: java.lang.Object
{
  private final android.os.health.HealthKeys$Constants mConstants;
    descriptor: Landroid/os/health/HealthKeys$Constants;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean[] mTimerFields;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int[] mTimerCounts;
    descriptor: [I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long[] mTimerTimes;
    descriptor: [J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean[] mMeasurementFields;
    descriptor: [Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long[] mMeasurementValues;
    descriptor: [J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.util.ArrayMap<java.lang.String, android.os.health.HealthStatsWriter>[] mStatsValues;
    descriptor: [Landroid/util/ArrayMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Landroid/util/ArrayMap<Ljava/lang/String;Landroid/os/health/HealthStatsWriter;>;

  private final android.util.ArrayMap<java.lang.String, android.os.health.TimerStat>[] mTimersValues;
    descriptor: [Landroid/util/ArrayMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Landroid/util/ArrayMap<Ljava/lang/String;Landroid/os/health/TimerStat;>;

  private final android.util.ArrayMap<java.lang.String, java.lang.Long>[] mMeasurementsValues;
    descriptor: [Landroid/util/ArrayMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: [Landroid/util/ArrayMap<Ljava/lang/String;Ljava/lang/Long;>;

  public void <init>(android.os.health.HealthKeys$Constants);
    descriptor: (Landroid/os/health/HealthKeys$Constants;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // android.os.health.HealthStatsWriter this
        start local 1 // android.os.health.HealthKeys$Constants constants
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            aload 1 /* constants */
            putfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
         2: .line 66
            aload 1 /* constants */
            iconst_0
            invokevirtual android.os.health.HealthKeys$Constants.getSize:(I)I
            istore 2 /* timerCount */
        start local 2 // int timerCount
         3: .line 67
            aload 0 /* this */
            iload 2 /* timerCount */
            newarray 4
            putfield android.os.health.HealthStatsWriter.mTimerFields:[Z
         4: .line 68
            aload 0 /* this */
            iload 2 /* timerCount */
            newarray 10
            putfield android.os.health.HealthStatsWriter.mTimerCounts:[I
         5: .line 69
            aload 0 /* this */
            iload 2 /* timerCount */
            newarray 11
            putfield android.os.health.HealthStatsWriter.mTimerTimes:[J
         6: .line 72
            aload 1 /* constants */
            iconst_1
            invokevirtual android.os.health.HealthKeys$Constants.getSize:(I)I
            istore 3 /* measurementCount */
        start local 3 // int measurementCount
         7: .line 73
            aload 0 /* this */
            iload 3 /* measurementCount */
            newarray 4
            putfield android.os.health.HealthStatsWriter.mMeasurementFields:[Z
         8: .line 74
            aload 0 /* this */
            iload 3 /* measurementCount */
            newarray 11
            putfield android.os.health.HealthStatsWriter.mMeasurementValues:[J
         9: .line 77
            aload 1 /* constants */
            iconst_2
            invokevirtual android.os.health.HealthKeys$Constants.getSize:(I)I
            istore 4 /* statsCount */
        start local 4 // int statsCount
        10: .line 78
            aload 0 /* this */
            iload 4 /* statsCount */
            anewarray android.util.ArrayMap
            putfield android.os.health.HealthStatsWriter.mStatsValues:[Landroid/util/ArrayMap;
        11: .line 81
            aload 1 /* constants */
            iconst_3
            invokevirtual android.os.health.HealthKeys$Constants.getSize:(I)I
            istore 5 /* timersCount */
        start local 5 // int timersCount
        12: .line 82
            aload 0 /* this */
            iload 5 /* timersCount */
            anewarray android.util.ArrayMap
            putfield android.os.health.HealthStatsWriter.mTimersValues:[Landroid/util/ArrayMap;
        13: .line 85
            aload 1 /* constants */
            iconst_4
            invokevirtual android.os.health.HealthKeys$Constants.getSize:(I)I
            istore 6 /* measurementsCount */
        start local 6 // int measurementsCount
        14: .line 86
            aload 0 /* this */
            iload 6 /* measurementsCount */
            anewarray android.util.ArrayMap
            putfield android.os.health.HealthStatsWriter.mMeasurementsValues:[Landroid/util/ArrayMap;
        15: .line 87
            return
        end local 6 // int measurementsCount
        end local 5 // int timersCount
        end local 4 // int statsCount
        end local 3 // int measurementCount
        end local 2 // int timerCount
        end local 1 // android.os.health.HealthKeys$Constants constants
        end local 0 // android.os.health.HealthStatsWriter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Landroid/os/health/HealthStatsWriter;
            0   16     1          constants  Landroid/os/health/HealthKeys$Constants;
            3   16     2         timerCount  I
            7   16     3   measurementCount  I
           10   16     4         statsCount  I
           12   16     5        timersCount  I
           14   16     6  measurementsCount  I
    MethodParameters:
           Name  Flags
      constants  

  public void addTimer(int, int, long);
    descriptor: (IIJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // android.os.health.HealthStatsWriter this
        start local 1 // int timerId
        start local 2 // int count
        start local 3 // long time
         0: .line 93
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_0
            iload 1 /* timerId */
            invokevirtual android.os.health.HealthKeys$Constants.getIndex:(II)I
            istore 5 /* index */
        start local 5 // int index
         1: .line 95
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimerFields:[Z
            iload 5 /* index */
            iconst_1
            bastore
         2: .line 96
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimerCounts:[I
            iload 5 /* index */
            iload 2 /* count */
            iastore
         3: .line 97
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimerTimes:[J
            iload 5 /* index */
            lload 3 /* time */
            lastore
         4: .line 98
            return
        end local 5 // int index
        end local 3 // long time
        end local 2 // int count
        end local 1 // int timerId
        end local 0 // android.os.health.HealthStatsWriter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/os/health/HealthStatsWriter;
            0    5     1  timerId  I
            0    5     2    count  I
            0    5     3     time  J
            1    5     5    index  I
    MethodParameters:
         Name  Flags
      timerId  
      count    
      time     

  public void addMeasurement(int, long);
    descriptor: (IJ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.os.health.HealthStatsWriter this
        start local 1 // int measurementId
        start local 2 // long value
         0: .line 104
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_1
            iload 1 /* measurementId */
            invokevirtual android.os.health.HealthKeys$Constants.getIndex:(II)I
            istore 4 /* index */
        start local 4 // int index
         1: .line 106
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementFields:[Z
            iload 4 /* index */
            iconst_1
            bastore
         2: .line 107
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementValues:[J
            iload 4 /* index */
            lload 2 /* value */
            lastore
         3: .line 108
            return
        end local 4 // int index
        end local 2 // long value
        end local 1 // int measurementId
        end local 0 // android.os.health.HealthStatsWriter this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Landroid/os/health/HealthStatsWriter;
            0    4     1  measurementId  I
            0    4     2          value  J
            1    4     4          index  I
    MethodParameters:
               Name  Flags
      measurementId  
      value          

  public void addStats(int, java.lang.String, android.os.health.HealthStatsWriter);
    descriptor: (ILjava/lang/String;Landroid/os/health/HealthStatsWriter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // android.os.health.HealthStatsWriter this
        start local 1 // int key
        start local 2 // java.lang.String name
        start local 3 // android.os.health.HealthStatsWriter value
         0: .line 118
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_2
            iload 1 /* key */
            invokevirtual android.os.health.HealthKeys$Constants.getIndex:(II)I
            istore 4 /* index */
        start local 4 // int index
         1: .line 120
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mStatsValues:[Landroid/util/ArrayMap;
            iload 4 /* index */
            aaload
            astore 5 /* map */
        start local 5 // android.util.ArrayMap map
         2: .line 121
            aload 5 /* map */
            ifnonnull 4
         3: .line 122
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mStatsValues:[Landroid/util/ArrayMap;
            iload 4 /* index */
            new android.util.ArrayMap
            dup
            iconst_1
            invokespecial android.util.ArrayMap.<init>:(I)V
            dup_x2
            aastore
            astore 5 /* map */
         4: .line 124
      StackMap locals: int android.util.ArrayMap
      StackMap stack:
            aload 5 /* map */
            aload 2 /* name */
            aload 3 /* value */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 125
            return
        end local 5 // android.util.ArrayMap map
        end local 4 // int index
        end local 3 // android.os.health.HealthStatsWriter value
        end local 2 // java.lang.String name
        end local 1 // int key
        end local 0 // android.os.health.HealthStatsWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Landroid/os/health/HealthStatsWriter;
            0    6     1    key  I
            0    6     2   name  Ljava/lang/String;
            0    6     3  value  Landroid/os/health/HealthStatsWriter;
            1    6     4  index  I
            2    6     5    map  Landroid/util/ArrayMap<Ljava/lang/String;Landroid/os/health/HealthStatsWriter;>;
    MethodParameters:
       Name  Flags
      key    
      name   
      value  

  public void addTimers(int, java.lang.String, android.os.health.TimerStat);
    descriptor: (ILjava/lang/String;Landroid/os/health/TimerStat;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // android.os.health.HealthStatsWriter this
        start local 1 // int key
        start local 2 // java.lang.String name
        start local 3 // android.os.health.TimerStat value
         0: .line 133
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_3
            iload 1 /* key */
            invokevirtual android.os.health.HealthKeys$Constants.getIndex:(II)I
            istore 4 /* index */
        start local 4 // int index
         1: .line 135
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimersValues:[Landroid/util/ArrayMap;
            iload 4 /* index */
            aaload
            astore 5 /* map */
        start local 5 // android.util.ArrayMap map
         2: .line 136
            aload 5 /* map */
            ifnonnull 4
         3: .line 137
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimersValues:[Landroid/util/ArrayMap;
            iload 4 /* index */
            new android.util.ArrayMap
            dup
            iconst_1
            invokespecial android.util.ArrayMap.<init>:(I)V
            dup_x2
            aastore
            astore 5 /* map */
         4: .line 139
      StackMap locals: int android.util.ArrayMap
      StackMap stack:
            aload 5 /* map */
            aload 2 /* name */
            aload 3 /* value */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 140
            return
        end local 5 // android.util.ArrayMap map
        end local 4 // int index
        end local 3 // android.os.health.TimerStat value
        end local 2 // java.lang.String name
        end local 1 // int key
        end local 0 // android.os.health.HealthStatsWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Landroid/os/health/HealthStatsWriter;
            0    6     1    key  I
            0    6     2   name  Ljava/lang/String;
            0    6     3  value  Landroid/os/health/TimerStat;
            1    6     4  index  I
            2    6     5    map  Landroid/util/ArrayMap<Ljava/lang/String;Landroid/os/health/TimerStat;>;
    MethodParameters:
       Name  Flags
      key    
      name   
      value  

  public void addMeasurements(int, java.lang.String, long);
    descriptor: (ILjava/lang/String;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // android.os.health.HealthStatsWriter this
        start local 1 // int key
        start local 2 // java.lang.String name
        start local 3 // long value
         0: .line 146
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_4
            iload 1 /* key */
            invokevirtual android.os.health.HealthKeys$Constants.getIndex:(II)I
            istore 5 /* index */
        start local 5 // int index
         1: .line 148
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementsValues:[Landroid/util/ArrayMap;
            iload 5 /* index */
            aaload
            astore 6 /* map */
        start local 6 // android.util.ArrayMap map
         2: .line 149
            aload 6 /* map */
            ifnonnull 4
         3: .line 150
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementsValues:[Landroid/util/ArrayMap;
            iload 5 /* index */
            new android.util.ArrayMap
            dup
            iconst_1
            invokespecial android.util.ArrayMap.<init>:(I)V
            dup_x2
            aastore
            astore 6 /* map */
         4: .line 152
      StackMap locals: int android.util.ArrayMap
      StackMap stack:
            aload 6 /* map */
            aload 2 /* name */
            lload 3 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 153
            return
        end local 6 // android.util.ArrayMap map
        end local 5 // int index
        end local 3 // long value
        end local 2 // java.lang.String name
        end local 1 // int key
        end local 0 // android.os.health.HealthStatsWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Landroid/os/health/HealthStatsWriter;
            0    6     1    key  I
            0    6     2   name  Ljava/lang/String;
            0    6     3  value  J
            1    6     5  index  I
            2    6     6    map  Landroid/util/ArrayMap<Ljava/lang/String;Ljava/lang/Long;>;
    MethodParameters:
       Name  Flags
      key    
      name   
      value  

  public void flattenToParcel(android.os.Parcel);
    descriptor: (Landroid/os/Parcel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.os.health.HealthStatsWriter this
        start local 1 // android.os.Parcel out
         0: .line 167
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            invokevirtual android.os.health.HealthKeys$Constants.getDataType:()Ljava/lang/String;
            invokevirtual android.os.Parcel.writeString:(Ljava/lang/String;)V
         1: .line 170
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimerFields:[Z
            invokestatic android.os.health.HealthStatsWriter.countBooleanArray:([Z)I
            invokevirtual android.os.Parcel.writeInt:(I)V
         2: .line 171
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_0
            invokevirtual android.os.health.HealthKeys$Constants.getKeys:(I)[I
            astore 2 /* keys */
        start local 2 // int[] keys
         3: .line 172
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 10
         5: .line 173
      StackMap locals: int[] int
      StackMap stack:
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimerFields:[Z
            iload 3 /* i */
            baload
            ifeq 9
         6: .line 174
            aload 1 /* out */
            aload 2 /* keys */
            iload 3 /* i */
            iaload
            invokevirtual android.os.Parcel.writeInt:(I)V
         7: .line 175
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimerCounts:[I
            iload 3 /* i */
            iaload
            invokevirtual android.os.Parcel.writeInt:(I)V
         8: .line 176
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimerTimes:[J
            iload 3 /* i */
            laload
            invokevirtual android.os.Parcel.writeLong:(J)V
         9: .line 172
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            aload 2 /* keys */
            arraylength
            if_icmplt 5
        end local 3 // int i
        11: .line 181
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementFields:[Z
            invokestatic android.os.health.HealthStatsWriter.countBooleanArray:([Z)I
            invokevirtual android.os.Parcel.writeInt:(I)V
        12: .line 182
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_1
            invokevirtual android.os.health.HealthKeys$Constants.getKeys:(I)[I
            astore 2 /* keys */
        13: .line 183
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        14: goto 19
        15: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementFields:[Z
            iload 3 /* i */
            baload
            ifeq 18
        16: .line 185
            aload 1 /* out */
            aload 2 /* keys */
            iload 3 /* i */
            iaload
            invokevirtual android.os.Parcel.writeInt:(I)V
        17: .line 186
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementValues:[J
            iload 3 /* i */
            laload
            invokevirtual android.os.Parcel.writeLong:(J)V
        18: .line 183
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 3 /* i */
            aload 2 /* keys */
            arraylength
            if_icmplt 15
        end local 3 // int i
        20: .line 191
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mStatsValues:[Landroid/util/ArrayMap;
            invokestatic android.os.health.HealthStatsWriter.countObjectArray:([Ljava/lang/Object;)I
            invokevirtual android.os.Parcel.writeInt:(I)V
        21: .line 192
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_2
            invokevirtual android.os.health.HealthKeys$Constants.getKeys:(I)[I
            astore 2 /* keys */
        22: .line 193
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        23: goto 28
        24: .line 194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mStatsValues:[Landroid/util/ArrayMap;
            iload 3 /* i */
            aaload
            ifnull 27
        25: .line 195
            aload 1 /* out */
            aload 2 /* keys */
            iload 3 /* i */
            iaload
            invokevirtual android.os.Parcel.writeInt:(I)V
        26: .line 196
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mStatsValues:[Landroid/util/ArrayMap;
            iload 3 /* i */
            aaload
            invokestatic android.os.health.HealthStatsWriter.writeHealthStatsWriterMap:(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
        27: .line 193
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 3 /* i */
            aload 2 /* keys */
            arraylength
            if_icmplt 24
        end local 3 // int i
        29: .line 201
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimersValues:[Landroid/util/ArrayMap;
            invokestatic android.os.health.HealthStatsWriter.countObjectArray:([Ljava/lang/Object;)I
            invokevirtual android.os.Parcel.writeInt:(I)V
        30: .line 202
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_3
            invokevirtual android.os.health.HealthKeys$Constants.getKeys:(I)[I
            astore 2 /* keys */
        31: .line 203
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        32: goto 37
        33: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimersValues:[Landroid/util/ArrayMap;
            iload 3 /* i */
            aaload
            ifnull 36
        34: .line 205
            aload 1 /* out */
            aload 2 /* keys */
            iload 3 /* i */
            iaload
            invokevirtual android.os.Parcel.writeInt:(I)V
        35: .line 206
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mTimersValues:[Landroid/util/ArrayMap;
            iload 3 /* i */
            aaload
            invokestatic android.os.health.HealthStatsWriter.writeParcelableMap:(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
        36: .line 203
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 3 /* i */
            aload 2 /* keys */
            arraylength
            if_icmplt 33
        end local 3 // int i
        38: .line 211
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementsValues:[Landroid/util/ArrayMap;
            invokestatic android.os.health.HealthStatsWriter.countObjectArray:([Ljava/lang/Object;)I
            invokevirtual android.os.Parcel.writeInt:(I)V
        39: .line 212
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mConstants:Landroid/os/health/HealthKeys$Constants;
            iconst_4
            invokevirtual android.os.health.HealthKeys$Constants.getKeys:(I)[I
            astore 2 /* keys */
        40: .line 213
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        41: goto 46
        42: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementsValues:[Landroid/util/ArrayMap;
            iload 3 /* i */
            aaload
            ifnull 45
        43: .line 215
            aload 1 /* out */
            aload 2 /* keys */
            iload 3 /* i */
            iaload
            invokevirtual android.os.Parcel.writeInt:(I)V
        44: .line 216
            aload 1 /* out */
            aload 0 /* this */
            getfield android.os.health.HealthStatsWriter.mMeasurementsValues:[Landroid/util/ArrayMap;
            iload 3 /* i */
            aaload
            invokestatic android.os.health.HealthStatsWriter.writeLongsMap:(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
        45: .line 213
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 3 /* i */
            aload 2 /* keys */
            arraylength
            if_icmplt 42
        end local 3 // int i
        47: .line 219
            return
        end local 2 // int[] keys
        end local 1 // android.os.Parcel out
        end local 0 // android.os.health.HealthStatsWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   48     0  this  Landroid/os/health/HealthStatsWriter;
            0   48     1   out  Landroid/os/Parcel;
            3   48     2  keys  [I
            4   11     3     i  I
           14   20     3     i  I
           23   29     3     i  I
           32   38     3     i  I
           41   47     3     i  I
    MethodParameters:
      Name  Flags
      out   

  private static int countBooleanArray(boolean[]);
    descriptor: ([Z)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // boolean[] fields
         0: .line 225
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 226
            aload 0 /* fields */
            arraylength
            istore 2 /* N */
        start local 2 // int N
         2: .line 227
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 228
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* fields */
            iload 3 /* i */
            baload
            ifeq 6
         5: .line 229
            iinc 1 /* count */ 1
         6: .line 227
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 2 /* N */
            if_icmplt 4
        end local 3 // int i
         8: .line 232
            iload 1 /* count */
            ireturn
        end local 2 // int N
        end local 1 // int count
        end local 0 // boolean[] fields
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  fields  [Z
            1    9     1   count  I
            2    9     2       N  I
            3    8     3       i  I
    MethodParameters:
        Name  Flags
      fields  

  private static <T> int countObjectArray();
    descriptor: ([Ljava/lang/Object;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.Object[] fields
         0: .line 239
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 240
            aload 0 /* fields */
            arraylength
            istore 2 /* N */
        start local 2 // int N
         2: .line 241
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 242
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* fields */
            iload 3 /* i */
            aaload
            ifnull 6
         5: .line 243
            iinc 1 /* count */ 1
         6: .line 241
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 2 /* N */
            if_icmplt 4
        end local 3 // int i
         8: .line 246
            iload 1 /* count */
            ireturn
        end local 2 // int N
        end local 1 // int count
        end local 0 // java.lang.Object[] fields
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  fields  [Ljava/lang/Object;
            1    9     1   count  I
            2    9     2       N  I
            3    8     3       i  I
    Signature: <T:Ljava/lang/Object;>([TT;)I
    MethodParameters:
        Name  Flags
      fields  

  private static void writeHealthStatsWriterMap(android.os.Parcel, android.util.ArrayMap<java.lang.String, android.os.health.HealthStatsWriter>);
    descriptor: (Landroid/os/Parcel;Landroid/util/ArrayMap;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.os.Parcel out
        start local 1 // android.util.ArrayMap map
         0: .line 254
            aload 1 /* map */
            invokevirtual android.util.ArrayMap.size:()I
            istore 2 /* N */
        start local 2 // int N
         1: .line 255
            aload 0 /* out */
            iload 2 /* N */
            invokevirtual android.os.Parcel.writeInt:(I)V
         2: .line 256
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 257
      StackMap locals: int int
      StackMap stack:
            aload 0 /* out */
            aload 1 /* map */
            iload 3 /* i */
            invokevirtual android.util.ArrayMap.keyAt:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual android.os.Parcel.writeString:(Ljava/lang/String;)V
         5: .line 258
            aload 1 /* map */
            iload 3 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.os.health.HealthStatsWriter
            aload 0 /* out */
            invokevirtual android.os.health.HealthStatsWriter.flattenToParcel:(Landroid/os/Parcel;)V
         6: .line 256
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 2 /* N */
            if_icmplt 4
        end local 3 // int i
         8: .line 260
            return
        end local 2 // int N
        end local 1 // android.util.ArrayMap map
        end local 0 // android.os.Parcel out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0   out  Landroid/os/Parcel;
            0    9     1   map  Landroid/util/ArrayMap<Ljava/lang/String;Landroid/os/health/HealthStatsWriter;>;
            1    9     2     N  I
            3    8     3     i  I
    Signature: (Landroid/os/Parcel;Landroid/util/ArrayMap<Ljava/lang/String;Landroid/os/health/HealthStatsWriter;>;)V
    MethodParameters:
      Name  Flags
      out   
      map   

  private static <T extends android.os.Parcelable> void writeParcelableMap(android.os.Parcel, android.util.ArrayMap<java.lang.String, T>);
    descriptor: (Landroid/os/Parcel;Landroid/util/ArrayMap;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.os.Parcel out
        start local 1 // android.util.ArrayMap map
         0: .line 267
            aload 1 /* map */
            invokevirtual android.util.ArrayMap.size:()I
            istore 2 /* N */
        start local 2 // int N
         1: .line 268
            aload 0 /* out */
            iload 2 /* N */
            invokevirtual android.os.Parcel.writeInt:(I)V
         2: .line 269
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 270
      StackMap locals: int int
      StackMap stack:
            aload 0 /* out */
            aload 1 /* map */
            iload 3 /* i */
            invokevirtual android.util.ArrayMap.keyAt:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual android.os.Parcel.writeString:(Ljava/lang/String;)V
         5: .line 271
            aload 1 /* map */
            iload 3 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.os.Parcelable
            aload 0 /* out */
            iconst_0
            invokeinterface android.os.Parcelable.writeToParcel:(Landroid/os/Parcel;I)V
         6: .line 269
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 2 /* N */
            if_icmplt 4
        end local 3 // int i
         8: .line 273
            return
        end local 2 // int N
        end local 1 // android.util.ArrayMap map
        end local 0 // android.os.Parcel out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0   out  Landroid/os/Parcel;
            0    9     1   map  Landroid/util/ArrayMap<Ljava/lang/String;TT;>;
            1    9     2     N  I
            3    8     3     i  I
    Signature: <T::Landroid/os/Parcelable;>(Landroid/os/Parcel;Landroid/util/ArrayMap<Ljava/lang/String;TT;>;)V
    MethodParameters:
      Name  Flags
      out   
      map   

  private static void writeLongsMap(android.os.Parcel, android.util.ArrayMap<java.lang.String, java.lang.Long>);
    descriptor: (Landroid/os/Parcel;Landroid/util/ArrayMap;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.os.Parcel out
        start local 1 // android.util.ArrayMap map
         0: .line 279
            aload 1 /* map */
            invokevirtual android.util.ArrayMap.size:()I
            istore 2 /* N */
        start local 2 // int N
         1: .line 280
            aload 0 /* out */
            iload 2 /* N */
            invokevirtual android.os.Parcel.writeInt:(I)V
         2: .line 281
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 282
      StackMap locals: int int
      StackMap stack:
            aload 0 /* out */
            aload 1 /* map */
            iload 3 /* i */
            invokevirtual android.util.ArrayMap.keyAt:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual android.os.Parcel.writeString:(Ljava/lang/String;)V
         5: .line 283
            aload 0 /* out */
            aload 1 /* map */
            iload 3 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            invokevirtual android.os.Parcel.writeLong:(J)V
         6: .line 281
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 2 /* N */
            if_icmplt 4
        end local 3 // int i
         8: .line 285
            return
        end local 2 // int N
        end local 1 // android.util.ArrayMap map
        end local 0 // android.os.Parcel out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0   out  Landroid/os/Parcel;
            0    9     1   map  Landroid/util/ArrayMap<Ljava/lang/String;Ljava/lang/Long;>;
            1    9     2     N  I
            3    8     3     i  I
    Signature: (Landroid/os/Parcel;Landroid/util/ArrayMap<Ljava/lang/String;Ljava/lang/Long;>;)V
    MethodParameters:
      Name  Flags
      out   
      map   
}
SourceFile: "HealthStatsWriter.java"
InnerClasses:
  public Constants = android.os.health.HealthKeys$Constants of android.os.health.HealthKeys