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 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 65
            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 */
            iload 2 /* searchAllCertStores */
            putfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
        15: .line 97
            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   16     0                 this  Lsun/security/provider/certpath/ForwardBuilder;
            0   16     1          buildParams  Lsun/security/provider/certpath/PKIX$BuilderParams;
            0   16     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=6, 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 113
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 114
            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 117
      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 sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator
            dup
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustedSubjectDNs:Ljava/util/Set;
            aload 3 /* currState */
            getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
            invokespecial sun.security.provider.certpath.ForwardBuilder$PKIXCertComparator.<init>:(Ljava/util/Set;Lsun/security/x509/X509CertImpl;)V
         4: .line 124
            astore 4 /* comparator */
        start local 4 // java.util.Comparator comparator
         5: .line 126
            new java.util.TreeSet
            dup
            aload 4 /* comparator */
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
            astore 5 /* certs */
        start local 5 // java.util.Set certs
         6: .line 131
            aload 3 /* currState */
            invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
            ifeq 8
         7: .line 132
            aload 0 /* this */
            aload 3 /* currState */
            aload 2 /* certStores */
            aload 5 /* certs */
            invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingEECerts:(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
         8: .line 134
      StackMap locals: sun.security.provider.certpath.ForwardState java.util.Comparator java.util.Set
      StackMap stack:
            aload 0 /* this */
            aload 3 /* currState */
            aload 2 /* certStores */
            aload 5 /* certs */
            invokevirtual sun.security.provider.certpath.ForwardBuilder.getMatchingCACerts:(Lsun/security/provider/certpath/ForwardState;Ljava/util/List;Ljava/util/Collection;)V
         9: .line 136
            aload 5 /* certs */
            areturn
        end local 5 // java.util.Set certs
        end local 4 // java.util.Comparator comparator
        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   10     0          this  Lsun/security/provider/certpath/ForwardBuilder;
            0   10     1  currentState  Lsun/security/provider/certpath/State;
            0   10     2    certStores  Ljava/util/List<Ljava/security/cert/CertStore;>;
            3   10     3     currState  Lsun/security/provider/certpath/ForwardState;
            5   10     4    comparator  Ljava/util/Comparator<Ljava/security/cert/X509Certificate;>;
            6   10     5         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 148
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 149
            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 159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.eeSelector:Ljava/security/cert/X509CertSelector;
            ifnonnull 8
         3: .line 160
            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 165
            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 170
            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 171
            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 176
      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 180
      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 181
            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 192
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 2
         1: .line 193
            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 195
      StackMap locals:
      StackMap stack:
            aload 3 /* caCerts */
            invokeinterface java.util.Collection.size:()I
            istore 4 /* initialSize */
        start local 4 // int initialSize
         3: .line 201
            aconst_null
            astore 5 /* sel */
        start local 5 // java.security.cert.X509CertSelector sel
         4: .line 203
            aload 1 /* currentState */
            invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
            ifeq 17
         5: .line 204
            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 206
            return
         7: .line 212
      StackMap locals: int java.security.cert.X509CertSelector
      StackMap stack:
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 9
         8: .line 213
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ldc "ForwardBuilder.getMatchingCACerts(): the target is a CA"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         9: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
            ifnonnull 15
        10: .line 218
            aload 0 /* this */
        11: .line 219
            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 218
            putfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
        13: .line 231
            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 232
            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 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caTargetSelector:Ljava/security/cert/X509CertSelector;
            astore 5 /* sel */
        16: .line 236
            goto 28
        17: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            ifnonnull 21
        18: .line 239
            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 251
            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 252
            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 258
      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 266
            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 265
            invokestatic sun.security.provider.certpath.CertPathHelper.setPathToNames:(Ljava/security/cert/X509CertSelector;Ljava/util/Set;)V
        24: .line 271
            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;
        25: .line 272
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.cert:Lsun/security/x509/X509CertImpl;
            invokevirtual sun.security.x509.X509CertImpl.getNotAfter:()Ljava/util/Date;
        26: .line 271
            invokevirtual sun.security.provider.certpath.AdaptableX509CertSelector.setValidityPeriod:(Ljava/util/Date;Ljava/util/Date;)V
        27: .line 274
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.caSelector:Lsun/security/provider/certpath/AdaptableX509CertSelector;
            astore 5 /* sel */
        28: .line 283
      StackMap locals:
      StackMap stack:
            aload 5 /* sel */
            iconst_m1
            invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
        29: .line 285
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustedCerts:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 42
      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:
        30: 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
        31: .line 286
            aload 5 /* sel */
            aload 6 /* trustedCert */
            invokevirtual java.security.cert.X509CertSelector.match:(Ljava/security/cert/Certificate;)Z
            ifeq 42
        32: .line 287
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 40
        33: .line 288
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "ForwardBuilder.getMatchingCACerts: found matching trust anchor.\n  SN: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        34: .line 291
            aload 6 /* trustedCert */
            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;
        35: .line 292
            ldc "\n  Subject: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        36: .line 293
            aload 6 /* trustedCert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        37: .line 294
            ldc "\n  Issuer: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        38: .line 295
            aload 6 /* trustedCert */
            invokevirtual java.security.cert.X509Certificate.getIssuerX500Principal:()Ljavax/security/auth/x500/X500Principal;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        39: .line 288
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        40: .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 42
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
            ifne 42
        41: .line 298
            return
        end local 6 // java.security.cert.X509Certificate trustedCert
        42: .line 285
      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 30
        43: .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
        44: .line 313
            aload 5 /* sel */
            aload 1 /* currentState */
            getfield sun.security.provider.certpath.ForwardState.traversedCACerts:I
            invokevirtual java.security.cert.X509CertSelector.setBasicConstraints:(I)V
        45: .line 322
            aload 1 /* currentState */
            invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
            ifne 48
        46: .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 48
        47: .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 54
        48: .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 */
        49: .line 327
            aload 3 /* caCerts */
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
        50: .line 326
            invokevirtual sun.security.provider.certpath.ForwardBuilder.addMatchingCerts:(Ljava/security/cert/X509CertSelector;Ljava/util/Collection;Ljava/util/Collection;Z)Z
        51: .line 327
            ifeq 54
        52: .line 328
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.searchAllCertStores:Z
            ifne 54
        53: .line 329
            return
        54: .line 333
      StackMap locals:
      StackMap stack:
            aload 1 /* currentState */
            invokevirtual sun.security.provider.certpath.ForwardState.isInitial:()Z
            ifne 59
            getstatic sun.security.provider.certpath.Builder.USE_AIA:Z
            ifeq 59
        55: .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;
        56: .line 335
            astore 6 /* aiaExt */
        start local 6 // sun.security.x509.AuthorityInfoAccessExtension aiaExt
        57: .line 337
            aload 6 /* aiaExt */
            ifnull 59
        58: .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
        59: .line 342
      StackMap locals:
      StackMap stack:
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 64
        60: .line 343
            aload 3 /* caCerts */
            invokeinterface java.util.Collection.size:()I
            iload 4 /* initialSize */
            isub
            istore 6 /* numCerts */
        start local 6 // int numCerts
        61: .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
        62: .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;
        63: .line 344
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 6 // int numCerts
        64: .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   65     0          this  Lsun/security/provider/certpath/ForwardBuilder;
            0   65     1  currentState  Lsun/security/provider/certpath/ForwardState;
            0   65     2    certStores  Ljava/util/List<Ljava/security/cert/CertStore;>;
            0   65     3       caCerts  Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
            3   65     4   initialSize  I
            4   65     5           sel  Ljava/security/cert/X509CertSelector;
           31   42     6   trustedCert  Ljava/security/cert/X509Certificate;
           57   59     6        aiaExt  Lsun/security/x509/AuthorityInfoAccessExtension;
           61   64     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 387
            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 697
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 6
         1: .line 698
            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 699
            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 700
            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 701
            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 698
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
         6: .line 704
      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 707
            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 713
            aload 3 /* certPathList */
            ifnull 16
         9: .line 714
            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 715
            aload 1 /* cert */
            aload 5 /* cpListCert */
            invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 15
        12: .line 716
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 14
        13: .line 717
            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 719
      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 714
      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 725
      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 728
            iload 5 /* isTrustedCert */
            ifne 47
        18: .line 734
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getCriticalExtensionOIDs:()Ljava/util/Set;
            astore 6 /* unresCritExts */
        start local 6 // java.util.Set unresCritExts
        19: .line 735
            aload 6 /* unresCritExts */
            ifnonnull 21
        20: .line 736
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            astore 6 /* unresCritExts */
        21: .line 738
      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 739
            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 738
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        25: .line 748
            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 749
            aload 7 /* checker */
            invokevirtual java.security.cert.PKIXCertPathChecker.isForwardCheckingSupported:()Z
            ifne 31
        28: .line 750
            aload 7 /* checker */
            invokevirtual java.security.cert.PKIXCertPathChecker.getSupportedExtensions:()Ljava/util/Set;
            astore 9 /* supportedExts */
        start local 9 // java.util.Set supportedExts
        29: .line 751
            aload 9 /* supportedExts */
            ifnull 31
        30: .line 752
            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 748
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 26
        32: .line 761
            aload 6 /* unresCritExts */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 47
        33: .line 762
            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 763
            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 764
            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 765
            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 766
            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 767
            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 768
            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 769
            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 770
            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 772
            aload 6 /* unresCritExts */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 47
        43: .line 773
            new java.security.cert.CertPathValidatorException
            dup
        44: .line 774
            ldc "Unrecognized critical extension(s)"
            aconst_null
            aconst_null
            iconst_m1
        45: .line 775
            getstatic java.security.cert.PKIXReason.UNRECOGNIZED_CRIT_EXT:Ljava/security/cert/PKIXReason;
        46: .line 773
            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 783
      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 784
            return
        49: .line 788
      StackMap locals:
      StackMap stack:
            iload 5 /* isTrustedCert */
            ifne 53
        50: .line 790
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getBasicConstraints:()I
            iconst_m1
            if_icmpne 52
        51: .line 791
            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 797
      StackMap locals:
      StackMap stack:
            aload 1 /* cert */
            invokestatic sun.security.provider.certpath.KeyChecker.verifyCAKeyUsage:(Ljava/security/cert/X509Certificate;)V
        53: .line 811
      StackMap locals:
      StackMap stack:
            aload 4 /* currState */
            invokevirtual sun.security.provider.certpath.ForwardState.keyParamsNeeded:()Z
            ifne 57
        54: .line 812
            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 813
            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 812
            invokevirtual sun.security.x509.X509CertImpl.verify:(Ljava/security/PublicKey;Ljava/lang/String;)V
        57: .line 815
      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=8, args_size=2
        start local 0 // sun.security.provider.certpath.ForwardBuilder this
        start local 1 // java.security.cert.X509Certificate cert
         0: .line 833
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* otherAnchors */
        start local 2 // java.util.List otherAnchors
         1: .line 835
            aload 0 /* this */
            getfield sun.security.provider.certpath.ForwardBuilder.trustAnchors:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List top java.util.Iterator
      StackMap stack:
         2: 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
         3: .line 836
            aload 3 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
            ifnull 7
         4: .line 837
            aload 1 /* cert */
            aload 3 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getTrustedCert:()Ljava/security/cert/X509Certificate;
            invokevirtual java.security.cert.X509Certificate.equals:(Ljava/lang/Object;)Z
            ifeq 15
         5: .line 838
            aload 0 /* this */
            aload 3 /* anchor */
            putfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
         6: .line 839
            iconst_1
            ireturn
         7: .line 844
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List java.security.cert.TrustAnchor java.util.Iterator
      StackMap stack:
            aload 3 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getCA:()Ljavax/security/auth/x500/X500Principal;
            astore 5 /* principal */
        start local 5 // javax.security.auth.x500.X500Principal principal
         8: .line 845
            aload 3 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
            astore 6 /* publicKey */
        start local 6 // java.security.PublicKey publicKey
         9: .line 847
            aload 5 /* principal */
            ifnull 14
            aload 6 /* publicKey */
            ifnull 14
        10: .line 848
            aload 5 /* 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 14
        11: .line 849
            aload 6 /* publicKey */
            aload 1 /* cert */
            invokevirtual java.security.cert.X509Certificate.getPublicKey:()Ljava/security/PublicKey;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 851
            aload 0 /* this */
            aload 3 /* anchor */
            putfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
        13: .line 852
            iconst_1
            ireturn
        14: .line 856
      StackMap locals: javax.security.auth.x500.X500Principal java.security.PublicKey
      StackMap stack:
            aload 2 /* otherAnchors */
            aload 3 /* anchor */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.security.PublicKey publicKey
        end local 5 // javax.security.auth.x500.X500Principal principal
        end local 3 // java.security.cert.TrustAnchor anchor
        15: .line 835
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        16: .line 859
            aload 2 /* otherAnchors */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 38
      StackMap locals:
      StackMap stack:
        17: 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
        18: .line 860
            aload 3 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getCA:()Ljavax/security/auth/x500/X500Principal;
            astore 5 /* principal */
        start local 5 // javax.security.auth.x500.X500Principal principal
        19: .line 861
            aload 3 /* anchor */
            invokevirtual java.security.cert.TrustAnchor.getCAPublicKey:()Ljava/security/PublicKey;
            astore 6 /* publicKey */
        start local 6 // java.security.PublicKey publicKey
        20: .line 863
            aload 5 /* principal */
            ifnull 38
        21: .line 864
            aload 5 /* 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 23
        22: .line 865
            goto 38
        23: .line 869
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List java.security.cert.TrustAnchor java.util.Iterator javax.security.auth.x500.X500Principal java.security.PublicKey
      StackMap stack:
            aload 6 /* publicKey */
            invokestatic sun.security.provider.certpath.PKIX.isDSAPublicKeyWithoutParams:(Ljava/security/PublicKey;)Z
            ifeq 25
        24: .line 870
            goto 38
        25: .line 877
      StackMap locals:
      StackMap stack:
            aload 1 /* cert */
            aload 6 /* 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
        26: .line 878
            goto 36
      StackMap locals:
      StackMap stack: java.security.InvalidKeyException
        27: pop
        28: .line 879
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 38
        29: .line 880
            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
        30: .line 883
            goto 38
        31: .line 884
      StackMap locals:
      StackMap stack: java.security.GeneralSecurityException
            astore 7 /* e */
        start local 7 // java.security.GeneralSecurityException e
        32: .line 885
            getstatic sun.security.provider.certpath.ForwardBuilder.debug:Lsun/security/util/Debug;
            ifnull 38
        33: .line 886
            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
        34: .line 888
            aload 7 /* e */
            invokevirtual java.security.GeneralSecurityException.printStackTrace:()V
        35: .line 890
            goto 38
        end local 7 // java.security.GeneralSecurityException e
        36: .line 893
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* anchor */
            putfield sun.security.provider.certpath.ForwardBuilder.trustAnchor:Ljava/security/cert/TrustAnchor;
        37: .line 894
            iconst_1
            ireturn
        end local 6 // java.security.PublicKey publicKey
        end local 5 // javax.security.auth.x500.X500Principal principal
        end local 3 // java.security.cert.TrustAnchor anchor
        38: .line 859
      StackMap locals: sun.security.provider.certpath.ForwardBuilder java.security.cert.X509Certificate java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        39: .line 897
            iconst_0
            ireturn
        end local 2 // java.util.List otherAnchors
        end local 1 // java.security.cert.X509Certificate cert
        end local 0 // sun.security.provider.certpath.ForwardBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   40     0          this  Lsun/security/provider/certpath/ForwardBuilder;
            0   40     1          cert  Ljava/security/cert/X509Certificate;
            1   40     2  otherAnchors  Ljava/util/List<Ljava/security/cert/TrustAnchor;>;
            3   15     3        anchor  Ljava/security/cert/TrustAnchor;
            8   15     5     principal  Ljavax/security/auth/x500/X500Principal;
            9   15     6     publicKey  Ljava/security/PublicKey;
           18   38     3        anchor  Ljava/security/cert/TrustAnchor;
           19   38     5     principal  Ljavax/security/auth/x500/X500Principal;
           20   38     6     publicKey  Ljava/security/PublicKey;
           32   36     7             e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
          25    26      27  Class java.security.InvalidKeyException
          25    26      31  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 909
            aload 2 /* certPathList */
            aload 1 /* cert */
            invokevirtual java.util.LinkedList.addFirst:(Ljava/lang/Object;)V
         1: .line 910
            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 918
            aload 1 /* certPathList */
            invokevirtual java.util.LinkedList.removeFirst:()Ljava/lang/Object;
            pop
         1: .line 919
            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