package com.l7tech.server.policy.assertion.credential;

import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.message.Message;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.policy.assertion.credential.XpathCredentialSource;
import com.l7tech.server.message.AuthenticationContext;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.assertion.AbstractMessageTargetableServerAssertion;
import com.l7tech.server.policy.assertion.AssertionStatusException;
import com.l7tech.server.util.xml.PolicyEnforcementContextXpathVariableFinder;
import com.l7tech.xml.xpath.XpathVariableContext;
import java.io.IOException;
import org.jaxen.FunctionContext;
import org.jaxen.JaxenException;
import org.jaxen.XPathFunctionContext;
import org.jaxen.dom.DOMXPath;
import org.w3c.dom.Document;

public class ServerXpathCredentialSource extends AbstractMessageTargetableServerAssertion<XpathCredentialSource> {
   private static final FunctionContext d;
   private final DOMXPath e;
   private final DOMXPath f;
   private final boolean g;
   private static final String[] h;

   public ServerXpathCredentialSource(XpathCredentialSource param1) {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aload 0
      // 001: aload 1
      // 002: invokespecial com/l7tech/server/policy/assertion/AbstractMessageTargetableServerAssertion.<init> (Lcom/l7tech/policy/assertion/Assertion;)V
      // 005: bipush 1
      // 006: istore 2
      // 007: aconst_null
      // 008: astore 3
      // 009: aload 1
      // 00a: invokevirtual com/l7tech/policy/assertion/credential/XpathCredentialSource.getXpathExpression ()Lcom/l7tech/xml/xpath/XpathExpression;
      // 00d: astore 3
      // 00e: aload 3
      // 00f: ifnonnull 02a
      // 012: aload 0
      // 013: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logger Ljava/util/logging/Logger;
      // 016: getstatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.h [Ljava/lang/String;
      // 019: bipush 1
      // 01a: aaload
      // 01b: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 01e: aload 0
      // 01f: aconst_null
      // 020: putfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.e Lorg/jaxen/dom/DOMXPath;
      // 023: goto 0a8
      // 026: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 029: athrow
      // 02a: aload 3
      // 02b: invokevirtual com/l7tech/xml/xpath/XpathExpression.getExpression ()Ljava/lang/String;
      // 02e: astore 4
      // 030: aload 4
      // 032: aload 3
      // 033: invokevirtual com/l7tech/xml/xpath/XpathExpression.getXpathVersion ()Lcom/l7tech/xml/xpath/XpathVersion;
      // 036: invokestatic com/l7tech/xml/xpath/XpathUtil.usesTargetDocument (Ljava/lang/String;Lcom/l7tech/xml/xpath/XpathVersion;)Z
      // 039: ifne 03e
      // 03c: bipush 0
      // 03d: istore 2
      // 03e: aload 0
      // 03f: new org/jaxen/dom/DOMXPath
      // 042: dup
      // 043: aload 4
      // 045: invokespecial org/jaxen/dom/DOMXPath.<init> (Ljava/lang/String;)V
      // 048: putfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.e Lorg/jaxen/dom/DOMXPath;
      // 04b: aload 0
      // 04c: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.e Lorg/jaxen/dom/DOMXPath;
      // 04f: getstatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.d Lorg/jaxen/FunctionContext;
      // 052: invokevirtual org/jaxen/dom/DOMXPath.setFunctionContext (Lorg/jaxen/FunctionContext;)V
      // 055: aload 0
      // 056: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.e Lorg/jaxen/dom/DOMXPath;
      // 059: new com/l7tech/xml/xpath/XpathVariableFinderVariableContext
      // 05c: dup
      // 05d: aconst_null
      // 05e: invokespecial com/l7tech/xml/xpath/XpathVariableFinderVariableContext.<init> (Lcom/l7tech/xml/xpath/XpathVariableFinder;)V
      // 061: invokevirtual org/jaxen/dom/DOMXPath.setVariableContext (Lorg/jaxen/VariableContext;)V
      // 064: aload 3
      // 065: invokevirtual com/l7tech/xml/xpath/XpathExpression.getNamespaces ()Ljava/util/Map;
      // 068: invokeinterface java/util/Map.keySet ()Ljava/util/Set; 1
      // 06d: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 072: astore 5
      // 074: aload 5
      // 076: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 07b: ifeq 0a8
      // 07e: aload 5
      // 080: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 085: checkcast java/lang/String
      // 088: astore 6
      // 08a: aload 3
      // 08b: invokevirtual com/l7tech/xml/xpath/XpathExpression.getNamespaces ()Ljava/util/Map;
      // 08e: aload 6
      // 090: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 095: checkcast java/lang/String
      // 098: astore 7
      // 09a: aload 0
      // 09b: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.e Lorg/jaxen/dom/DOMXPath;
      // 09e: aload 6
      // 0a0: aload 7
      // 0a2: invokevirtual org/jaxen/dom/DOMXPath.addNamespace (Ljava/lang/String;Ljava/lang/String;)V
      // 0a5: goto 074
      // 0a8: goto 0cc
      // 0ab: astore 4
      // 0ad: new java/lang/RuntimeException
      // 0b0: dup
      // 0b1: aload 3
      // 0b2: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 0b5: getstatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.h [Ljava/lang/String;
      // 0b8: astore 10
      // 0ba: aload 10
      // 0bc: bipush 0
      // 0bd: aaload
      // 0be: swap
      // 0bf: ldc "'"
      // 0c1: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 0c6: aload 4
      // 0c8: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 0cb: athrow
      // 0cc: bipush 1
      // 0cd: istore 4
      // 0cf: aconst_null
      // 0d0: astore 5
      // 0d2: aload 1
      // 0d3: invokevirtual com/l7tech/policy/assertion/credential/XpathCredentialSource.getPasswordExpression ()Lcom/l7tech/xml/xpath/XpathExpression;
      // 0d6: astore 5
      // 0d8: aload 5
      // 0da: ifnonnull 0f5
      // 0dd: aload 0
      // 0de: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logger Ljava/util/logging/Logger;
      // 0e1: getstatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.h [Ljava/lang/String;
      // 0e4: bipush 3
      // 0e5: aaload
      // 0e6: invokevirtual java/util/logging/Logger.warning (Ljava/lang/String;)V
      // 0e9: aload 0
      // 0ea: aconst_null
      // 0eb: putfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.f Lorg/jaxen/dom/DOMXPath;
      // 0ee: goto 178
      // 0f1: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f4: athrow
      // 0f5: aload 5
      // 0f7: invokevirtual com/l7tech/xml/xpath/XpathExpression.getExpression ()Ljava/lang/String;
      // 0fa: astore 6
      // 0fc: aload 6
      // 0fe: aload 5
      // 100: invokevirtual com/l7tech/xml/xpath/XpathExpression.getXpathVersion ()Lcom/l7tech/xml/xpath/XpathVersion;
      // 103: invokestatic com/l7tech/xml/xpath/XpathUtil.usesTargetDocument (Ljava/lang/String;Lcom/l7tech/xml/xpath/XpathVersion;)Z
      // 106: ifne 10c
      // 109: bipush 0
      // 10a: istore 4
      // 10c: aload 0
      // 10d: new org/jaxen/dom/DOMXPath
      // 110: dup
      // 111: aload 6
      // 113: invokespecial org/jaxen/dom/DOMXPath.<init> (Ljava/lang/String;)V
      // 116: putfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.f Lorg/jaxen/dom/DOMXPath;
      // 119: aload 0
      // 11a: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.f Lorg/jaxen/dom/DOMXPath;
      // 11d: getstatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.d Lorg/jaxen/FunctionContext;
      // 120: invokevirtual org/jaxen/dom/DOMXPath.setFunctionContext (Lorg/jaxen/FunctionContext;)V
      // 123: aload 0
      // 124: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.f Lorg/jaxen/dom/DOMXPath;
      // 127: new com/l7tech/xml/xpath/XpathVariableFinderVariableContext
      // 12a: dup
      // 12b: aconst_null
      // 12c: invokespecial com/l7tech/xml/xpath/XpathVariableFinderVariableContext.<init> (Lcom/l7tech/xml/xpath/XpathVariableFinder;)V
      // 12f: invokevirtual org/jaxen/dom/DOMXPath.setVariableContext (Lorg/jaxen/VariableContext;)V
      // 132: aload 5
      // 134: invokevirtual com/l7tech/xml/xpath/XpathExpression.getNamespaces ()Ljava/util/Map;
      // 137: invokeinterface java/util/Map.keySet ()Ljava/util/Set; 1
      // 13c: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 141: astore 7
      // 143: aload 7
      // 145: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 14a: ifeq 178
      // 14d: aload 7
      // 14f: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 154: checkcast java/lang/String
      // 157: astore 8
      // 159: aload 5
      // 15b: invokevirtual com/l7tech/xml/xpath/XpathExpression.getNamespaces ()Ljava/util/Map;
      // 15e: aload 8
      // 160: invokeinterface java/util/Map.get (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 165: checkcast java/lang/String
      // 168: astore 9
      // 16a: aload 0
      // 16b: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.f Lorg/jaxen/dom/DOMXPath;
      // 16e: aload 8
      // 170: aload 9
      // 172: invokevirtual org/jaxen/dom/DOMXPath.addNamespace (Ljava/lang/String;Ljava/lang/String;)V
      // 175: goto 143
      // 178: goto 199
      // 17b: astore 6
      // 17d: new java/lang/RuntimeException
      // 180: dup
      // 181: aload 5
      // 183: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 186: getstatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.h [Ljava/lang/String;
      // 189: bipush 2
      // 18a: aaload
      // 18b: swap
      // 18c: ldc "'"
      // 18e: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001" ]
      // 193: aload 6
      // 195: invokespecial java/lang/RuntimeException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 198: athrow
      // 199: aload 0
      // 19a: iload 2
      // 19b: ifne 1aa
      // 19e: iload 4
      // 1a0: ifeq 1b2
      // 1a3: goto 1aa
      // 1a6: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a9: athrow
      // 1aa: bipush 1
      // 1ab: goto 1b3
      // 1ae: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1b1: athrow
      // 1b2: bipush 0
      // 1b3: putfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.g Z
      // 1b6: return
      // try (10 -> 22): 22 org/jaxen/JaxenException
      // try (7 -> 75): 76 org/jaxen/JaxenException
      // try (99 -> 111): 111 org/jaxen/JaxenException
      // try (96 -> 164): 165 org/jaxen/JaxenException
      // try (179 -> 184): 185 org/jaxen/JaxenException
      // try (182 -> 189): 189 org/jaxen/JaxenException
   }

   @Override
   public AssertionStatus checkRequest(PolicyEnforcementContext var1) throws IOException, PolicyAssertionException {
      try {
         return (AssertionStatus)XpathVariableContext.doWithVariableFinder(new PolicyEnforcementContextXpathVariableFinder(var1), new e(this, var1));
      } catch (IOException var3) {
         throw var3;
      } catch (PolicyAssertionException var4) {
         throw var4;
      } catch (AssertionStatusException var5) {
         return var5.getAssertionStatus();
      } catch (Exception var6) {
         throw new PolicyAssertionException(this.assertion, var6);
      }
   }

   protected AssertionStatus checkTargetRequest(PolicyEnforcementContext var1) throws IOException, PolicyAssertionException {
      return super.checkRequest(var1);
   }

   @Override
   protected AssertionStatus doCheckRequest(PolicyEnforcementContext param1, Message param2, String param3, AuthenticationContext param4) throws IOException, PolicyAssertionException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: aload 2
      // 02: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Lcom/l7tech/message/Message;)Lorg/w3c/dom/Document;
      // 05: astore 5
      // 07: aload 0
      // 08: aload 5
      // 0a: aload 0
      // 0b: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.e Lorg/jaxen/dom/DOMXPath;
      // 0e: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATHCREDENTIAL_LOGIN_XPATH_NOT_FOUND Lcom/l7tech/gateway/common/audit/Messages$M;
      // 11: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATHCREDENTIAL_LOGIN_FOUND_MULTI Lcom/l7tech/gateway/common/audit/Messages$M;
      // 14: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATHCREDENTIAL_LOGIN_PARENT_NOT_ELEMENT Lcom/l7tech/gateway/common/audit/Messages$M;
      // 17: aload 0
      // 18: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 1b: checkcast com/l7tech/policy/assertion/credential/XpathCredentialSource
      // 1e: invokevirtual com/l7tech/policy/assertion/credential/XpathCredentialSource.isRemoveLoginElement ()Z
      // 21: bipush 0
      // 22: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Lorg/w3c/dom/Document;Lorg/jaxen/dom/DOMXPath;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;ZZ)Ljava/lang/String;
      // 25: astore 6
      // 27: goto 3d
      // 2a: astore 7
      // 2c: aload 0
      // 2d: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATHCREDENTIAL_LOGIN_XPATH_FAILED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 30: aconst_null
      // 31: aload 7
      // 33: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 36: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 39: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 3c: areturn
      // 3d: aload 0
      // 3e: aload 5
      // 40: aload 0
      // 41: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.f Lorg/jaxen/dom/DOMXPath;
      // 44: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATHCREDENTIAL_PASS_XPATH_NOT_FOUND Lcom/l7tech/gateway/common/audit/Messages$M;
      // 47: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATHCREDENTIAL_PASS_FOUND_MULTI Lcom/l7tech/gateway/common/audit/Messages$M;
      // 4a: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATHCREDENTIAL_PASS_PARENT_NOT_ELEMENT Lcom/l7tech/gateway/common/audit/Messages$M;
      // 4d: aload 0
      // 4e: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 51: checkcast com/l7tech/policy/assertion/credential/XpathCredentialSource
      // 54: invokevirtual com/l7tech/policy/assertion/credential/XpathCredentialSource.isRemovePasswordElement ()Z
      // 57: bipush 1
      // 58: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Lorg/w3c/dom/Document;Lorg/jaxen/dom/DOMXPath;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;Lcom/l7tech/gateway/common/audit/AuditDetailMessage;ZZ)Ljava/lang/String;
      // 5b: astore 7
      // 5d: goto 70
      // 60: astore 8
      // 62: aload 0
      // 63: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATHCREDENTIAL_PASS_XPATH_FAILED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 66: aconst_null
      // 67: aload 8
      // 69: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 6c: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 6f: areturn
      // 70: aload 6
      // 72: ifnull 90
      // 75: aload 6
      // 77: invokevirtual java/lang/String.length ()I
      // 7a: ifeq 90
      // 7d: goto 84
      // 80: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 83: athrow
      // 84: aload 7
      // 86: ifnonnull 98
      // 89: goto 90
      // 8c: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8f: athrow
      // 90: getstatic com/l7tech/policy/assertion/AssertionStatus.AUTH_REQUIRED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 93: areturn
      // 94: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 97: athrow
      // 98: new com/l7tech/security/token/UsernamePasswordSecurityToken
      // 9b: dup
      // 9c: getstatic com/l7tech/security/token/SecurityTokenType.XPATH_CREDENTIALS Lcom/l7tech/security/token/SecurityTokenType;
      // 9f: aload 6
      // a1: aload 7
      // a3: invokevirtual java/lang/String.toCharArray ()[C
      // a6: invokespecial com/l7tech/security/token/UsernamePasswordSecurityToken.<init> (Lcom/l7tech/security/token/SecurityTokenType;Ljava/lang/String;[C)V
      // a9: ldc com/l7tech/policy/assertion/credential/XpathCredentialSource
      // ab: invokestatic com/l7tech/policy/assertion/credential/LoginCredentials.makeLoginCredentials (Lcom/l7tech/security/token/SecurityToken;Ljava/lang/Class;)Lcom/l7tech/policy/assertion/credential/LoginCredentials;
      // ae: astore 8
      // b0: aload 1
      // b1: aload 2
      // b2: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.getAuthenticationContext (Lcom/l7tech/message/Message;)Lcom/l7tech/server/message/AuthenticationContext; 2
      // b7: aload 8
      // b9: invokevirtual com/l7tech/server/message/AuthenticationContext.addCredentials (Lcom/l7tech/policy/assertion/credential/LoginCredentials;)V
      // bc: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // bf: areturn
      // try (4 -> 18): 19 java/lang/Exception
      // try (28 -> 42): 43 java/lang/Exception
      // try (51 -> 56): 57 java/lang/Exception
      // try (53 -> 61): 62 java/lang/Exception
      // try (59 -> 66): 66 java/lang/Exception
   }

   private Document a(Message param1) throws IOException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 00: aload 0
      // 01: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 04: checkcast com/l7tech/policy/assertion/credential/XpathCredentialSource
      // 07: invokevirtual com/l7tech/policy/assertion/credential/XpathCredentialSource.isRemoveLoginElement ()Z
      // 0a: ifne 21
      // 0d: aload 0
      // 0e: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.assertion Lcom/l7tech/policy/assertion/Assertion;
      // 11: checkcast com/l7tech/policy/assertion/credential/XpathCredentialSource
      // 14: invokevirtual com/l7tech/policy/assertion/credential/XpathCredentialSource.isRemovePasswordElement ()Z
      // 17: ifeq 29
      // 1a: goto 21
      // 1d: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20: athrow
      // 21: bipush 1
      // 22: goto 2a
      // 25: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 28: athrow
      // 29: bipush 0
      // 2a: istore 2
      // 2b: aconst_null
      // 2c: astore 3
      // 2d: aconst_null
      // 2e: astore 4
      // 30: aload 1
      // 31: invokevirtual com/l7tech/message/Message.isXml ()Z
      // 34: ifeq 67
      // 37: aload 1
      // 38: ldc com/l7tech/message/XmlKnob
      // 3a: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 3d: checkcast com/l7tech/message/XmlKnob
      // 40: astore 5
      // 42: aload 5
      // 44: ifnull 67
      // 47: iload 2
      // 48: ifeq 56
      // 4b: aload 5
      // 4d: invokeinterface com/l7tech/message/XmlKnob.getDocumentWritable ()Lorg/w3c/dom/Document; 1
      // 52: astore 3
      // 53: goto 5e
      // 56: aload 5
      // 58: invokeinterface com/l7tech/message/XmlKnob.getDocumentReadOnly ()Lorg/w3c/dom/Document; 1
      // 5d: astore 3
      // 5e: goto 67
      // 61: astore 6
      // 63: aload 6
      // 65: astore 4
      // 67: aload 3
      // 68: ifnonnull 99
      // 6b: aload 0
      // 6c: getfield com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.g Z
      // 6f: ifeq 95
      // 72: goto 79
      // 75: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 78: athrow
      // 79: aload 0
      // 7a: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATHCREDENTIAL_REQUEST_NOT_XML Lcom/l7tech/gateway/common/audit/Messages$M;
      // 7d: aconst_null
      // 7e: aload 4
      // 80: invokestatic com/l7tech/util/ExceptionUtils.getDebugException (Ljava/lang/Throwable;)Ljava/lang/Throwable;
      // 83: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 86: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 89: dup
      // 8a: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 8d: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;)V
      // 90: athrow
      // 91: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 94: athrow
      // 95: invokestatic com/l7tech/common/io/XmlUtil.createEmptyDocument ()Lorg/w3c/dom/Document;
      // 98: astore 3
      // 99: aload 3
      // 9a: areturn
      // try (5 -> 15): 15 org/xml/sax/SAXException
      // try (0 -> 10): 11 org/xml/sax/SAXException
      // try (33 -> 42): 43 org/xml/sax/SAXException
      // try (46 -> 51): 52 org/xml/sax/SAXException
      // try (48 -> 65): 65 org/xml/sax/SAXException
   }

   private String a(
      Document param1, DOMXPath param2, AuditDetailMessage param3, AuditDetailMessage param4, AuditDetailMessage param5, boolean param6, boolean param7
   ) throws JaxenException {
      // $VF: Couldn't be decompiled
      // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!)
      // java.lang.RuntimeException: parsing failure!
      //   at org.jetbrains.java.decompiler.modules.decompiler.decompose.DomHelper.parseGraph(DomHelper.java:211)
      //   at org.jetbrains.java.decompiler.main.rels.MethodProcessor.codeToJava(MethodProcessor.java:174)
      //
      // Bytecode:
      // 000: aconst_null
      // 001: astore 8
      // 003: aconst_null
      // 004: astore 9
      // 006: aload 2
      // 007: ifnonnull 015
      // 00a: aload 0
      // 00b: aload 3
      // 00c: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 00f: aconst_null
      // 010: areturn
      // 011: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 014: athrow
      // 015: aload 2
      // 016: aload 1
      // 017: invokevirtual org/jaxen/dom/DOMXPath.selectNodes (Ljava/lang/Object;)Ljava/util/List;
      // 01a: astore 10
      // 01c: aload 10
      // 01e: ifnull 032
      // 021: aload 10
      // 023: invokeinterface java/util/List.size ()I 1
      // 028: ifne 03d
      // 02b: goto 032
      // 02e: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 031: athrow
      // 032: aload 0
      // 033: aload 3
      // 034: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 037: aconst_null
      // 038: areturn
      // 039: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 03c: athrow
      // 03d: aload 10
      // 03f: invokeinterface java/util/List.size ()I 1
      // 044: bipush 1
      // 045: if_icmple 054
      // 048: aload 0
      // 049: aload 4
      // 04b: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 04e: aconst_null
      // 04f: areturn
      // 050: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 053: athrow
      // 054: aload 10
      // 056: bipush 0
      // 057: invokeinterface java/util/List.get (I)Ljava/lang/Object; 2
      // 05c: astore 11
      // 05e: aload 11
      // 060: instanceof org/w3c/dom/Node
      // 063: ifeq 11d
      // 066: aload 11
      // 068: checkcast org/w3c/dom/Node
      // 06b: astore 12
      // 06d: aload 12
      // 06f: invokeinterface org/w3c/dom/Node.getNodeType ()S 1
      // 074: istore 13
      // 076: iload 13
      // 078: tableswitch 162 1 3 60 28 44
      // 094: aload 12
      // 096: invokeinterface org/w3c/dom/Node.getNodeValue ()Ljava/lang/String; 1
      // 09b: astore 8
      // 09d: aload 12
      // 09f: astore 9
      // 0a1: goto 11a
      // 0a4: aload 12
      // 0a6: invokeinterface org/w3c/dom/Node.getNodeValue ()Ljava/lang/String; 1
      // 0ab: astore 8
      // 0ad: aload 12
      // 0af: astore 9
      // 0b1: goto 11a
      // 0b4: aload 12
      // 0b6: invokeinterface org/w3c/dom/Node.getFirstChild ()Lorg/w3c/dom/Node; 1
      // 0bb: astore 14
      // 0bd: aload 14
      // 0bf: ifnull 105
      // 0c2: aload 14
      // 0c4: invokeinterface org/w3c/dom/Node.getNodeType ()S 1
      // 0c9: bipush 3
      // 0ca: if_icmpne 0f9
      // 0cd: goto 0d4
      // 0d0: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d3: athrow
      // 0d4: aload 8
      // 0d6: ifnull 0ec
      // 0d9: goto 0e0
      // 0dc: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0df: athrow
      // 0e0: aload 0
      // 0e1: aload 4
      // 0e3: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 0e6: aconst_null
      // 0e7: areturn
      // 0e8: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0eb: athrow
      // 0ec: aload 14
      // 0ee: invokeinterface org/w3c/dom/Node.getNodeValue ()Ljava/lang/String; 1
      // 0f3: astore 8
      // 0f5: aload 14
      // 0f7: astore 9
      // 0f9: aload 14
      // 0fb: invokeinterface org/w3c/dom/Node.getNextSibling ()Lorg/w3c/dom/Node; 1
      // 100: astore 14
      // 102: goto 0bd
      // 105: iload 7
      // 107: ifeq 11a
      // 10a: aload 8
      // 10c: ifnonnull 11a
      // 10f: goto 116
      // 112: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 115: athrow
      // 116: ldc ""
      // 118: astore 8
      // 11a: goto 12c
      // 11d: aload 11
      // 11f: instanceof java/lang/String
      // 122: ifeq 12c
      // 125: aload 11
      // 127: checkcast java/lang/String
      // 12a: astore 8
      // 12c: aload 8
      // 12e: ifnull 1ae
      // 131: iload 6
      // 133: ifeq 1ae
      // 136: goto 13d
      // 139: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 13c: athrow
      // 13d: aload 9
      // 13f: ifnonnull 156
      // 142: goto 149
      // 145: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 148: athrow
      // 149: aload 0
      // 14a: aload 5
      // 14c: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 14f: goto 1ae
      // 152: invokestatic com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 155: athrow
      // 156: aload 9
      // 158: instanceof org/w3c/dom/Attr
      // 15b: ifeq 17b
      // 15e: aload 9
      // 160: checkcast org/w3c/dom/Attr
      // 163: astore 12
      // 165: aload 12
      // 167: invokeinterface org/w3c/dom/Attr.getOwnerElement ()Lorg/w3c/dom/Element; 1
      // 16c: astore 13
      // 16e: aload 13
      // 170: aload 12
      // 172: invokeinterface org/w3c/dom/Element.removeAttributeNode (Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr; 2
      // 177: pop
      // 178: goto 1ae
      // 17b: aload 9
      // 17d: invokeinterface org/w3c/dom/Node.getParentNode ()Lorg/w3c/dom/Node; 1
      // 182: astore 12
      // 184: aload 12
      // 186: invokeinterface org/w3c/dom/Node.getNodeType ()S 1
      // 18b: bipush 1
      // 18c: if_icmpne 1a8
      // 18f: aload 12
      // 191: checkcast org/w3c/dom/Element
      // 194: astore 13
      // 196: aload 13
      // 198: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 19d: aload 13
      // 19f: invokeinterface org/w3c/dom/Node.removeChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 1a4: pop
      // 1a5: goto 1ae
      // 1a8: aload 0
      // 1a9: aload 5
      // 1ab: invokevirtual com/l7tech/server/policy/assertion/credential/ServerXpathCredentialSource.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 1ae: aload 8
      // 1b0: areturn
      // try (4 -> 11): 11 org/jaxen/JaxenException
      // try (17 -> 22): 23 org/jaxen/JaxenException
      // try (19 -> 30): 30 org/jaxen/JaxenException
      // try (32 -> 41): 41 org/jaxen/JaxenException
      // try (73 -> 79): 80 org/jaxen/JaxenException
      // try (75 -> 84): 85 org/jaxen/JaxenException
      // try (82 -> 92): 92 org/jaxen/JaxenException
      // try (103 -> 107): 108 org/jaxen/JaxenException
      // try (119 -> 123): 124 org/jaxen/JaxenException
      // try (121 -> 128): 129 org/jaxen/JaxenException
      // try (126 -> 135): 135 org/jaxen/JaxenException
   }

   static {
      String[] var5 = new String[4];
      int var3 = 0;
      String var2 = "\u0011E}1}/\txGd7x(M [j$yf\b [y5b5\u00047E+w0\u0014Dl9\u007ff5\bJ\u007f81/\u001exE~<}}M9Xx5c2\u00047E+9bf\u00037E&6d(\u000e,Bd>p*";
      int var4 = "\u0011E}1}/\txGd7x(M [j$yf\b [y5b5\u00047E+w0\u0014Dl9\u007ff5\bJ\u007f81/\u001exE~<}}M9Xx5c2\u00047E+9bf\u00037E&6d(\u000e,Bd>p*".length();
      char var1 = ' ';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 79;
         String var10001 = var2.substring(++var7, var7 + var1);
         byte var10002 = -1;

         while (true) {
            String var8 = c(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     h = var5;
                     d = new XPathFunctionContext(false);
                     return;
                  }

                  var1 = var2.charAt(var7);
                  break;
               default:
                  var5[var3++] = var8;
                  if ((var7 += var1) < var4) {
                     var1 = var2.charAt(var7);
                     continue label24;
                  }

                  var2 = ",x@\f@\u00124EfW\u001e_\f?\u0017r\u0016\u0015\\\u001a$\r6S\u0015\\\t5\u0016e_\u0002B[w35wE\u001e[\u0014\"\u00016n=M\u000f8E\u007fEMB\u000e<\t-\u0016\f_\b5\u0017b_\u0002B[9\u00166X\u0002BV6\u0010xU\u0019E\u0014>\u0004z";
                  var4 = ",x@\f@\u00124EfW\u001e_\f?\u0017r\u0016\u0015\\\u001a$\r6S\u0015\\\t5\u0016e_\u0002B[w35wE\u001e[\u0014\"\u00016n=M\u000f8E\u007fEMB\u000e<\t-\u0016\f_\b5\u0017b_\u0002B[9\u00166X\u0002BV6\u0010xU\u0019E\u0014>\u0004z"
                     .length();
                  var1 = '#';
                  var7 = -1;
            }

            var10000 = 114;
            var10001 = var2.substring(++var7, var7 + var1);
            var10002 = 0;
         }
      }
   }

   private static Exception a(Exception var0) {
      return var0;
   }

   private static char[] a(String var0) {
      char[] var10000 = var0.toCharArray();
      if (var10000.length < 2) {
         var10000[0] = (char)(var10000[0] ^ 34);
      }

      return var10000;
   }

   private static String c(int var0, char[] var1) {
      int var10003 = var1.length;
      int var10002 = var0;
      char[] var10001 = var1;
      int var10000 = var10003;

      for (int var2 = 0; var10000 > var2; var2++) {
         var10001[var2] = (char)(var10001[var2] ^ var10002 ^ switch (var2 % 7) {
            case 0 -> 23;
            case 1 -> 100;
            case 2 -> 68;
            case 3 -> 31;
            case 4 -> 94;
            case 5 -> 9;
            default -> 34;
         });
      }

      return new String(var10001).intern();
   }
}
