public class com.android.settingslib.NetworkPolicyEditor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.settingslib.NetworkPolicyEditor
  super_class: java.lang.Object
{
  public static final boolean ENABLE_SPLIT_POLICIES;
    descriptor: Z
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private android.net.NetworkPolicyManager mPolicyManager;
    descriptor: Landroid/net/NetworkPolicyManager;
    flags: (0x0002) ACC_PRIVATE

  private java.util.ArrayList<android.net.NetworkPolicy> mPolicies;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Landroid/net/NetworkPolicy;>;

  public void <init>(android.net.NetworkPolicyManager);
    descriptor: (Landroid/net/NetworkPolicyManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkPolicyManager policyManager
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            aload 0 /* this */
            invokestatic com.google.android.collect.Lists.newArrayList:()Ljava/util/ArrayList;
            putfield com.android.settingslib.NetworkPolicyEditor.mPolicies:Ljava/util/ArrayList;
         2: .line 57
            aload 0 /* this */
            aload 1 /* policyManager */
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.net.NetworkPolicyManager
            putfield com.android.settingslib.NetworkPolicyEditor.mPolicyManager:Landroid/net/NetworkPolicyManager;
         3: .line 58
            return
        end local 1 // android.net.NetworkPolicyManager policyManager
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    4     1  policyManager  Landroid/net/NetworkPolicyManager;
    MethodParameters:
               Name  Flags
      policyManager  

  public void read();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
         0: .line 61
            aload 0 /* this */
            getfield com.android.settingslib.NetworkPolicyEditor.mPolicyManager:Landroid/net/NetworkPolicyManager;
            invokevirtual android.net.NetworkPolicyManager.getNetworkPolicies:()[Landroid/net/NetworkPolicy;
            astore 1 /* policies */
        start local 1 // android.net.NetworkPolicy[] policies
         1: .line 63
            iconst_0
            istore 2 /* modified */
        start local 2 // boolean modified
         2: .line 64
            aload 0 /* this */
            getfield com.android.settingslib.NetworkPolicyEditor.mPolicies:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         3: .line 65
            aload 1 /* policies */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 13
      StackMap locals: com.android.settingslib.NetworkPolicyEditor android.net.NetworkPolicy[] int top int int android.net.NetworkPolicy[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* policy */
        start local 3 // android.net.NetworkPolicy policy
         5: .line 67
            aload 3 /* policy */
            getfield android.net.NetworkPolicy.limitBytes:J
            ldc -1
            lcmp
            ifge 8
         6: .line 68
            aload 3 /* policy */
            ldc -1
            putfield android.net.NetworkPolicy.limitBytes:J
         7: .line 69
            iconst_1
            istore 2 /* modified */
         8: .line 71
      StackMap locals: com.android.settingslib.NetworkPolicyEditor android.net.NetworkPolicy[] int android.net.NetworkPolicy int int android.net.NetworkPolicy[]
      StackMap stack:
            aload 3 /* policy */
            getfield android.net.NetworkPolicy.warningBytes:J
            ldc -1
            lcmp
            ifge 11
         9: .line 72
            aload 3 /* policy */
            ldc -1
            putfield android.net.NetworkPolicy.warningBytes:J
        10: .line 73
            iconst_1
            istore 2 /* modified */
        11: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.settingslib.NetworkPolicyEditor.mPolicies:Ljava/util/ArrayList;
            aload 3 /* policy */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // android.net.NetworkPolicy policy
        12: .line 65
            iinc 4 1
      StackMap locals: com.android.settingslib.NetworkPolicyEditor android.net.NetworkPolicy[] int top int int android.net.NetworkPolicy[]
      StackMap stack:
        13: iload 4
            iload 5
            if_icmplt 4
        14: .line 80
            iload 2 /* modified */
            ifeq 15
            aload 0 /* this */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.writeAsync:()V
        15: .line 81
      StackMap locals: com.android.settingslib.NetworkPolicyEditor android.net.NetworkPolicy[] int
      StackMap stack:
            return
        end local 2 // boolean modified
        end local 1 // android.net.NetworkPolicy[] policies
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            1   16     1  policies  [Landroid/net/NetworkPolicy;
            2   16     2  modified  Z
            5   12     3    policy  Landroid/net/NetworkPolicy;

  public void writeAsync();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
         0: .line 85
            aload 0 /* this */
            getfield com.android.settingslib.NetworkPolicyEditor.mPolicies:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield com.android.settingslib.NetworkPolicyEditor.mPolicies:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            anewarray android.net.NetworkPolicy
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast android.net.NetworkPolicy[]
            astore 1 /* policies */
        start local 1 // android.net.NetworkPolicy[] policies
         1: .line 86
            new com.android.settingslib.NetworkPolicyEditor$1
            dup
            aload 0 /* this */
            aload 1 /* policies */
            invokespecial com.android.settingslib.NetworkPolicyEditor$1.<init>:(Lcom/android/settingslib/NetworkPolicyEditor;[Landroid/net/NetworkPolicy;)V
            iconst_0
            anewarray java.lang.Void
         2: .line 92
            invokevirtual com.android.settingslib.NetworkPolicyEditor$1.execute:([Ljava/lang/Object;)Landroid/os/AsyncTask;
            pop
         3: .line 93
            return
        end local 1 // android.net.NetworkPolicy[] policies
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            1    4     1  policies  [Landroid/net/NetworkPolicy;

  public void write(android.net.NetworkPolicy[]);
    descriptor: ([Landroid/net/NetworkPolicy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkPolicy[] policies
         0: .line 96
            aload 0 /* this */
            getfield com.android.settingslib.NetworkPolicyEditor.mPolicyManager:Landroid/net/NetworkPolicyManager;
            aload 1 /* policies */
            invokevirtual android.net.NetworkPolicyManager.setNetworkPolicies:([Landroid/net/NetworkPolicy;)V
         1: .line 97
            return
        end local 1 // android.net.NetworkPolicy[] policies
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    2     1  policies  [Landroid/net/NetworkPolicy;
    MethodParameters:
          Name  Flags
      policies  

  public boolean hasLimitedPolicy(android.net.NetworkTemplate);
    descriptor: (Landroid/net/NetworkTemplate;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
         0: .line 100
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getPolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 2 /* policy */
        start local 2 // android.net.NetworkPolicy policy
         1: .line 101
            aload 2 /* policy */
            ifnull 2
            aload 2 /* policy */
            getfield android.net.NetworkPolicy.limitBytes:J
            ldc -1
            lcmp
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: android.net.NetworkPolicy
      StackMap stack:
         2: iconst_0
            ireturn
        end local 2 // android.net.NetworkPolicy policy
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    3     1  template  Landroid/net/NetworkTemplate;
            1    3     2    policy  Landroid/net/NetworkPolicy;
    MethodParameters:
          Name  Flags
      template  

  public android.net.NetworkPolicy getOrCreatePolicy(android.net.NetworkTemplate);
    descriptor: (Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
         0: .line 105
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getPolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 2 /* policy */
        start local 2 // android.net.NetworkPolicy policy
         1: .line 106
            aload 2 /* policy */
            ifnonnull 4
         2: .line 107
            aload 1 /* template */
            invokestatic com.android.settingslib.NetworkPolicyEditor.buildDefaultPolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 2 /* policy */
         3: .line 108
            aload 0 /* this */
            getfield com.android.settingslib.NetworkPolicyEditor.mPolicies:Ljava/util/ArrayList;
            aload 2 /* policy */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 110
      StackMap locals: android.net.NetworkPolicy
      StackMap stack:
            aload 2 /* policy */
            areturn
        end local 2 // android.net.NetworkPolicy policy
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    5     1  template  Landroid/net/NetworkTemplate;
            1    5     2    policy  Landroid/net/NetworkPolicy;
    MethodParameters:
          Name  Flags
      template  

  public android.net.NetworkPolicy getPolicy(android.net.NetworkTemplate);
    descriptor: (Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
         0: .line 114
            aload 0 /* this */
            getfield com.android.settingslib.NetworkPolicyEditor.mPolicies:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.android.settingslib.NetworkPolicyEditor android.net.NetworkTemplate top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.net.NetworkPolicy
            astore 2 /* policy */
        start local 2 // android.net.NetworkPolicy policy
         2: .line 115
            aload 2 /* policy */
            getfield android.net.NetworkPolicy.template:Landroid/net/NetworkTemplate;
            aload 1 /* template */
            invokevirtual android.net.NetworkTemplate.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 116
            aload 2 /* policy */
            areturn
        end local 2 // android.net.NetworkPolicy policy
         4: .line 114
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 119
            aconst_null
            areturn
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    6     1  template  Landroid/net/NetworkTemplate;
            2    4     2    policy  Landroid/net/NetworkPolicy;
    MethodParameters:
          Name  Flags
      template  

  public android.net.NetworkPolicy getPolicyMaybeUnquoted(android.net.NetworkTemplate);
    descriptor: (Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
         0: .line 123
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getPolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 2 /* policy */
        start local 2 // android.net.NetworkPolicy policy
         1: .line 124
            aload 2 /* policy */
            ifnull 3
         2: .line 125
            aload 2 /* policy */
            areturn
         3: .line 127
      StackMap locals: android.net.NetworkPolicy
      StackMap stack:
            aload 0 /* this */
            aload 1 /* template */
            invokestatic com.android.settingslib.NetworkPolicyEditor.buildUnquotedNetworkTemplate:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkTemplate;
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getPolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            areturn
        end local 2 // android.net.NetworkPolicy policy
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    4     1  template  Landroid/net/NetworkTemplate;
            1    4     2    policy  Landroid/net/NetworkPolicy;
    MethodParameters:
          Name  Flags
      template  

  private static android.net.NetworkPolicy buildDefaultPolicy(android.net.NetworkTemplate);
    descriptor: (Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=14, locals=3, args_size=1
        start local 0 // android.net.NetworkTemplate template
         0: .line 137
            aload 0 /* template */
            invokevirtual android.net.NetworkTemplate.getMatchRule:()I
            iconst_4
            if_icmpne 4
         1: .line 138
            invokestatic android.util.RecurrenceRule.buildNever:()Landroid/util/RecurrenceRule;
            astore 1 /* cycleRule */
        start local 1 // android.util.RecurrenceRule cycleRule
         2: .line 139
            iconst_0
            istore 2 /* metered */
        start local 2 // boolean metered
         3: .line 140
            goto 8
        end local 2 // boolean metered
        end local 1 // android.util.RecurrenceRule cycleRule
         4: .line 141
      StackMap locals:
      StackMap stack:
            invokestatic java.time.ZonedDateTime.now:()Ljava/time/ZonedDateTime;
            invokevirtual java.time.ZonedDateTime.getDayOfMonth:()I
         5: .line 142
            invokestatic java.time.ZoneId.systemDefault:()Ljava/time/ZoneId;
         6: .line 141
            invokestatic android.util.RecurrenceRule.buildRecurringMonthly:(ILjava/time/ZoneId;)Landroid/util/RecurrenceRule;
            astore 1 /* cycleRule */
        start local 1 // android.util.RecurrenceRule cycleRule
         7: .line 143
            iconst_1
            istore 2 /* metered */
        start local 2 // boolean metered
         8: .line 146
      StackMap locals: android.util.RecurrenceRule int
      StackMap stack:
            new android.net.NetworkPolicy
            dup
            aload 0 /* template */
            aload 1 /* cycleRule */
            ldc -1
         9: .line 147
            ldc -1
            ldc -1
            ldc -1
            iload 2 /* metered */
            iconst_1
        10: .line 146
            invokespecial android.net.NetworkPolicy.<init>:(Landroid/net/NetworkTemplate;Landroid/util/RecurrenceRule;JJJJZZ)V
            areturn
        end local 2 // boolean metered
        end local 1 // android.util.RecurrenceRule cycleRule
        end local 0 // android.net.NetworkTemplate template
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0   template  Landroid/net/NetworkTemplate;
            2    4     1  cycleRule  Landroid/util/RecurrenceRule;
            7   11     1  cycleRule  Landroid/util/RecurrenceRule;
            3    4     2    metered  Z
            8   11     2    metered  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      template  

  public int getPolicyCycleDay(android.net.NetworkTemplate);
    descriptor: (Landroid/net/NetworkTemplate;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
         0: .line 152
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getPolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 2 /* policy */
        start local 2 // android.net.NetworkPolicy policy
         1: .line 153
            aload 2 /* policy */
            ifnull 3
            aload 2 /* policy */
            getfield android.net.NetworkPolicy.cycleRule:Landroid/util/RecurrenceRule;
            invokevirtual android.util.RecurrenceRule.isMonthly:()Z
            ifeq 3
         2: .line 154
            aload 2 /* policy */
            getfield android.net.NetworkPolicy.cycleRule:Landroid/util/RecurrenceRule;
            getfield android.util.RecurrenceRule.start:Ljava/time/ZonedDateTime;
            invokevirtual java.time.ZonedDateTime.getDayOfMonth:()I
            ireturn
         3: .line 156
      StackMap locals: android.net.NetworkPolicy
      StackMap stack:
            iconst_m1
            ireturn
        end local 2 // android.net.NetworkPolicy policy
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    4     1  template  Landroid/net/NetworkTemplate;
            1    4     2    policy  Landroid/net/NetworkPolicy;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      template  

  public void setPolicyCycleDay(android.net.NetworkTemplate, int, java.lang.String);
    descriptor: (Landroid/net/NetworkTemplate;ILjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
        start local 2 // int cycleDay
        start local 3 // java.lang.String cycleTimezone
         0: .line 162
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getOrCreatePolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 4 /* policy */
        start local 4 // android.net.NetworkPolicy policy
         1: .line 163
            aload 4 /* policy */
            iload 2 /* cycleDay */
            aload 3 /* cycleTimezone */
            invokestatic java.time.ZoneId.of:(Ljava/lang/String;)Ljava/time/ZoneId;
            invokestatic android.net.NetworkPolicy.buildRule:(ILjava/time/ZoneId;)Landroid/util/RecurrenceRule;
            putfield android.net.NetworkPolicy.cycleRule:Landroid/util/RecurrenceRule;
         2: .line 164
            aload 4 /* policy */
            iconst_0
            putfield android.net.NetworkPolicy.inferred:Z
         3: .line 165
            aload 4 /* policy */
            invokevirtual android.net.NetworkPolicy.clearSnooze:()V
         4: .line 166
            aload 0 /* this */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.writeAsync:()V
         5: .line 167
            return
        end local 4 // android.net.NetworkPolicy policy
        end local 3 // java.lang.String cycleTimezone
        end local 2 // int cycleDay
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    6     1       template  Landroid/net/NetworkTemplate;
            0    6     2       cycleDay  I
            0    6     3  cycleTimezone  Ljava/lang/String;
            1    6     4         policy  Landroid/net/NetworkPolicy;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      template       
      cycleDay       
      cycleTimezone  

  public long getPolicyWarningBytes(android.net.NetworkTemplate);
    descriptor: (Landroid/net/NetworkTemplate;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
         0: .line 170
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getPolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 2 /* policy */
        start local 2 // android.net.NetworkPolicy policy
         1: .line 171
            aload 2 /* policy */
            ifnull 2
            aload 2 /* policy */
            getfield android.net.NetworkPolicy.warningBytes:J
            goto 3
      StackMap locals: android.net.NetworkPolicy
      StackMap stack:
         2: ldc -1
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 2 // android.net.NetworkPolicy policy
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    4     1  template  Landroid/net/NetworkTemplate;
            1    4     2    policy  Landroid/net/NetworkPolicy;
    MethodParameters:
          Name  Flags
      template  

  private void setPolicyWarningBytesInner(android.net.NetworkTemplate, long);
    descriptor: (Landroid/net/NetworkTemplate;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
        start local 2 // long warningBytes
         0: .line 175
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getOrCreatePolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 4 /* policy */
        start local 4 // android.net.NetworkPolicy policy
         1: .line 176
            aload 4 /* policy */
            lload 2 /* warningBytes */
            putfield android.net.NetworkPolicy.warningBytes:J
         2: .line 177
            aload 4 /* policy */
            iconst_0
            putfield android.net.NetworkPolicy.inferred:Z
         3: .line 178
            aload 4 /* policy */
            invokevirtual android.net.NetworkPolicy.clearSnooze:()V
         4: .line 179
            aload 0 /* this */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.writeAsync:()V
         5: .line 180
            return
        end local 4 // android.net.NetworkPolicy policy
        end local 2 // long warningBytes
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    6     1      template  Landroid/net/NetworkTemplate;
            0    6     2  warningBytes  J
            1    6     4        policy  Landroid/net/NetworkPolicy;
    MethodParameters:
              Name  Flags
      template      
      warningBytes  

  public void setPolicyWarningBytes(android.net.NetworkTemplate, long);
    descriptor: (Landroid/net/NetworkTemplate;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
        start local 2 // long warningBytes
         0: .line 183
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getPolicyLimitBytes:(Landroid/net/NetworkTemplate;)J
            lstore 4 /* limitBytes */
        start local 4 // long limitBytes
         1: .line 186
            lload 4 /* limitBytes */
            ldc -1
            lcmp
            ifne 2
            lload 2 /* warningBytes */
            goto 3
      StackMap locals: long
      StackMap stack:
         2: lload 2 /* warningBytes */
            lload 4 /* limitBytes */
            invokestatic java.lang.Math.min:(JJ)J
         3: .line 185
      StackMap locals:
      StackMap stack: long
            lstore 2 /* warningBytes */
         4: .line 188
            aload 0 /* this */
            aload 1 /* template */
            lload 2 /* warningBytes */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.setPolicyWarningBytesInner:(Landroid/net/NetworkTemplate;J)V
         5: .line 189
            return
        end local 4 // long limitBytes
        end local 2 // long warningBytes
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    6     1      template  Landroid/net/NetworkTemplate;
            0    6     2  warningBytes  J
            1    6     4    limitBytes  J
    MethodParameters:
              Name  Flags
      template      
      warningBytes  

  public long getPolicyLimitBytes(android.net.NetworkTemplate);
    descriptor: (Landroid/net/NetworkTemplate;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
         0: .line 192
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getPolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 2 /* policy */
        start local 2 // android.net.NetworkPolicy policy
         1: .line 193
            aload 2 /* policy */
            ifnull 2
            aload 2 /* policy */
            getfield android.net.NetworkPolicy.limitBytes:J
            goto 3
      StackMap locals: android.net.NetworkPolicy
      StackMap stack:
         2: ldc -1
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 2 // android.net.NetworkPolicy policy
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    4     1  template  Landroid/net/NetworkTemplate;
            1    4     2    policy  Landroid/net/NetworkPolicy;
    MethodParameters:
          Name  Flags
      template  

  public void setPolicyLimitBytes(android.net.NetworkTemplate, long);
    descriptor: (Landroid/net/NetworkTemplate;J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.android.settingslib.NetworkPolicyEditor this
        start local 1 // android.net.NetworkTemplate template
        start local 2 // long limitBytes
         0: .line 198
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getPolicyWarningBytes:(Landroid/net/NetworkTemplate;)J
            lstore 4 /* warningBytes */
        start local 4 // long warningBytes
         1: .line 200
            lload 4 /* warningBytes */
            lload 2 /* limitBytes */
            lcmp
            ifle 3
            lload 2 /* limitBytes */
            ldc -1
            lcmp
            ifeq 3
         2: .line 201
            aload 0 /* this */
            aload 1 /* template */
            lload 2 /* limitBytes */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.setPolicyWarningBytesInner:(Landroid/net/NetworkTemplate;J)V
         3: .line 204
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* template */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.getOrCreatePolicy:(Landroid/net/NetworkTemplate;)Landroid/net/NetworkPolicy;
            astore 6 /* policy */
        start local 6 // android.net.NetworkPolicy policy
         4: .line 205
            aload 6 /* policy */
            lload 2 /* limitBytes */
            putfield android.net.NetworkPolicy.limitBytes:J
         5: .line 206
            aload 6 /* policy */
            iconst_0
            putfield android.net.NetworkPolicy.inferred:Z
         6: .line 207
            aload 6 /* policy */
            invokevirtual android.net.NetworkPolicy.clearSnooze:()V
         7: .line 208
            aload 0 /* this */
            invokevirtual com.android.settingslib.NetworkPolicyEditor.writeAsync:()V
         8: .line 209
            return
        end local 6 // android.net.NetworkPolicy policy
        end local 4 // long warningBytes
        end local 2 // long limitBytes
        end local 1 // android.net.NetworkTemplate template
        end local 0 // com.android.settingslib.NetworkPolicyEditor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lcom/android/settingslib/NetworkPolicyEditor;
            0    9     1      template  Landroid/net/NetworkTemplate;
            0    9     2    limitBytes  J
            1    9     4  warningBytes  J
            4    9     6        policy  Landroid/net/NetworkPolicy;
    MethodParameters:
            Name  Flags
      template    
      limitBytes  

  private static android.net.NetworkTemplate buildUnquotedNetworkTemplate(android.net.NetworkTemplate);
    descriptor: (Landroid/net/NetworkTemplate;)Landroid/net/NetworkTemplate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // android.net.NetworkTemplate template
         0: .line 217
            aload 0 /* template */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* template */
            invokevirtual android.net.NetworkTemplate.getNetworkId:()Ljava/lang/String;
            astore 1 /* networkId */
        start local 1 // java.lang.String networkId
         2: .line 219
            aload 1 /* networkId */
            invokestatic android.net.wifi.WifiInfo.removeDoubleQuotes:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* strippedNetworkId */
        start local 2 // java.lang.String strippedNetworkId
         3: .line 220
            aload 2 /* strippedNetworkId */
            aload 1 /* networkId */
            invokestatic android.text.TextUtils.equals:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
            ifne 7
         4: .line 221
            new android.net.NetworkTemplate
            dup
         5: .line 222
            aload 0 /* template */
            invokevirtual android.net.NetworkTemplate.getMatchRule:()I
            aload 0 /* template */
            invokevirtual android.net.NetworkTemplate.getSubscriberId:()Ljava/lang/String;
            aload 2 /* strippedNetworkId */
         6: .line 221
            invokespecial android.net.NetworkTemplate.<init>:(ILjava/lang/String;Ljava/lang/String;)V
            areturn
         7: .line 224
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.String strippedNetworkId
        end local 1 // java.lang.String networkId
        end local 0 // android.net.NetworkTemplate template
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0           template  Landroid/net/NetworkTemplate;
            2    8     1          networkId  Ljava/lang/String;
            3    8     2  strippedNetworkId  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      template  
}
SourceFile: "NetworkPolicyEditor.java"
NestMembers:
  com.android.settingslib.NetworkPolicyEditor$1
InnerClasses:
  com.android.settingslib.NetworkPolicyEditor$1