public class org.bouncycastle.asn1.x500.X500Name extends org.bouncycastle.asn1.ASN1Object implements org.bouncycastle.asn1.ASN1Choice
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.asn1.x500.X500Name
  super_class: org.bouncycastle.asn1.ASN1Object
{
  private static org.bouncycastle.asn1.x500.X500NameStyle defaultStyle;
    descriptor: Lorg/bouncycastle/asn1/x500/X500NameStyle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private boolean isHashCodeCalculated;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int hashCodeValue;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.asn1.x500.X500NameStyle style;
    descriptor: Lorg/bouncycastle/asn1/x500/X500NameStyle;
    flags: (0x0002) ACC_PRIVATE

  private org.bouncycastle.asn1.x500.RDN[] rdns;
    descriptor: [Lorg/bouncycastle/asn1/x500/RDN;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 34
            getstatic org.bouncycastle.asn1.x500.style.BCStyle.INSTANCE:Lorg/bouncycastle/asn1/x500/X500NameStyle;
            putstatic org.bouncycastle.asn1.x500.X500Name.defaultStyle:Lorg/bouncycastle/asn1/x500/X500NameStyle;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.bouncycastle.asn1.x500.X500NameStyle, org.bouncycastle.asn1.x500.X500Name);
    descriptor: (Lorg/bouncycastle/asn1/x500/X500NameStyle;Lorg/bouncycastle/asn1/x500/X500Name;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // org.bouncycastle.asn1.x500.X500NameStyle style
        start local 2 // org.bouncycastle.asn1.x500.X500Name name
         0: .line 45
            aload 0 /* this */
            invokespecial org.bouncycastle.asn1.ASN1Object.<init>:()V
         1: .line 47
            aload 0 /* this */
            aload 2 /* name */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            putfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
         2: .line 48
            aload 0 /* this */
            aload 1 /* style */
            putfield org.bouncycastle.asn1.x500.X500Name.style:Lorg/bouncycastle/asn1/x500/X500NameStyle;
         3: .line 49
            return
        end local 2 // org.bouncycastle.asn1.x500.X500Name name
        end local 1 // org.bouncycastle.asn1.x500.X500NameStyle style
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/bouncycastle/asn1/x500/X500Name;
            0    4     1  style  Lorg/bouncycastle/asn1/x500/X500NameStyle;
            0    4     2   name  Lorg/bouncycastle/asn1/x500/X500Name;
    MethodParameters:
       Name  Flags
      style  
      name   

  public static org.bouncycastle.asn1.x500.X500Name getInstance(org.bouncycastle.asn1.ASN1TaggedObject, boolean);
    descriptor: (Lorg/bouncycastle/asn1/ASN1TaggedObject;Z)Lorg/bouncycastle/asn1/x500/X500Name;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.asn1.ASN1TaggedObject obj
        start local 1 // boolean explicit
         0: .line 63
            aload 0 /* obj */
            iconst_1
            invokestatic org.bouncycastle.asn1.ASN1Sequence.getInstance:(Lorg/bouncycastle/asn1/ASN1TaggedObject;Z)Lorg/bouncycastle/asn1/ASN1Sequence;
            invokestatic org.bouncycastle.asn1.x500.X500Name.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x500/X500Name;
            areturn
        end local 1 // boolean explicit
        end local 0 // org.bouncycastle.asn1.ASN1TaggedObject obj
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0       obj  Lorg/bouncycastle/asn1/ASN1TaggedObject;
            0    1     1  explicit  Z
    MethodParameters:
          Name  Flags
      obj       
      explicit  

  public static org.bouncycastle.asn1.x500.X500Name getInstance(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/bouncycastle/asn1/x500/X500Name;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 69
            aload 0 /* obj */
            instanceof org.bouncycastle.asn1.x500.X500Name
            ifeq 2
         1: .line 71
            aload 0 /* obj */
            checkcast org.bouncycastle.asn1.x500.X500Name
            areturn
         2: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            ifnull 4
         3: .line 75
            new org.bouncycastle.asn1.x500.X500Name
            dup
            aload 0 /* obj */
            invokestatic org.bouncycastle.asn1.ASN1Sequence.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1Sequence;
            invokespecial org.bouncycastle.asn1.x500.X500Name.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            areturn
         4: .line 78
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public static org.bouncycastle.asn1.x500.X500Name getInstance(org.bouncycastle.asn1.x500.X500NameStyle, java.lang.Object);
    descriptor: (Lorg/bouncycastle/asn1/x500/X500NameStyle;Ljava/lang/Object;)Lorg/bouncycastle/asn1/x500/X500Name;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bouncycastle.asn1.x500.X500NameStyle style
        start local 1 // java.lang.Object obj
         0: .line 85
            aload 1 /* obj */
            instanceof org.bouncycastle.asn1.x500.X500Name
            ifeq 2
         1: .line 87
            new org.bouncycastle.asn1.x500.X500Name
            dup
            aload 0 /* style */
            aload 1 /* obj */
            checkcast org.bouncycastle.asn1.x500.X500Name
            invokespecial org.bouncycastle.asn1.x500.X500Name.<init>:(Lorg/bouncycastle/asn1/x500/X500NameStyle;Lorg/bouncycastle/asn1/x500/X500Name;)V
            areturn
         2: .line 89
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            ifnull 4
         3: .line 91
            new org.bouncycastle.asn1.x500.X500Name
            dup
            aload 0 /* style */
            aload 1 /* obj */
            invokestatic org.bouncycastle.asn1.ASN1Sequence.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1Sequence;
            invokespecial org.bouncycastle.asn1.x500.X500Name.<init>:(Lorg/bouncycastle/asn1/x500/X500NameStyle;Lorg/bouncycastle/asn1/ASN1Sequence;)V
            areturn
         4: .line 94
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // org.bouncycastle.asn1.x500.X500NameStyle style
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  style  Lorg/bouncycastle/asn1/x500/X500NameStyle;
            0    5     1    obj  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      style  
      obj    

  private void <init>(org.bouncycastle.asn1.ASN1Sequence);
    descriptor: (Lorg/bouncycastle/asn1/ASN1Sequence;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // org.bouncycastle.asn1.ASN1Sequence seq
         0: .line 105
            aload 0 /* this */
            getstatic org.bouncycastle.asn1.x500.X500Name.defaultStyle:Lorg/bouncycastle/asn1/x500/X500NameStyle;
            aload 1 /* seq */
            invokespecial org.bouncycastle.asn1.x500.X500Name.<init>:(Lorg/bouncycastle/asn1/x500/X500NameStyle;Lorg/bouncycastle/asn1/ASN1Sequence;)V
         1: .line 106
            return
        end local 1 // org.bouncycastle.asn1.ASN1Sequence seq
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/asn1/x500/X500Name;
            0    2     1   seq  Lorg/bouncycastle/asn1/ASN1Sequence;
    MethodParameters:
      Name  Flags
      seq   

  private void <init>(org.bouncycastle.asn1.x500.X500NameStyle, org.bouncycastle.asn1.ASN1Sequence);
    descriptor: (Lorg/bouncycastle/asn1/x500/X500NameStyle;Lorg/bouncycastle/asn1/ASN1Sequence;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // org.bouncycastle.asn1.x500.X500NameStyle style
        start local 2 // org.bouncycastle.asn1.ASN1Sequence seq
         0: .line 108
            aload 0 /* this */
            invokespecial org.bouncycastle.asn1.ASN1Object.<init>:()V
         1: .line 112
            aload 0 /* this */
            aload 1 /* style */
            putfield org.bouncycastle.asn1.x500.X500Name.style:Lorg/bouncycastle/asn1/x500/X500NameStyle;
         2: .line 113
            aload 0 /* this */
            aload 2 /* seq */
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.size:()I
            anewarray org.bouncycastle.asn1.x500.RDN
            putfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
         3: .line 115
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         4: .line 117
            aload 2 /* seq */
            invokevirtual org.bouncycastle.asn1.ASN1Sequence.getObjects:()Ljava/util/Enumeration;
            astore 4 /* e */
        start local 4 // java.util.Enumeration e
         5: goto 7
         6: .line 119
      StackMap locals: org.bouncycastle.asn1.x500.X500Name org.bouncycastle.asn1.x500.X500NameStyle org.bouncycastle.asn1.ASN1Sequence int java.util.Enumeration
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            iload 3 /* index */
            iinc 3 /* index */ 1
            aload 4 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            invokestatic org.bouncycastle.asn1.x500.RDN.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/x500/RDN;
            aastore
         7: .line 117
      StackMap locals:
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 6
        end local 4 // java.util.Enumeration e
         8: .line 121
            return
        end local 3 // int index
        end local 2 // org.bouncycastle.asn1.ASN1Sequence seq
        end local 1 // org.bouncycastle.asn1.x500.X500NameStyle style
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/bouncycastle/asn1/x500/X500Name;
            0    9     1  style  Lorg/bouncycastle/asn1/x500/X500NameStyle;
            0    9     2    seq  Lorg/bouncycastle/asn1/ASN1Sequence;
            4    9     3  index  I
            5    8     4      e  Ljava/util/Enumeration;
    MethodParameters:
       Name  Flags
      style  
      seq    

  public void <init>(org.bouncycastle.asn1.x500.RDN[]);
    descriptor: ([Lorg/bouncycastle/asn1/x500/RDN;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // org.bouncycastle.asn1.x500.RDN[] rDNs
         0: .line 126
            aload 0 /* this */
            getstatic org.bouncycastle.asn1.x500.X500Name.defaultStyle:Lorg/bouncycastle/asn1/x500/X500NameStyle;
            aload 1 /* rDNs */
            invokespecial org.bouncycastle.asn1.x500.X500Name.<init>:(Lorg/bouncycastle/asn1/x500/X500NameStyle;[Lorg/bouncycastle/asn1/x500/RDN;)V
         1: .line 127
            return
        end local 1 // org.bouncycastle.asn1.x500.RDN[] rDNs
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bouncycastle/asn1/x500/X500Name;
            0    2     1  rDNs  [Lorg/bouncycastle/asn1/x500/RDN;
    MethodParameters:
      Name  Flags
      rDNs  

  public void <init>(org.bouncycastle.asn1.x500.X500NameStyle, org.bouncycastle.asn1.x500.RDN[]);
    descriptor: (Lorg/bouncycastle/asn1/x500/X500NameStyle;[Lorg/bouncycastle/asn1/x500/RDN;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // org.bouncycastle.asn1.x500.X500NameStyle style
        start local 2 // org.bouncycastle.asn1.x500.RDN[] rDNs
         0: .line 129
            aload 0 /* this */
            invokespecial org.bouncycastle.asn1.ASN1Object.<init>:()V
         1: .line 133
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* rDNs */
            invokevirtual org.bouncycastle.asn1.x500.X500Name.copy:([Lorg/bouncycastle/asn1/x500/RDN;)[Lorg/bouncycastle/asn1/x500/RDN;
            putfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
         2: .line 134
            aload 0 /* this */
            aload 1 /* style */
            putfield org.bouncycastle.asn1.x500.X500Name.style:Lorg/bouncycastle/asn1/x500/X500NameStyle;
         3: .line 135
            return
        end local 2 // org.bouncycastle.asn1.x500.RDN[] rDNs
        end local 1 // org.bouncycastle.asn1.x500.X500NameStyle style
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/bouncycastle/asn1/x500/X500Name;
            0    4     1  style  Lorg/bouncycastle/asn1/x500/X500NameStyle;
            0    4     2   rDNs  [Lorg/bouncycastle/asn1/x500/RDN;
    MethodParameters:
       Name  Flags
      style  
      rDNs   

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // java.lang.String dirName
         0: .line 140
            aload 0 /* this */
            getstatic org.bouncycastle.asn1.x500.X500Name.defaultStyle:Lorg/bouncycastle/asn1/x500/X500NameStyle;
            aload 1 /* dirName */
            invokespecial org.bouncycastle.asn1.x500.X500Name.<init>:(Lorg/bouncycastle/asn1/x500/X500NameStyle;Ljava/lang/String;)V
         1: .line 141
            return
        end local 1 // java.lang.String dirName
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/bouncycastle/asn1/x500/X500Name;
            0    2     1  dirName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      dirName  

  public void <init>(org.bouncycastle.asn1.x500.X500NameStyle, java.lang.String);
    descriptor: (Lorg/bouncycastle/asn1/x500/X500NameStyle;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // org.bouncycastle.asn1.x500.X500NameStyle style
        start local 2 // java.lang.String dirName
         0: .line 147
            aload 0 /* this */
            aload 1 /* style */
            aload 2 /* dirName */
            invokeinterface org.bouncycastle.asn1.x500.X500NameStyle.fromString:(Ljava/lang/String;)[Lorg/bouncycastle/asn1/x500/RDN;
            invokespecial org.bouncycastle.asn1.x500.X500Name.<init>:([Lorg/bouncycastle/asn1/x500/RDN;)V
         1: .line 149
            aload 0 /* this */
            aload 1 /* style */
            putfield org.bouncycastle.asn1.x500.X500Name.style:Lorg/bouncycastle/asn1/x500/X500NameStyle;
         2: .line 150
            return
        end local 2 // java.lang.String dirName
        end local 1 // org.bouncycastle.asn1.x500.X500NameStyle style
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/bouncycastle/asn1/x500/X500Name;
            0    3     1    style  Lorg/bouncycastle/asn1/x500/X500NameStyle;
            0    3     2  dirName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      style    
      dirName  

  public org.bouncycastle.asn1.x500.RDN[] getRDNs();
    descriptor: ()[Lorg/bouncycastle/asn1/x500/RDN;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
         0: .line 159
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            arraylength
            anewarray org.bouncycastle.asn1.x500.RDN
            astore 1 /* tmp */
        start local 1 // org.bouncycastle.asn1.x500.RDN[] tmp
         1: .line 161
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            iconst_0
            aload 1 /* tmp */
            iconst_0
            aload 1 /* tmp */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 163
            aload 1 /* tmp */
            areturn
        end local 1 // org.bouncycastle.asn1.x500.RDN[] tmp
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/asn1/x500/X500Name;
            1    3     1   tmp  [Lorg/bouncycastle/asn1/x500/RDN;

  public org.bouncycastle.asn1.ASN1ObjectIdentifier[] getAttributeTypes();
    descriptor: ()[Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
         0: .line 173
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 175
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 177
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            iload 2 /* i */
            aaload
            astore 3 /* rdn */
        start local 3 // org.bouncycastle.asn1.x500.RDN rdn
         4: .line 179
            iload 1 /* count */
            aload 3 /* rdn */
            invokevirtual org.bouncycastle.asn1.x500.RDN.size:()I
            iadd
            istore 1 /* count */
        end local 3 // org.bouncycastle.asn1.x500.RDN rdn
         5: .line 175
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            arraylength
            if_icmpne 3
        end local 2 // int i
         7: .line 182
            iload 1 /* count */
            anewarray org.bouncycastle.asn1.ASN1ObjectIdentifier
            astore 2 /* res */
        start local 2 // org.bouncycastle.asn1.ASN1ObjectIdentifier[] res
         8: .line 184
            iconst_0
            istore 1 /* count */
         9: .line 186
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        10: goto 23
        11: .line 188
      StackMap locals: org.bouncycastle.asn1.x500.X500Name int org.bouncycastle.asn1.ASN1ObjectIdentifier[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            iload 3 /* i */
            aaload
            astore 4 /* rdn */
        start local 4 // org.bouncycastle.asn1.x500.RDN rdn
        12: .line 190
            aload 4 /* rdn */
            invokevirtual org.bouncycastle.asn1.x500.RDN.isMultiValued:()Z
            ifeq 20
        13: .line 192
            aload 4 /* rdn */
            invokevirtual org.bouncycastle.asn1.x500.RDN.getTypesAndValues:()[Lorg/bouncycastle/asn1/x500/AttributeTypeAndValue;
            astore 5 /* attr */
        start local 5 // org.bouncycastle.asn1.x500.AttributeTypeAndValue[] attr
        14: .line 193
            iconst_0
            istore 6 /* j */
        start local 6 // int j
        15: goto 18
        16: .line 195
      StackMap locals: org.bouncycastle.asn1.x500.RDN org.bouncycastle.asn1.x500.AttributeTypeAndValue[] int
      StackMap stack:
            aload 2 /* res */
            iload 1 /* count */
            iinc 1 /* count */ 1
            aload 5 /* attr */
            iload 6 /* j */
            aaload
            invokevirtual org.bouncycastle.asn1.x500.AttributeTypeAndValue.getType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aastore
        17: .line 193
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* j */
            aload 5 /* attr */
            arraylength
            if_icmpne 16
        end local 6 // int j
        end local 5 // org.bouncycastle.asn1.x500.AttributeTypeAndValue[] attr
        19: .line 197
            goto 22
        20: .line 198
      StackMap locals:
      StackMap stack:
            aload 4 /* rdn */
            invokevirtual org.bouncycastle.asn1.x500.RDN.size:()I
            ifeq 22
        21: .line 200
            aload 2 /* res */
            iload 1 /* count */
            iinc 1 /* count */ 1
            aload 4 /* rdn */
            invokevirtual org.bouncycastle.asn1.x500.RDN.getFirst:()Lorg/bouncycastle/asn1/x500/AttributeTypeAndValue;
            invokevirtual org.bouncycastle.asn1.x500.AttributeTypeAndValue.getType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aastore
        end local 4 // org.bouncycastle.asn1.x500.RDN rdn
        22: .line 186
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 3 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            arraylength
            if_icmpne 11
        end local 3 // int i
        24: .line 204
            aload 2 /* res */
            areturn
        end local 2 // org.bouncycastle.asn1.ASN1ObjectIdentifier[] res
        end local 1 // int count
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   25     0   this  Lorg/bouncycastle/asn1/x500/X500Name;
            1   25     1  count  I
            2    7     2      i  I
            4    5     3    rdn  Lorg/bouncycastle/asn1/x500/RDN;
            8   25     2    res  [Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
           10   24     3      i  I
           12   22     4    rdn  Lorg/bouncycastle/asn1/x500/RDN;
           14   19     5   attr  [Lorg/bouncycastle/asn1/x500/AttributeTypeAndValue;
           15   19     6      j  I

  public org.bouncycastle.asn1.x500.RDN[] getRDNs(org.bouncycastle.asn1.ASN1ObjectIdentifier);
    descriptor: (Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;)[Lorg/bouncycastle/asn1/x500/RDN;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier attributeType
         0: .line 215
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            arraylength
            anewarray org.bouncycastle.asn1.x500.RDN
            astore 2 /* res */
        start local 2 // org.bouncycastle.asn1.x500.RDN[] res
         1: .line 216
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         2: .line 218
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 18
         4: .line 220
      StackMap locals: org.bouncycastle.asn1.x500.RDN[] int int
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            iload 4 /* i */
            aaload
            astore 5 /* rdn */
        start local 5 // org.bouncycastle.asn1.x500.RDN rdn
         5: .line 222
            aload 5 /* rdn */
            invokevirtual org.bouncycastle.asn1.x500.RDN.isMultiValued:()Z
            ifeq 15
         6: .line 224
            aload 5 /* rdn */
            invokevirtual org.bouncycastle.asn1.x500.RDN.getTypesAndValues:()[Lorg/bouncycastle/asn1/x500/AttributeTypeAndValue;
            astore 6 /* attr */
        start local 6 // org.bouncycastle.asn1.x500.AttributeTypeAndValue[] attr
         7: .line 225
            iconst_0
            istore 7 /* j */
        start local 7 // int j
         8: goto 13
         9: .line 227
      StackMap locals: org.bouncycastle.asn1.x500.RDN org.bouncycastle.asn1.x500.AttributeTypeAndValue[] int
      StackMap stack:
            aload 6 /* attr */
            iload 7 /* j */
            aaload
            invokevirtual org.bouncycastle.asn1.x500.AttributeTypeAndValue.getType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 1 /* attributeType */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 229
            aload 2 /* res */
            iload 3 /* count */
            iinc 3 /* count */ 1
            aload 5 /* rdn */
            aastore
        11: .line 230
            goto 17
        12: .line 225
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* j */
            aload 6 /* attr */
            arraylength
            if_icmpne 9
        end local 7 // int j
        end local 6 // org.bouncycastle.asn1.x500.AttributeTypeAndValue[] attr
        14: .line 233
            goto 17
        15: .line 236
      StackMap locals:
      StackMap stack:
            aload 5 /* rdn */
            invokevirtual org.bouncycastle.asn1.x500.RDN.getFirst:()Lorg/bouncycastle/asn1/x500/AttributeTypeAndValue;
            invokevirtual org.bouncycastle.asn1.x500.AttributeTypeAndValue.getType:()Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            aload 1 /* attributeType */
            invokevirtual org.bouncycastle.asn1.ASN1ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 238
            aload 2 /* res */
            iload 3 /* count */
            iinc 3 /* count */ 1
            aload 5 /* rdn */
            aastore
        end local 5 // org.bouncycastle.asn1.x500.RDN rdn
        17: .line 218
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 4 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            arraylength
            if_icmpne 4
        end local 4 // int i
        19: .line 243
            iload 3 /* count */
            anewarray org.bouncycastle.asn1.x500.RDN
            astore 4 /* tmp */
        start local 4 // org.bouncycastle.asn1.x500.RDN[] tmp
        20: .line 245
            aload 2 /* res */
            iconst_0
            aload 4 /* tmp */
            iconst_0
            aload 4 /* tmp */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        21: .line 247
            aload 4 /* tmp */
            areturn
        end local 4 // org.bouncycastle.asn1.x500.RDN[] tmp
        end local 3 // int count
        end local 2 // org.bouncycastle.asn1.x500.RDN[] res
        end local 1 // org.bouncycastle.asn1.ASN1ObjectIdentifier attributeType
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0           this  Lorg/bouncycastle/asn1/x500/X500Name;
            0   22     1  attributeType  Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;
            1   22     2            res  [Lorg/bouncycastle/asn1/x500/RDN;
            2   22     3          count  I
            3   19     4              i  I
            5   17     5            rdn  Lorg/bouncycastle/asn1/x500/RDN;
            7   14     6           attr  [Lorg/bouncycastle/asn1/x500/AttributeTypeAndValue;
            8   14     7              j  I
           20   22     4            tmp  [Lorg/bouncycastle/asn1/x500/RDN;
    MethodParameters:
               Name  Flags
      attributeType  

  private org.bouncycastle.asn1.x500.RDN[] copy(org.bouncycastle.asn1.x500.RDN[]);
    descriptor: ([Lorg/bouncycastle/asn1/x500/RDN;)[Lorg/bouncycastle/asn1/x500/RDN;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // org.bouncycastle.asn1.x500.RDN[] rdns
         0: .line 252
            aload 1 /* rdns */
            arraylength
            anewarray org.bouncycastle.asn1.x500.RDN
            astore 2 /* tmp */
        start local 2 // org.bouncycastle.asn1.x500.RDN[] tmp
         1: .line 254
            aload 1 /* rdns */
            iconst_0
            aload 2 /* tmp */
            iconst_0
            aload 2 /* tmp */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 256
            aload 2 /* tmp */
            areturn
        end local 2 // org.bouncycastle.asn1.x500.RDN[] tmp
        end local 1 // org.bouncycastle.asn1.x500.RDN[] rdns
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/asn1/x500/X500Name;
            0    3     1  rdns  [Lorg/bouncycastle/asn1/x500/RDN;
            1    3     2   tmp  [Lorg/bouncycastle/asn1/x500/RDN;
    MethodParameters:
      Name  Flags
      rdns  

  public org.bouncycastle.asn1.ASN1Primitive toASN1Primitive();
    descriptor: ()Lorg/bouncycastle/asn1/ASN1Primitive;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
         0: .line 261
            new org.bouncycastle.asn1.DERSequence
            dup
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.rdns:[Lorg/bouncycastle/asn1/x500/RDN;
            invokespecial org.bouncycastle.asn1.DERSequence.<init>:([Lorg/bouncycastle/asn1/ASN1Encodable;)V
            areturn
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/asn1/x500/X500Name;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
         0: .line 266
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.isHashCodeCalculated:Z
            ifeq 2
         1: .line 268
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.hashCodeValue:I
            ireturn
         2: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.bouncycastle.asn1.x500.X500Name.isHashCodeCalculated:Z
         3: .line 273
            aload 0 /* this */
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.style:Lorg/bouncycastle/asn1/x500/X500NameStyle;
            aload 0 /* this */
            invokeinterface org.bouncycastle.asn1.x500.X500NameStyle.calculateHashCode:(Lorg/bouncycastle/asn1/x500/X500Name;)I
            putfield org.bouncycastle.asn1.x500.X500Name.hashCodeValue:I
         4: .line 275
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.hashCodeValue:I
            ireturn
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bouncycastle/asn1/x500/X500Name;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
        start local 1 // java.lang.Object obj
         0: .line 283
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 285
            iconst_1
            ireturn
         2: .line 288
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.bouncycastle.asn1.x500.X500Name
            ifne 4
            aload 1 /* obj */
            instanceof org.bouncycastle.asn1.ASN1Sequence
            ifne 4
         3: .line 290
            iconst_0
            ireturn
         4: .line 293
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.bouncycastle.asn1.ASN1Encodable
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            astore 2 /* derO */
        start local 2 // org.bouncycastle.asn1.ASN1Primitive derO
         5: .line 295
            aload 0 /* this */
            invokevirtual org.bouncycastle.asn1.x500.X500Name.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            aload 2 /* derO */
            invokevirtual org.bouncycastle.asn1.ASN1Primitive.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 297
            iconst_1
            ireturn
         7: .line 302
      StackMap locals: org.bouncycastle.asn1.ASN1Primitive
      StackMap stack:
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.style:Lorg/bouncycastle/asn1/x500/X500NameStyle;
            aload 0 /* this */
            new org.bouncycastle.asn1.x500.X500Name
            dup
            aload 1 /* obj */
            checkcast org.bouncycastle.asn1.ASN1Encodable
            invokeinterface org.bouncycastle.asn1.ASN1Encodable.toASN1Primitive:()Lorg/bouncycastle/asn1/ASN1Primitive;
            invokestatic org.bouncycastle.asn1.ASN1Sequence.getInstance:(Ljava/lang/Object;)Lorg/bouncycastle/asn1/ASN1Sequence;
            invokespecial org.bouncycastle.asn1.x500.X500Name.<init>:(Lorg/bouncycastle/asn1/ASN1Sequence;)V
            invokeinterface org.bouncycastle.asn1.x500.X500NameStyle.areEqual:(Lorg/bouncycastle/asn1/x500/X500Name;Lorg/bouncycastle/asn1/x500/X500Name;)Z
         8: ireturn
         9: .line 304
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        10: .line 306
            iconst_0
            ireturn
        end local 2 // org.bouncycastle.asn1.ASN1Primitive derO
        end local 1 // java.lang.Object obj
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/bouncycastle/asn1/x500/X500Name;
            0   11     1   obj  Ljava/lang/Object;
            5   11     2  derO  Lorg/bouncycastle/asn1/ASN1Primitive;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bouncycastle.asn1.x500.X500Name this
         0: .line 312
            aload 0 /* this */
            getfield org.bouncycastle.asn1.x500.X500Name.style:Lorg/bouncycastle/asn1/x500/X500NameStyle;
            aload 0 /* this */
            invokeinterface org.bouncycastle.asn1.x500.X500NameStyle.toString:(Lorg/bouncycastle/asn1/x500/X500Name;)Ljava/lang/String;
            areturn
        end local 0 // org.bouncycastle.asn1.x500.X500Name this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bouncycastle/asn1/x500/X500Name;

  public static void setDefaultStyle(org.bouncycastle.asn1.x500.X500NameStyle);
    descriptor: (Lorg/bouncycastle/asn1/x500/X500NameStyle;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bouncycastle.asn1.x500.X500NameStyle style
         0: .line 322
            aload 0 /* style */
            ifnonnull 2
         1: .line 324
            new java.lang.NullPointerException
            dup
            ldc "cannot set style to null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 327
      StackMap locals:
      StackMap stack:
            aload 0 /* style */
            putstatic org.bouncycastle.asn1.x500.X500Name.defaultStyle:Lorg/bouncycastle/asn1/x500/X500NameStyle;
         3: .line 328
            return
        end local 0 // org.bouncycastle.asn1.x500.X500NameStyle style
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  style  Lorg/bouncycastle/asn1/x500/X500NameStyle;
    MethodParameters:
       Name  Flags
      style  

  public static org.bouncycastle.asn1.x500.X500NameStyle getDefaultStyle();
    descriptor: ()Lorg/bouncycastle/asn1/x500/X500NameStyle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 337
            getstatic org.bouncycastle.asn1.x500.X500Name.defaultStyle:Lorg/bouncycastle/asn1/x500/X500NameStyle;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "X500Name.java"