public final class android.net.IpPrefix implements android.os.Parcelable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.net.IpPrefix
  super_class: java.lang.Object
{
  private final byte[] address;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int prefixLength;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final android.os.Parcelable$Creator<android.net.IpPrefix> CREATOR;
    descriptor: Landroid/os/Parcelable$Creator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Landroid/os/Parcelable$Creator<Landroid/net/IpPrefix;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 283
            new android.net.IpPrefix$1
            dup
            invokespecial android.net.IpPrefix$1.<init>:()V
         1: .line 282
            putstatic android.net.IpPrefix.CREATOR:Landroid/os/Parcelable$Creator;
         2: .line 293
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void checkAndMaskAddressAndPrefixLength();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // android.net.IpPrefix this
         0: .line 54
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            arraylength
            iconst_4
            if_icmpeq 4
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            arraylength
            bipush 16
            if_icmpeq 4
         1: .line 55
            new java.lang.IllegalArgumentException
            dup
         2: .line 56
            new java.lang.StringBuilder
            dup
            ldc "IpPrefix has "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bytes which is neither 4 nor 16"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 55
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 58
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            aload 0 /* this */
            getfield android.net.IpPrefix.prefixLength:I
            invokestatic android.net.NetworkUtils.maskRawAddress:([BI)V
         5: .line 59
            return
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/net/IpPrefix;

  public void <init>(byte[], int);
    descriptor: ([BI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.net.IpPrefix this
        start local 1 // byte[] address
        start local 2 // int prefixLength
         0: .line 71
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 72
            aload 0 /* this */
            aload 1 /* address */
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            putfield android.net.IpPrefix.address:[B
         2: .line 73
            aload 0 /* this */
            iload 2 /* prefixLength */
            putfield android.net.IpPrefix.prefixLength:I
         3: .line 74
            aload 0 /* this */
            invokevirtual android.net.IpPrefix.checkAndMaskAddressAndPrefixLength:()V
         4: .line 75
            return
        end local 2 // int prefixLength
        end local 1 // byte[] address
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Landroid/net/IpPrefix;
            0    5     1       address  [B
            0    5     2  prefixLength  I
    MethodParameters:
              Name  Flags
      address       
      prefixLength  

  public void <init>(java.net.InetAddress, int);
    descriptor: (Ljava/net/InetAddress;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.net.IpPrefix this
        start local 1 // java.net.InetAddress address
        start local 2 // int prefixLength
         0: .line 86
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 89
            aload 0 /* this */
            aload 1 /* address */
            invokevirtual java.net.InetAddress.getAddress:()[B
            putfield android.net.IpPrefix.address:[B
         2: .line 90
            aload 0 /* this */
            iload 2 /* prefixLength */
            putfield android.net.IpPrefix.prefixLength:I
         3: .line 91
            aload 0 /* this */
            invokevirtual android.net.IpPrefix.checkAndMaskAddressAndPrefixLength:()V
         4: .line 92
            return
        end local 2 // int prefixLength
        end local 1 // java.net.InetAddress address
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Landroid/net/IpPrefix;
            0    5     1       address  Ljava/net/InetAddress;
            0    5     2  prefixLength  I
    MethodParameters:
              Name  Flags
      address       
      prefixLength  

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.net.IpPrefix this
        start local 1 // java.lang.String prefix
         0: .line 103
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 108
            aload 1 /* prefix */
            invokestatic android.net.NetworkUtils.parseIpAndMask:(Ljava/lang/String;)Landroid/util/Pair;
            astore 2 /* ipAndMask */
        start local 2 // android.util.Pair ipAndMask
         2: .line 109
            aload 0 /* this */
            aload 2 /* ipAndMask */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokevirtual java.net.InetAddress.getAddress:()[B
            putfield android.net.IpPrefix.address:[B
         3: .line 110
            aload 0 /* this */
            aload 2 /* ipAndMask */
            getfield android.util.Pair.second:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            putfield android.net.IpPrefix.prefixLength:I
         4: .line 111
            aload 0 /* this */
            invokevirtual android.net.IpPrefix.checkAndMaskAddressAndPrefixLength:()V
         5: .line 112
            return
        end local 2 // android.util.Pair ipAndMask
        end local 1 // java.lang.String prefix
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Landroid/net/IpPrefix;
            0    6     1     prefix  Ljava/lang/String;
            2    6     2  ipAndMask  Landroid/util/Pair<Ljava/net/InetAddress;Ljava/lang/Integer;>;
    MethodParameters:
        Name  Flags
      prefix  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.net.IpPrefix this
        start local 1 // java.lang.Object obj
         0: .line 123
            aload 1 /* obj */
            instanceof android.net.IpPrefix
            ifne 2
         1: .line 124
            iconst_0
            ireturn
         2: .line 126
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast android.net.IpPrefix
            astore 2 /* that */
        start local 2 // android.net.IpPrefix that
         3: .line 127
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            aload 2 /* that */
            getfield android.net.IpPrefix.address:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ifeq 4
            aload 0 /* this */
            getfield android.net.IpPrefix.prefixLength:I
            aload 2 /* that */
            getfield android.net.IpPrefix.prefixLength:I
            if_icmpne 4
            iconst_1
            ireturn
      StackMap locals: android.net.IpPrefix
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // android.net.IpPrefix that
        end local 1 // java.lang.Object obj
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/net/IpPrefix;
            0    5     1   obj  Ljava/lang/Object;
            3    5     2  that  Landroid/net/IpPrefix;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.net.IpPrefix this
         0: .line 137
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            invokestatic java.util.Arrays.hashCode:([B)I
            bipush 11
            aload 0 /* this */
            getfield android.net.IpPrefix.prefixLength:I
            imul
            iadd
            ireturn
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/IpPrefix;

  public java.net.InetAddress getAddress();
    descriptor: ()Ljava/net/InetAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.net.IpPrefix this
         0: .line 148
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
         1: areturn
         2: .line 149
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            pop
         3: .line 152
            aconst_null
            areturn
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/net/IpPrefix;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.UnknownHostException

  public byte[] getRawAddress();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.net.IpPrefix this
         0: .line 163
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            invokevirtual byte[].clone:()Ljava/lang/Object;
            checkcast byte[]
            areturn
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/IpPrefix;

  public int getPrefixLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.net.IpPrefix this
         0: .line 172
            aload 0 /* this */
            getfield android.net.IpPrefix.prefixLength:I
            ireturn
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/IpPrefix;

  public boolean contains(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.net.IpPrefix this
        start local 1 // java.net.InetAddress address
         0: .line 182
            aload 1 /* address */
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* address */
            invokevirtual java.net.InetAddress.getAddress:()[B
      StackMap locals:
      StackMap stack: byte[]
         2: astore 2 /* addrBytes */
        start local 2 // byte[] addrBytes
         3: .line 183
            aload 2 /* addrBytes */
            ifnull 4
            aload 2 /* addrBytes */
            arraylength
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            arraylength
            if_icmpeq 5
         4: .line 184
      StackMap locals: byte[]
      StackMap stack:
            iconst_0
            ireturn
         5: .line 186
      StackMap locals:
      StackMap stack:
            aload 2 /* addrBytes */
            aload 0 /* this */
            getfield android.net.IpPrefix.prefixLength:I
            invokestatic android.net.NetworkUtils.maskRawAddress:([BI)V
         6: .line 187
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            aload 2 /* addrBytes */
            invokestatic java.util.Arrays.equals:([B[B)Z
            ireturn
        end local 2 // byte[] addrBytes
        end local 1 // java.net.InetAddress address
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Landroid/net/IpPrefix;
            0    7     1    address  Ljava/net/InetAddress;
            3    7     2  addrBytes  [B
    MethodParameters:
         Name  Flags
      address  

  public boolean containsPrefix(android.net.IpPrefix);
    descriptor: (Landroid/net/IpPrefix;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.net.IpPrefix this
        start local 1 // android.net.IpPrefix otherPrefix
         0: .line 198
            aload 1 /* otherPrefix */
            invokevirtual android.net.IpPrefix.getPrefixLength:()I
            aload 0 /* this */
            getfield android.net.IpPrefix.prefixLength:I
            if_icmpge 1
            iconst_0
            ireturn
         1: .line 199
      StackMap locals:
      StackMap stack:
            aload 1 /* otherPrefix */
            invokevirtual android.net.IpPrefix.getRawAddress:()[B
            astore 2 /* otherAddress */
        start local 2 // byte[] otherAddress
         2: .line 200
            aload 2 /* otherAddress */
            aload 0 /* this */
            getfield android.net.IpPrefix.prefixLength:I
            invokestatic android.net.NetworkUtils.maskRawAddress:([BI)V
         3: .line 201
            aload 2 /* otherAddress */
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            invokestatic java.util.Arrays.equals:([B[B)Z
            ireturn
        end local 2 // byte[] otherAddress
        end local 1 // android.net.IpPrefix otherPrefix
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Landroid/net/IpPrefix;
            0    4     1   otherPrefix  Landroid/net/IpPrefix;
            2    4     2  otherAddress  [B
    MethodParameters:
             Name  Flags
      otherPrefix  

  public boolean isIPv6();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.net.IpPrefix this
         0: .line 208
            aload 0 /* this */
            invokevirtual android.net.IpPrefix.getAddress:()Ljava/net/InetAddress;
            instanceof java.net.Inet6Address
            ireturn
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/IpPrefix;

  public boolean isIPv4();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.net.IpPrefix this
         0: .line 215
            aload 0 /* this */
            invokevirtual android.net.IpPrefix.getAddress:()Ljava/net/InetAddress;
            instanceof java.net.Inet4Address
            ireturn
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/IpPrefix;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.net.IpPrefix this
         0: .line 225
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            invokestatic java.net.InetAddress.getByAddress:([B)Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.net.IpPrefix.prefixLength:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         1: areturn
         2: .line 226
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            astore 1 /* e */
        start local 1 // java.net.UnknownHostException e
         3: .line 228
            new java.lang.IllegalStateException
            dup
            ldc "IpPrefix with invalid address! Shouldn't happen."
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.net.UnknownHostException e
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/net/IpPrefix;
            3    4     1     e  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.UnknownHostException

  public int describeContents();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.net.IpPrefix this
         0: .line 236
            iconst_0
            ireturn
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/net/IpPrefix;

  public void writeToParcel(android.os.Parcel, int);
    descriptor: (Landroid/os/Parcel;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.net.IpPrefix this
        start local 1 // android.os.Parcel dest
        start local 2 // int flags
         0: .line 243
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.net.IpPrefix.address:[B
            invokevirtual android.os.Parcel.writeByteArray:([B)V
         1: .line 244
            aload 1 /* dest */
            aload 0 /* this */
            getfield android.net.IpPrefix.prefixLength:I
            invokevirtual android.os.Parcel.writeInt:(I)V
         2: .line 245
            return
        end local 2 // int flags
        end local 1 // android.os.Parcel dest
        end local 0 // android.net.IpPrefix this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Landroid/net/IpPrefix;
            0    3     1   dest  Landroid/os/Parcel;
            0    3     2  flags  I
    MethodParameters:
       Name  Flags
      dest   
      flags  

  public static java.util.Comparator<android.net.IpPrefix> lengthComparator();
    descriptor: ()Ljava/util/Comparator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 253
            new android.net.IpPrefix$2
            dup
            invokespecial android.net.IpPrefix$2.<init>:()V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Comparator<Landroid/net/IpPrefix;>;
}
SourceFile: "IpPrefix.java"
NestMembers:
  android.net.IpPrefix$1  android.net.IpPrefix$2
InnerClasses:
  android.net.IpPrefix$1
  android.net.IpPrefix$2
  public abstract Creator = android.os.Parcelable$Creator of android.os.Parcelable