class sun.security.provider.certpath.ForwardBuilder extends sun.security.provider.certpath.Builder
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.security.provider.certpath.ForwardBuilder
  super_class: sun.security.provider.certpath.Builder
{
  private static final sun.security.util.Debug debug;
    descriptor: Lsun/security/util/Debug;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.util.Set<java.security.cert.X509Certificate> trustedCerts;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/security/cert/X509Certificate;>;

  private final java.util.Set<javax.security.auth.x500.X500Principal> trustedSubjectDNs;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljavax/security/auth/x500/X500Principal;>;

  private final java.util.Set<java.security.cert.TrustAnchor> trustAnchors;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/security/cert/TrustAnchor;>;

  private java.security.cert.X509CertSelector eeSelector;
    descriptor: Ljava/security/cert/X509CertSelector;
    flags: (0x0002) ACC_PRIVATE

  private sun.security.provider.certpath.AdaptableX509CertSelector caSelector;
    descriptor: Lsun/security/provider/certpath/AdaptableX509CertSelector;
    flags: (0x0002) ACC_PRIVATE

  private java.security.cert.X509CertSelector caTargetSelector;
    descriptor: Ljava/security/cert/X509CertSelector;
    flags: (0x0002) ACC_PRIVATE

  java.security.cert.TrustAnchor trustAnchor;
    descriptor: Ljava/security/cert/TrustAnchor;
    flags: (0x0000) 

  private java.util.Comparator<java.security.cert.X509Certificate> comparator;
    descriptor: Ljava/util/Comparator;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Comparator<Ljava/security/cert/X509Certificate;>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 64
            ldc "certpath"
            invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
            putstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(sun.security.provider.certpath.PKIX$BuilderParams, boolean);
    descriptor: (Lsun/security/provider/certpath/PKIX$BuilderParams;Z)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // sun.security.provider.certpath.PKIX$BuilderParams buildParams
        start local 2 // boolean searchAllCertStores
         0: .line 81
            aload 0 /* this */
            aload 1 /* buildParams */
            invokespecial sun.security.provider.certpath.Builder.<init>:(Lsun/security/provider/certpath/PKIX$BuilderParams;)V
         1: .line 73
            aload 0 /* this */
            iconst_1
            putfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
         2: .line 84
            aload 0 /* this */
            aload 1 /* buildParams */
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.trustAnchors:()Ljava/util/Set;
            putfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
         3: .line 85
            aload 0 /* this */
            new java.util.HashSet
            dup
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokespecial java.util.HashSet.<init>:(I)V
            putfield sun.security.provider.certpath.ForwardBuilder.trustedCerts:Ljava/util/Set;
         4: .line 86
            aload 0 /* this */
            new java.util.HashSet
            dup
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            invokespecial java.util.HashSet.<init>:(I)V
            putfield sun.security.provider.certpath.ForwardBuilder.trustedSubjectDNs:Ljava/util/Set;
         5: .line 87
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.PKIX$BuilderParams int top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.TrustAnchor
            astore 3 /* anchor */
        start local 3 // java.security.cert.TrustAnchor anchor
         7: .line 88
            aload 3 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
            astore 5 /* trustedCert */
        start local 5 // java.security.cert.X509Certificate trustedCert
         8: .line 89
            aload 5 /* trustedCert */
            ifnull 12
         9: .line 90
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustedCerts:Ljava/util/Set;
            aload 5 /* trustedCert */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 91
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustedSubjectDNs:Ljava/util/Set;
            aload 5 /* trustedCert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 92
            goto 13
        12: .line 93
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.PKIX$BuilderParams int java.security.cert.TrustAnchor java.util.Iterator java.security.cert.X509Certificate
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustedSubjectDNs:Ljava/util/Set;
            aload 3 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getCA:()Ljavax/security/auth/x500/X500Principal;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.security.cert.X509Certificate trustedCert
        end local 3 // java.security.cert.TrustAnchor anchor
        13: .line 87
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.PKIX$BuilderParams int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        14: .line 96
            aload 0 /* this */
            new sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator
            dup
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustedSubjectDNs:Ljava/util/Set;
            invokespecial sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.<init>:(Ljava/util/Set;)V
            putfield sun.security.provider.certpath.ForwardBuilder.comparator:Ljava/util/Comparator;
        15: .line 97
            aload 0 /* this */
            iload 2 /* searchAllCertStores */
            putfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
        16: .line 98
            return
        end local 2 // boolean searchAllCertStores
        end local 1 // sun.security.provider.certpath.PKIX$BuilderParams buildParams
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   17     0                 this  Lsun/security/provider/certpath/ForwardBuilder;
            0   17     1          buildParams  Lsun/security/provider/certpath/PKIX$BuilderParams;
            0   17     2  searchAllCertStores  Z
            7   13     3               anchor  Ljava/security/cert/TrustAnchor;
            8   13     5          trustedCert  Ljava/security/cert/X509Certificate;
    MethodParameters:
                     Name  Flags
      buildParams          
      searchAllCertStores  

  java.util.Collection<java.security.cert.X509Certificate> getMatchingCerts(sun.security.provider.certpath.State, java.util.List<java.security.cert.CertStore>);
    descriptor: (Lsun/security/provider/certpath/State;Ljava/util/List;)Ljava/util/Collection;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // sun.security.provider.certpath.State currentState
        start local 2 // java.util.List certStores
         0: .line 114
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 115
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "ForwardBuilder.getMatchingCerts()..."
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         2: .line 118
      StackMap locals:
      StackMap stack:
            aload 1 /* currentState */
            checkcast sun.security.provider.certpath.ForwardState
            astore 3 /* currState */
        start local 3 // sun.security.provider.certpath.ForwardState currState
         3: .line 125
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.comparator:Ljava/util/Comparator;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
            astore 4 /* certs */
        start local 4 // java.util.Set certs
         4: .line 130
            aload 3 /* currState */
            invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
            ifeq 6
         5: .line 131
            aload 0 /* this */
            aload 3 /* currState */
            aload 2 /* certStores */
            aload 4 /* certs */
            invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingEECerts:(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
         6: .line 133
      StackMap locals: sun.security.provider.certpath.ForwardState java.util.Set
      StackMap stack:
            aload 0 /* this */
            aload 3 /* currState */
            aload 2 /* certStores */
            aload 4 /* certs */
            invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingCACerts:(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
         7: .line 135
            aload 4 /* certs */
            areturn
        end local 4 // java.util.Set certs
        end local 3 // sun.security.provider.certpath.ForwardState currState
        end local 2 // java.util.List certStores
        end local 1 // sun.security.provider.certpath.State currentState
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lsun/security/provider/certpath/ForwardBuilder;
            0    8     1  currentState  Lsun/security/provider/certpath/State;
            0    8     2    certStores  Ljava/util/List<Ljava/security/cert/CertStore;>;
            3    8     3     currState  Lsun/security/provider/certpath/ForwardState;
            4    8     4         certs  Ljava/util/Set<Ljava/security/cert/X509Certificate;>;
    Exceptions:
      throws java.security.cert.CertStoreException, java.security.cert.CertificateException, java.io.IOException
    Signature: (Lsun/security/provider/certpath/State;Ljava/util/List<Ljava/security/cert/CertStore;>;)Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
    MethodParameters:
              Name  Flags
      currentState  
      certStores    

  private void getMatchingEECerts(sun.security.provider.certpath.ForwardState, java.util.List<java.security.cert.CertStore>, java.util.Collection<java.security.cert.X509Certificate>);
    descriptor: (Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // sun.security.provider.certpath.ForwardState currentState
        start local 2 // java.util.List certStores
        start local 3 // java.util.Collection eeCerts
         0: .line 147
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 148
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "ForwardBuilder.getMatchingEECerts()..."
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         2: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
            ifnonnull 8
         3: .line 159
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
            invokevirtual java.security.cert.X509CertSelector.clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509CertSelector
            putfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
         4: .line 164
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.date:()Ljava/util/Date;
            invokevirtual java.security.cert.X509CertSelector.setCertificateValid:(Ljava/util/Date;)V
         5: .line 169
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.explicitPolicyRequired:()Z
            ifeq 7
         6: .line 170
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
            aload 0 /* this */
            invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingPolicies:()Ljava/util/Set;
            invokevirtual java.security.cert.X509CertSelector.setPolicy:(Ljava/util/Set;)V
         7: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
            bipush -2
            invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
         8: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
            aload 2 /* certStores */
            aload 3 /* eeCerts */
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
            invokevirtual sun.security.provider.certpath.ForwardBuilder.addMatchingCerts:(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
            pop
         9: .line 180
            return
        end local 3 // java.util.Collection eeCerts
        end local 2 // java.util.List certStores
        end local 1 // sun.security.provider.certpath.ForwardState currentState
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lsun/security/provider/certpath/ForwardBuilder;
            0   10     1  currentState  Lsun/security/provider/certpath/ForwardState;
            0   10     2    certStores  Ljava/util/List<Ljava/security/cert/CertStore;>;
            0   10     3       eeCerts  Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Lsun/security/provider/certpath/ForwardState;Ljava/util/List<Ljava/security/cert/CertStore;>;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;)V
    MethodParameters:
              Name  Flags
      currentState  
      certStores    
      eeCerts       

  private void getMatchingCACerts(sun.security.provider.certpath.ForwardState, java.util.List<java.security.cert.CertStore>, java.util.Collection<java.security.cert.X509Certificate>);
    descriptor: (Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // sun.security.provider.certpath.ForwardState currentState
        start local 2 // java.util.List certStores
        start local 3 // java.util.Collection caCerts
         0: .line 191
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 192
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "ForwardBuilder.getMatchingCACerts()..."
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         2: .line 194
      StackMap locals:
      StackMap stack:
            aload 3 /* caCerts */
            invokeinterface java.util.Collection.size:()I
            istore 4 /* initialSize */
        start local 4 // int initialSize
         3: .line 200
            aconst_null
            astore 5 /* sel */
        start local 5 // java.security.cert.X509CertSelector sel
         4: .line 202
            aload 1 /* currentState */
            invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
            ifeq 17
         5: .line 203
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
            invokevirtual java.security.cert.X509CertSelector.getBasicConstraints:()I
            bipush -2
            if_icmpne 7
         6: .line 205
            return
         7: .line 211
      StackMap locals: int java.security.cert.X509CertSelector
      StackMap stack:
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 9
         8: .line 212
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "ForwardBuilder.getMatchingCACerts(): ca is target"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         9: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
            ifnonnull 15
        10: .line 216
            aload 0 /* this */
        11: .line 217
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.targetCertConstraints:Ljava/security/cert/X509CertSelector;
            invokevirtual java.security.cert.X509CertSelector.clone:()Ljava/lang/Object;
            checkcast java.security.cert.X509CertSelector
        12: .line 216
            putfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
        13: .line 229
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.explicitPolicyRequired:()Z
            ifeq 15
        14: .line 230
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
            aload 0 /* this */
            invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingPolicies:()Ljava/util/Set;
            invokevirtual java.security.cert.X509CertSelector.setPolicy:(Ljava/util/Set;)V
        15: .line 233
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
            astore 5 /* sel */
        16: .line 234
            goto 31
        17: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            ifnonnull 21
        18: .line 237
            aload 0 /* this */
            new sun.security.provider.certpath.AdaptableX509CertSelector
            dup
            invokespecial sun.security.provider.certpath.AdaptableX509CertSelector.<init>:()V
            putfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
        19: .line 249
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.explicitPolicyRequired:()Z
            ifeq 21
        20: .line 250
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            aload 0 /* this */
            invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingPolicies:()Ljava/util/Set;
            invokevirtual sun.security.provider.certpath.AdaptableX509CertSelector.setPolicy:(Ljava/util/Set;)V
        21: .line 256
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.issuerDN:Ljavax/security/auth/x500/X500Principal;
            invokevirtual sun.security.provider.certpath.AdaptableX509CertSelector.setSubject:(Ljavax/security/auth/x500/X500Principal;)V
        22: .line 264
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.subjectNamesTraversed:Ljava/util/HashSet;
        23: .line 263
            invokestatic sun.security.provider.certpath.CertPathHelper.setPathToNames:(Ljava/security/cert/X509CertSelector;Ljava/util/Set;)V
        24: .line 271
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
            invokevirtual sun.security.x509.X509CertImpl.getAuthorityKeyIdentifierExtension:()Lsun/security/x509/AuthorityKeyIdentifierExtension;
        25: .line 270
            astore 6 /* akidext */
        start local 6 // sun.security.x509.AuthorityKeyIdentifierExtension akidext
        26: .line 272
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            aload 6 /* akidext */
            invokevirtual sun.security.provider.certpath.AdaptableX509CertSelector.parseAuthorityKeyIdentifierExtension:(Lsun/security/x509/AuthorityKeyIdentifierExtension;)V
        27: .line 277
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
            invokevirtual sun.security.x509.X509CertImpl.getNotBefore:()Ljava/util/Date;
        28: .line 278
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
            invokevirtual sun.security.x509.X509CertImpl.getNotAfter:()Ljava/util/Date;
        29: .line 277
            invokevirtual sun.security.provider.certpath.AdaptableX509CertSelector.setValidityPeriod:(Ljava/util/Date;Ljava/util/Date;)V
        30: .line 280
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            astore 5 /* sel */
        end local 6 // sun.security.x509.AuthorityKeyIdentifierExtension akidext
        31: .line 289
      StackMap locals:
      StackMap stack:
            aload 5 /* sel */
            iconst_m1
            invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
        32: .line 291
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustedCerts:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 39
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.ForwardState java.util.List java.util.Collection int java.security.cert.X509CertSelector top java.util.Iterator
      StackMap stack:
        33: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 6 /* trustedCert */
        start local 6 // java.security.cert.X509Certificate trustedCert
        34: .line 292
            aload 5 /* sel */
            aload 6 /* trustedCert */
            invokevirtual java.security.cert.X509CertSelector.match:(Ljava/security/cert/Certificate;)Z
            ifeq 39
        35: .line 293
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 37
        36: .line 294
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "ForwardBuilder.getMatchingCACerts: found matching trust anchor"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        37: .line 297
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.ForwardState java.util.List java.util.Collection int java.security.cert.X509CertSelector java.security.cert.X509Certificate java.util.Iterator
      StackMap stack:
            aload 3 /* caCerts */
            aload 6 /* trustedCert */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            ifeq 39
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
            ifne 39
        38: .line 298
            return
        end local 6 // java.security.cert.X509Certificate trustedCert
        39: .line 291
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.ForwardState java.util.List java.util.Collection int java.security.cert.X509CertSelector top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        40: .line 307
            aload 5 /* sel */
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.date:()Ljava/util/Date;
            invokevirtual java.security.cert.X509CertSelector.setCertificateValid:(Ljava/util/Date;)V
        41: .line 313
            aload 5 /* sel */
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.traversedCACerts:I
            invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
        42: .line 322
            aload 1 /* currentState */
            invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
            ifne 45
        43: .line 323
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.maxPathLength:()I
            iconst_m1
            if_icmpeq 45
        44: .line 324
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.maxPathLength:()I
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.traversedCACerts:I
            if_icmple 51
        45: .line 326
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.provider.certpath.ForwardState java.util.List java.util.Collection int java.security.cert.X509CertSelector
      StackMap stack:
            aload 0 /* this */
            aload 5 /* sel */
            aload 2 /* certStores */
        46: .line 327
            aload 3 /* caCerts */
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
        47: .line 326
            invokevirtual sun.security.provider.certpath.ForwardBuilder.addMatchingCerts:(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
        48: .line 327
            ifeq 51
        49: .line 328
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
            ifne 51
        50: .line 329
            return
        51: .line 333
      StackMap locals:
      StackMap stack:
            aload 1 /* currentState */
            invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
            ifne 56
            getstatic sun.security.provider.certpath.Builder.USE_AIA:Z
            ifeq 56
        52: .line 336
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
            invokevirtual sun.security.x509.X509CertImpl.getAuthorityInfoAccessExtension:()Lsun/security/x509/AuthorityInfoAccessExtension;
        53: .line 335
            astore 6 /* aiaExt */
        start local 6 // sun.security.x509.AuthorityInfoAccessExtension aiaExt
        54: .line 337
            aload 6 /* aiaExt */
            ifnull 56
        55: .line 338
            aload 0 /* this */
            aload 6 /* aiaExt */
            aload 3 /* caCerts */
            invokevirtual sun.security.provider.certpath.ForwardBuilder.getCerts:(Lsun/security/x509/AuthorityInfoAccessExtension;Ljava/util/Collection;)Z
            pop
        end local 6 // sun.security.x509.AuthorityInfoAccessExtension aiaExt
        56: .line 342
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 61
        57: .line 343
            aload 3 /* caCerts */
            invokeinterface java.util.Collection.size:()I
            iload 4 /* initialSize */
            isub
            istore 6 /* numCerts */
        start local 6 // int numCerts
        58: .line 344
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "ForwardBuilder.getMatchingCACerts: found "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        59: .line 345
            iload 6 /* numCerts */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " CA certs"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        60: .line 344
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 6 // int numCerts
        61: .line 347
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.security.cert.X509CertSelector sel
        end local 4 // int initialSize
        end local 3 // java.util.Collection caCerts
        end local 2 // java.util.List certStores
        end local 1 // sun.security.provider.certpath.ForwardState currentState
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   62     0          this  Lsun/security/provider/certpath/ForwardBuilder;
            0   62     1  currentState  Lsun/security/provider/certpath/ForwardState;
            0   62     2    certStores  Ljava/util/List<Ljava/security/cert/CertStore;>;
            0   62     3       caCerts  Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
            3   62     4   initialSize  I
            4   62     5           sel  Ljava/security/cert/X509CertSelector;
           26   31     6       akidext  Lsun/security/x509/AuthorityKeyIdentifierExtension;
           34   39     6   trustedCert  Ljava/security/cert/X509Certificate;
           54   56     6        aiaExt  Lsun/security/x509/AuthorityInfoAccessExtension;
           58   61     6      numCerts  I
    Exceptions:
      throws java.io.IOException
    Signature: (Lsun/security/provider/certpath/ForwardState;Ljava/util/List<Ljava/security/cert/CertStore;>;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;)V
    MethodParameters:
              Name  Flags
      currentState  
      certStores    
      caCerts       

  private boolean getCerts(sun.security.x509.AuthorityInfoAccessExtension, java.util.Collection<java.security.cert.X509Certificate>);
    descriptor: (Lsun/security/x509/AuthorityInfoAccessExtension;Ljava/util/Collection;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // sun.security.x509.AuthorityInfoAccessExtension aiaExt
        start local 2 // java.util.Collection certs
         0: .line 359
            getstatic sun.security.provider.certpath.Builder.USE_AIA:Z
            ifne 2
         1: .line 360
            iconst_0
            ireturn
         2: .line 362
      StackMap locals:
      StackMap stack:
            aload 1 /* aiaExt */
            invokevirtual sun.security.x509.AuthorityInfoAccessExtension.getAccessDescriptions:()Ljava/util/List;
            astore 3 /* adList */
        start local 3 // java.util.List adList
         3: .line 363
            aload 3 /* adList */
            ifnull 4
            aload 3 /* adList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 5
         4: .line 364
      StackMap locals: java.util.List
      StackMap stack:
            iconst_0
            ireturn
         5: .line 367
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* add */
        start local 4 // boolean add
         6: .line 368
            aload 3 /* adList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 21
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.x509.AuthorityInfoAccessExtension java.util.Collection java.util.List int top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.x509.AccessDescription
            astore 5 /* ad */
        start local 5 // sun.security.x509.AccessDescription ad
         8: .line 369
            aload 5 /* ad */
            invokestatic sun.security.provider.certpath.URICertStore.getInstance:(Lsun/security/x509/AccessDescription;)Ljava/security/cert/CertStore;
            astore 7 /* cs */
        start local 7 // java.security.cert.CertStore cs
         9: .line 370
            aload 7 /* cs */
            ifnull 21
        10: .line 372
            aload 2 /* certs */
        11: .line 373
            aload 7 /* cs */
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            invokevirtual java.security.cert.CertStore.getCertificates:(Ljava/security/cert/CertSelector;)Ljava/util/Collection;
        12: .line 372
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
        13: .line 373
            ifeq 21
        14: .line 374
            iconst_1
            istore 4 /* add */
        15: .line 375
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
            ifne 21
        16: .line 376
            iconst_1
            ireturn
        17: .line 379
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.x509.AuthorityInfoAccessExtension java.util.Collection java.util.List int sun.security.x509.AccessDescription java.util.Iterator java.security.cert.CertStore
      StackMap stack: java.security.cert.CertStoreException
            astore 8 /* cse */
        start local 8 // java.security.cert.CertStoreException cse
        18: .line 380
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 21
        19: .line 381
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "exception getting certs from CertStore:"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        20: .line 382
            aload 8 /* cse */
            invokevirtual java.security.cert.CertStoreException.printStackTrace:()V
        end local 8 // java.security.cert.CertStoreException cse
        end local 7 // java.security.cert.CertStore cs
        end local 5 // sun.security.x509.AccessDescription ad
        21: .line 368
      StackMap locals: sun.security.provider.certpath.ForwardBuilder sun.security.x509.AuthorityInfoAccessExtension java.util.Collection java.util.List int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        22: .line 388
            iload 4 /* add */
            ireturn
        end local 4 // boolean add
        end local 3 // java.util.List adList
        end local 2 // java.util.Collection certs
        end local 1 // sun.security.x509.AuthorityInfoAccessExtension aiaExt
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Lsun/security/provider/certpath/ForwardBuilder;
            0   23     1  aiaExt  Lsun/security/x509/AuthorityInfoAccessExtension;
            0   23     2   certs  Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
            3   23     3  adList  Ljava/util/List<Lsun/security/x509/AccessDescription;>;
            6   23     4     add  Z
            8   21     5      ad  Lsun/security/x509/AccessDescription;
            9   21     7      cs  Ljava/security/cert/CertStore;
           18   21     8     cse  Ljava/security/cert/CertStoreException;
      Exception table:
        from    to  target  type
          10    16      17  Class java.security.cert.CertStoreException
    Signature: (Lsun/security/x509/AuthorityInfoAccessExtension;Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;)Z
    MethodParameters:
        Name  Flags
      aiaExt  
      certs   

  void verifyCert(java.security.cert.X509Certificate, sun.security.provider.certpath.State, java.util.List<java.security.cert.X509Certificate>);
    descriptor: (Ljava/security/cert/X509Certificate;Lsun/security/provider/certpath/State;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=10, args_size=4
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // java.security.cert.X509Certificate cert
        start local 2 // sun.security.provider.certpath.State currentState
        start local 3 // java.util.List certPathList
         0: .line 661
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 6
         1: .line 662
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "ForwardBuilder.verifyCert(SN: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 663
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSerialNumber:()Ljava/math/BigInteger;
            invokestatic sun.security.util.Debug.toHexString:(Ljava/math/BigInteger;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 664
            ldc "\n  Issuer: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 665
            ldc "\n  Subject: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 662
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         6: .line 668
      StackMap locals:
      StackMap stack:
            aload 2 /* currentState */
            checkcast sun.security.provider.certpath.ForwardState
            astore 4 /* currState */
        start local 4 // sun.security.provider.certpath.ForwardState currState
         7: .line 671
            aload 4 /* currState */
            getfield sun.security.provider.certpath.ForwardState.untrustedChecker:Lsun/security/provider/certpath/UntrustedChecker;
            aload 1 /* cert */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            invokevirtual sun.security.provider.certpath.UntrustedChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
         8: .line 677
            aload 3 /* certPathList */
            ifnull 16
         9: .line 678
            aload 3 /* certPathList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState top java.util.Iterator
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            astore 5 /* cpListCert */
        start local 5 // java.security.cert.X509Certificate cpListCert
        11: .line 679
            aload 1 /* cert */
            aload 5 /* cpListCert */
            invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 15
        12: .line 680
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 14
        13: .line 681
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "loop detected!!"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        14: .line 683
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState java.security.cert.X509Certificate java.util.Iterator
      StackMap stack:
            new java.security.cert.CertPathValidatorException
            dup
            ldc "loop detected"
            invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.security.cert.X509Certificate cpListCert
        15: .line 678
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        16: .line 689
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustedCerts:Ljava/util/Set;
            aload 1 /* cert */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            istore 5 /* isTrustedCert */
        start local 5 // boolean isTrustedCert
        17: .line 692
            iload 5 /* isTrustedCert */
            ifne 47
        18: .line 698
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
            astore 6 /* unresCritExts */
        start local 6 // java.util.Set unresCritExts
        19: .line 699
            aload 6 /* unresCritExts */
            ifnonnull 21
        20: .line 700
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            astore 6 /* unresCritExts */
        21: .line 702
      StackMap locals: int java.util.Set
      StackMap stack:
            aload 4 /* currState */
            getfield sun.security.provider.certpath.ForwardState.forwardCheckers:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 8
            goto 24
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState int java.util.Set top java.util.Iterator
      StackMap stack:
        22: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.PKIXCertPathChecker
            astore 7 /* checker */
        start local 7 // java.security.cert.PKIXCertPathChecker checker
        23: .line 703
            aload 7 /* checker */
            aload 1 /* cert */
            aload 6 /* unresCritExts */
            invokevirtual java.security.cert.PKIXCertPathChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
        end local 7 // java.security.cert.PKIXCertPathChecker checker
        24: .line 702
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        25: .line 712
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.certPathCheckers:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 31
      StackMap locals:
      StackMap stack:
        26: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.PKIXCertPathChecker
            astore 7 /* checker */
        start local 7 // java.security.cert.PKIXCertPathChecker checker
        27: .line 713
            aload 7 /* checker */
            invokevirtual java.security.cert.PKIXCertPathChecker.isForwardCheckingSupported:()Z
            ifne 31
        28: .line 714
            aload 7 /* checker */
            invokevirtual java.security.cert.PKIXCertPathChecker.getSupportedExtensions:()Ljava/util/Set;
            astore 9 /* supportedExts */
        start local 9 // java.util.Set supportedExts
        29: .line 715
            aload 9 /* supportedExts */
            ifnull 31
        30: .line 716
            aload 6 /* unresCritExts */
            aload 9 /* supportedExts */
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
        end local 9 // java.util.Set supportedExts
        end local 7 // java.security.cert.PKIXCertPathChecker checker
        31: .line 712
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        32: .line 725
            aload 6 /* unresCritExts */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 47
        33: .line 726
            aload 6 /* unresCritExts */
            getstatic sun.security.x509.PKIXExtensions.BasicConstraints_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        34: .line 727
            aload 6 /* unresCritExts */
            getstatic sun.security.x509.PKIXExtensions.NameConstraints_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        35: .line 728
            aload 6 /* unresCritExts */
            getstatic sun.security.x509.PKIXExtensions.CertificatePolicies_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        36: .line 729
            aload 6 /* unresCritExts */
            getstatic sun.security.x509.PKIXExtensions.PolicyMappings_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        37: .line 730
            aload 6 /* unresCritExts */
            getstatic sun.security.x509.PKIXExtensions.PolicyConstraints_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        38: .line 731
            aload 6 /* unresCritExts */
            getstatic sun.security.x509.PKIXExtensions.InhibitAnyPolicy_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        39: .line 732
            aload 6 /* unresCritExts */
            getstatic sun.security.x509.PKIXExtensions.SubjectAlternativeName_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        40: .line 733
            aload 6 /* unresCritExts */
            getstatic sun.security.x509.PKIXExtensions.KeyUsage_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        41: .line 734
            aload 6 /* unresCritExts */
            getstatic sun.security.x509.PKIXExtensions.ExtendedKeyUsage_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.toString:()Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        42: .line 736
            aload 6 /* unresCritExts */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 47
        43: .line 737
            new java.security.cert.CertPathValidatorException
            dup
        44: .line 738
            ldc "Unrecognized critical extension(s)"
            aconst_null
            aconst_null
            iconst_m1
        45: .line 739
            getstatic java.security.cert.PKIXReason.UNRECOGNIZED_CRIT_EXT:Ljava/security/cert/PKIXReason;
        46: .line 737
            invokespecial java.security.cert.CertPathValidatorException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;ILjava/security/cert/CertPathValidatorException$Reason;)V
            athrow
        end local 6 // java.util.Set unresCritExts
        47: .line 747
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate sun.security.provider.certpath.State java.util.List sun.security.provider.certpath.ForwardState int
      StackMap stack:
            aload 4 /* currState */
            invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
            ifeq 49
        48: .line 748
            return
        49: .line 752
      StackMap locals:
      StackMap stack:
            iload 5 /* isTrustedCert */
            ifne 53
        50: .line 754
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getBasicConstraints:()I
            iconst_m1
            if_icmpne 52
        51: .line 755
            new java.security.cert.CertificateException
            dup
            ldc "cert is NOT a CA cert"
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
        52: .line 761
      StackMap locals:
      StackMap stack:
            aload 1 /* cert */
            invokestatic sun.security.provider.certpath.KeyChecker.verifyCAKeyUsage:(Ljava/security/cert/X509Certificate;)V
        53: .line 775
      StackMap locals:
      StackMap stack:
            aload 4 /* currState */
            invokevirtual sun.security.provider.certpath.ForwardState.keyParamsNeeded:()Z
            ifne 57
        54: .line 776
            aload 4 /* currState */
            getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
        55: .line 777
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.sigProvider:()Ljava/lang/String;
        56: .line 776
            invokevirtual sun.security.x509.X509CertImpl.verify:(Ljava/security/PublicKey;Ljava/lang/String;)V
        57: .line 779
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean isTrustedCert
        end local 4 // sun.security.provider.certpath.ForwardState currState
        end local 3 // java.util.List certPathList
        end local 2 // sun.security.provider.certpath.State currentState
        end local 1 // java.security.cert.X509Certificate cert
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   58     0           this  Lsun/security/provider/certpath/ForwardBuilder;
            0   58     1           cert  Ljava/security/cert/X509Certificate;
            0   58     2   currentState  Lsun/security/provider/certpath/State;
            0   58     3   certPathList  Ljava/util/List<Ljava/security/cert/X509Certificate;>;
            7   58     4      currState  Lsun/security/provider/certpath/ForwardState;
           11   15     5     cpListCert  Ljava/security/cert/X509Certificate;
           17   58     5  isTrustedCert  Z
           19   47     6  unresCritExts  Ljava/util/Set<Ljava/lang/String;>;
           23   24     7        checker  Ljava/security/cert/PKIXCertPathChecker;
           27   31     7        checker  Ljava/security/cert/PKIXCertPathChecker;
           29   31     9  supportedExts  Ljava/util/Set<Ljava/lang/String;>;
    Exceptions:
      throws java.security.GeneralSecurityException
    Signature: (Ljava/security/cert/X509Certificate;Lsun/security/provider/certpath/State;Ljava/util/List<Ljava/security/cert/X509Certificate;>;)V
    MethodParameters:
              Name  Flags
      cert          
      currentState  
      certPathList  

  boolean isPathCompleted(java.security.cert.X509Certificate);
    descriptor: (Ljava/security/cert/X509Certificate;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // java.security.cert.X509Certificate cert
         0: .line 795
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 31
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.security.cert.TrustAnchor
            astore 2 /* anchor */
        start local 2 // java.security.cert.TrustAnchor anchor
         2: .line 796
            aload 2 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
            ifnull 6
         3: .line 797
            aload 1 /* cert */
            aload 2 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
            invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 31
         4: .line 798
            aload 0 /* this */
            aload 2 /* anchor */
            putfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
         5: .line 799
            iconst_1
            ireturn
         6: .line 804
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.security.cert.TrustAnchor java.util.Iterator
      StackMap stack:
            aload 2 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getCA:()Ljavax/security/auth/x500/X500Principal;
            astore 4 /* principal */
        start local 4 // javax.security.auth.x500.X500Principal principal
         7: .line 805
            aload 2 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
            astore 5 /* publicKey */
        start local 5 // java.security.PublicKey publicKey
         8: .line 807
            aload 4 /* principal */
            ifnull 13
            aload 5 /* publicKey */
            ifnull 13
         9: .line 808
            aload 4 /* principal */
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifeq 13
        10: .line 809
            aload 5 /* publicKey */
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 811
            aload 0 /* this */
            aload 2 /* anchor */
            putfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
        12: .line 812
            iconst_1
            ireturn
        13: .line 818
      StackMap locals: javax.security.auth.x500.X500Principal java.security.PublicKey
      StackMap stack:
            aload 4 /* principal */
            ifnull 31
        14: .line 819
            aload 4 /* principal */
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual javax.security.auth.x500.X500Principal.equals:(Ljava/lang/Object;)Z
            ifne 16
        15: .line 820
            goto 31
        16: .line 824
      StackMap locals:
      StackMap stack:
            aload 5 /* publicKey */
            invokestatic sun.security.provider.certpath.PKIX.isDSAPublicKeyWithoutParams:(Ljava/security/PublicKey;)Z
            ifeq 18
        17: .line 825
            goto 31
        18: .line 832
      StackMap locals:
      StackMap stack:
            aload 1 /* cert */
            aload 5 /* publicKey */
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.buildParams:Lsun/security/provider/certpath/PKIX$BuilderParams;
            invokevirtual sun.security.provider.certpath.PKIX$BuilderParams.sigProvider:()Ljava/lang/String;
            invokevirtual java.security.cert.X509Certificate.verify:(Ljava/security/PublicKey;Ljava/lang/String;)V
        19: .line 833
            goto 29
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
        20: pop
        21: .line 834
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 31
        22: .line 835
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "ForwardBuilder.isPathCompleted() invalid DSA key found"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        23: .line 838
            goto 31
        24: .line 839
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 6 /* e */
        start local 6 // java.security.GeneralSecurityException e
        25: .line 840
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 31
        26: .line 841
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "ForwardBuilder.isPathCompleted() unexpected exception"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        27: .line 843
            aload 6 /* e */
            invokevirtual java.security.GeneralSecurityException.printStackTrace:()V
        28: .line 845
            goto 31
        end local 6 // java.security.GeneralSecurityException e
        29: .line 848
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* anchor */
            putfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
        30: .line 849
            iconst_1
            ireturn
        end local 5 // java.security.PublicKey publicKey
        end local 4 // javax.security.auth.x500.X500Principal principal
        end local 2 // java.security.cert.TrustAnchor anchor
        31: .line 795
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        32: .line 852
            iconst_0
            ireturn
        end local 1 // java.security.cert.X509Certificate cert
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   33     0       this  Lsun/security/provider/certpath/ForwardBuilder;
            0   33     1       cert  Ljava/security/cert/X509Certificate;
            2   31     2     anchor  Ljava/security/cert/TrustAnchor;
            7   31     4  principal  Ljavax/security/auth/x500/X500Principal;
            8   31     5  publicKey  Ljava/security/PublicKey;
           25   29     6          e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
          18    19      20  Class java.security.InvalidKeyException
          18    19      24  Class java.security.GeneralSecurityException
    MethodParameters:
      Name  Flags
      cert  

  void addCertToPath(java.security.cert.X509Certificate, java.util.LinkedList<java.security.cert.X509Certificate>);
    descriptor: (Ljava/security/cert/X509Certificate;Ljava/util/LinkedList;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // java.security.cert.X509Certificate cert
        start local 2 // java.util.LinkedList certPathList
         0: .line 864
            aload 2 /* certPathList */
            aload 1 /* cert */
            invokevirtual java.util.LinkedList.addFirst:(Ljava/lang/Object;)V
         1: .line 865
            return
        end local 2 // java.util.LinkedList certPathList
        end local 1 // java.security.cert.X509Certificate cert
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lsun/security/provider/certpath/ForwardBuilder;
            0    2     1          cert  Ljava/security/cert/X509Certificate;
            0    2     2  certPathList  Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
    Signature: (Ljava/security/cert/X509Certificate;Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;)V
    MethodParameters:
              Name  Flags
      cert          
      certPathList  

  void removeFinalCertFromPath(java.util.LinkedList<java.security.cert.X509Certificate>);
    descriptor: (Ljava/util/LinkedList;)V
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // java.util.LinkedList certPathList
         0: .line 873
            aload 1 /* certPathList */
            invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
            pop
         1: .line 874
            return
        end local 1 // java.util.LinkedList certPathList
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lsun/security/provider/certpath/ForwardBuilder;
            0    2     1  certPathList  Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;
    Signature: (Ljava/util/LinkedList<Ljava/security/cert/X509Certificate;>;)V
    MethodParameters:
              Name  Flags
      certPathList  
}
SourceFile: "ForwardBuilder.java"
NestMembers:
  sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator
InnerClasses:
  public abstract Reason = java.security.cert.CertPathValidatorException$Reason of java.security.cert.CertPathValidatorException
  PKIXCertComparator = sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator of sun.security.provider.certpath.ForwardBuilder
  BuilderParams = sun.security.provider.certpath.PKIX$BuilderParams of sun.security.provider.certpath.PKIX