package com.l7tech.server.policy.assertion;

import com.l7tech.gateway.common.audit.AssertionMessages;
import com.l7tech.gateway.common.audit.AuditFactory;
import com.l7tech.kerberos.KerberosException;
import com.l7tech.kerberos.KerberosServiceTicket;
import com.l7tech.message.Message;
import com.l7tech.message.TcpKnob;
import com.l7tech.policy.assertion.RoutingAssertion;
import com.l7tech.policy.assertion.RoutingAssertionWithSamlSV;
import com.l7tech.policy.assertion.credential.LoginCredentials;
import com.l7tech.security.saml.NameIdentifierInclusionType;
import com.l7tech.security.saml.SamlAssertionGenerator;
import com.l7tech.security.saml.SubjectStatement;
import com.l7tech.security.saml.SamlAssertionGenerator.Options;
import com.l7tech.security.token.KerberosAuthenticationSecurityToken;
import com.l7tech.security.token.KerberosSigningSecurityToken;
import com.l7tech.security.token.XmlSecurityToken;
import com.l7tech.security.xml.KeyInfoInclusionType;
import com.l7tech.security.xml.SecurityActor;
import com.l7tech.security.xml.SignerInfo;
import com.l7tech.security.xml.processor.ProcessorResult;
import com.l7tech.server.event.PostRoutingEvent;
import com.l7tech.server.event.PreRoutingEvent;
import com.l7tech.server.message.AuthenticationContext;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.security.kerberos.KerberosRoutingClient;
import com.l7tech.server.util.EventChannel;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.InvalidDocumentFormatException;
import java.io.IOException;
import java.net.InetAddress;
import java.net.URL;
import java.net.UnknownHostException;
import java.security.SignatureException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.util.Map;
import java.util.logging.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEventPublisher;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

public abstract class ServerRoutingAssertion<RAT extends RoutingAssertion> extends AbstractServerAssertion<RAT> {
   protected final ApplicationContext applicationContext;
   protected final ApplicationEventPublisher messageProcessingEventChannel;
   private static final String[] L;

   protected ServerRoutingAssertion(RAT var1, ApplicationContext var2) {
      AuditFactory var10002;
      if (var2 == null) {
         var10002 = null;
      } else {
         String[] var4 = L;
         var10002 = (AuditFactory)var2.getBean(var4[10], AuditFactory.class);
      }

      super((RAT)var1, var10002);
      this.applicationContext = var2;
      if (var2 == null) {
         this.messageProcessingEventChannel = new EventChannel();
      } else {
         ApplicationEventPublisher var3 = (ApplicationEventPublisher)var2.getBean(L[11], EventChannel.class);

         ServerRoutingAssertion var10000;
         Object var10001;
         label24: {
            try {
               var10000 = this;
               if (var3 != null) {
                  var10001 = var3;
                  break label24;
               }
            } catch (AssertionStatusException var5) {
               throw b(var5);
            }

            var10001 = var2;
         }

         var10000.messageProcessingEventChannel = (ApplicationEventPublisher)var10001;
      }
   }

   protected void handleProcessedSecurityHeader(Message var1) throws SAXException, IOException {
      this.handleProcessedSecurityHeader(var1, this.assertion.getCurrentSecurityHeaderHandling(), this.assertion.getXmlSecurityActorToPromote());
   }

   protected void handleProcessedSecurityHeader(Message param1, int param2, String param3) throws SAXException, 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:
      // 000: iload 2
      // 001: bipush 3
      // 002: if_icmpne 00a
      // 005: return
      // 006: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 009: athrow
      // 00a: aload 1
      // 00b: ldc com/l7tech/message/XmlKnob
      // 00d: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 010: checkcast com/l7tech/message/XmlKnob
      // 013: astore 4
      // 015: aload 4
      // 017: ifnonnull 02c
      // 01a: aload 0
      // 01b: getfield com/l7tech/server/policy/assertion/ServerRoutingAssertion.logger Ljava/util/logging/Logger;
      // 01e: getstatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.L [Ljava/lang/String;
      // 021: bipush 24
      // 023: aaload
      // 024: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 027: return
      // 028: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 02b: athrow
      // 02c: aload 1
      // 02d: ldc com/l7tech/message/SecurityKnob
      // 02f: invokevirtual com/l7tech/message/Message.getKnob (Ljava/lang/Class;)Ljava/lang/Object;
      // 032: checkcast com/l7tech/message/SecurityKnob
      // 035: astore 5
      // 037: aload 5
      // 039: ifnull 04d
      // 03c: aload 5
      // 03e: invokeinterface com/l7tech/message/SecurityKnob.getProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 043: ifnonnull 05e
      // 046: goto 04d
      // 049: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 04c: athrow
      // 04d: aload 0
      // 04e: getfield com/l7tech/server/policy/assertion/ServerRoutingAssertion.logger Ljava/util/logging/Logger;
      // 051: getstatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.L [Ljava/lang/String;
      // 054: bipush 2
      // 055: aaload
      // 056: invokevirtual java/util/logging/Logger.finest (Ljava/lang/String;)V
      // 059: return
      // 05a: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05d: athrow
      // 05e: iload 2
      // 05f: ifne 074
      // 062: aload 0
      // 063: aload 1
      // 064: aload 5
      // 066: invokeinterface com/l7tech/message/SecurityKnob.getProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 06b: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.a (Lcom/l7tech/message/Message;Lcom/l7tech/security/xml/processor/ProcessorResult;)Z
      // 06e: pop
      // 06f: return
      // 070: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 073: athrow
      // 074: iload 2
      // 075: bipush 1
      // 076: if_icmpne 0a3
      // 079: aload 5
      // 07b: invokeinterface com/l7tech/message/SecurityKnob.getProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 080: astore 6
      // 082: aload 6
      // 084: ifnull 0a2
      // 087: aload 0
      // 088: aload 1
      // 089: aload 6
      // 08b: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getProcessedActor ()Lcom/l7tech/security/xml/SecurityActor; 1
      // 090: aload 6
      // 092: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getProcessedActorUri ()Ljava/lang/String; 1
      // 097: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.a (Lcom/l7tech/message/Message;Lcom/l7tech/security/xml/SecurityActor;Ljava/lang/String;)Z
      // 09a: pop
      // 09b: goto 0a2
      // 09e: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a1: athrow
      // 0a2: return
      // 0a3: iload 2
      // 0a4: bipush 2
      // 0a5: if_icmpeq 0c8
      // 0a8: aload 0
      // 0a9: getstatic com/l7tech/gateway/common/audit/AssertionMessages.EXCEPTION_WARNING_WITH_MORE_INFO Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0ac: bipush 1
      // 0ad: anewarray 208
      // 0b0: dup
      // 0b1: bipush 0
      // 0b2: iload 2
      // 0b3: getstatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.L [Ljava/lang/String;
      // 0b6: bipush 19
      // 0b8: aaload
      // 0b9: swap
      // 0ba: invokedynamic makeConcatWithConstants (Ljava/lang/String;I)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" ]
      // 0bf: aastore
      // 0c0: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0c3: return
      // 0c4: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c7: athrow
      // 0c8: aload 1
      // 0c9: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 0cc: astore 6
      // 0ce: aload 0
      // 0cf: aload 1
      // 0d0: aload 5
      // 0d2: invokeinterface com/l7tech/message/SecurityKnob.getProcessorResult ()Lcom/l7tech/security/xml/processor/ProcessorResult; 1
      // 0d7: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.a (Lcom/l7tech/message/Message;Lcom/l7tech/security/xml/processor/ProcessorResult;)Z
      // 0da: ifne 0f3
      // 0dd: aload 0
      // 0de: getstatic com/l7tech/gateway/common/audit/AssertionMessages.HTTPROUTE_NON_SOAP_WRONG_POLICY Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0e1: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 0e4: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 0e7: dup
      // 0e8: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0eb: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;)V
      // 0ee: athrow
      // 0ef: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f2: athrow
      // 0f3: aload 3
      // 0f4: ifnonnull 0fc
      // 0f7: return
      // 0f8: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0fb: athrow
      // 0fc: aload 6
      // 0fe: invokeinterface com/l7tech/message/XmlKnob.getDocumentReadOnly ()Lorg/w3c/dom/Document; 1
      // 103: astore 7
      // 105: aload 7
      // 107: aload 3
      // 108: invokestatic com/l7tech/xml/soap/SoapUtil.getSecurityElement (Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 10b: astore 8
      // 10d: goto 129
      // 110: astore 9
      // 112: aload 0
      // 113: getstatic com/l7tech/gateway/common/audit/AssertionMessages.HTTPROUTE_NON_SOAP_WRONG_POLICY Lcom/l7tech/gateway/common/audit/Messages$M;
      // 116: aconst_null
      // 117: aload 9
      // 119: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 11c: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 11f: dup
      // 120: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 123: aload 9
      // 125: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;Ljava/lang/Throwable;)V
      // 128: athrow
      // 129: aload 8
      // 12b: ifnull 151
      // 12e: aload 0
      // 12f: getstatic com/l7tech/gateway/common/audit/AssertionMessages.HTTPROUTE_PROMOTING_ACTOR Lcom/l7tech/gateway/common/audit/Messages$M;
      // 132: bipush 1
      // 133: anewarray 208
      // 136: dup
      // 137: bipush 0
      // 138: aload 3
      // 139: aastore
      // 13a: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 13d: aload 6
      // 13f: invokeinterface com/l7tech/message/XmlKnob.getDocumentWritable ()Lorg/w3c/dom/Document; 1
      // 144: pop
      // 145: aload 8
      // 147: invokestatic com/l7tech/xml/soap/SoapUtil.nukeActorAttribute (Lorg/w3c/dom/Element;)V
      // 14a: goto 160
      // 14d: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 150: athrow
      // 151: aload 0
      // 152: getstatic com/l7tech/gateway/common/audit/AssertionMessages.HTTPROUTE_NO_SECURITY_HEADER Lcom/l7tech/gateway/common/audit/Messages$M;
      // 155: bipush 1
      // 156: anewarray 208
      // 159: dup
      // 15a: bipush 0
      // 15b: aload 3
      // 15c: aastore
      // 15d: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 160: return
      // try (114 -> 117): 117 com/l7tech/util/InvalidDocumentFormatException
      // try (98 -> 112): 112 com/l7tech/util/InvalidDocumentFormatException
      // try (75 -> 93): 93 com/l7tech/util/InvalidDocumentFormatException
      // try (61 -> 71): 72 com/l7tech/util/InvalidDocumentFormatException
      // try (44 -> 53): 53 com/l7tech/util/InvalidDocumentFormatException
      // try (29 -> 42): 42 com/l7tech/util/InvalidDocumentFormatException
      // try (27 -> 32): 33 com/l7tech/util/InvalidDocumentFormatException
      // try (11 -> 20): 20 com/l7tech/util/InvalidDocumentFormatException
      // try (0 -> 4): 4 com/l7tech/util/InvalidDocumentFormatException
      // try (122 -> 126): 127 com/l7tech/util/InvalidDocumentFormatException
      // try (139 -> 156): 156 com/l7tech/util/InvalidDocumentFormatException
   }

   private boolean a(Message param1, SecurityActor param2, String param3) throws SAXException, 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:
      // 000: aload 1
      // 001: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 004: invokeinterface com/l7tech/message/XmlKnob.getDocumentReadOnly ()Lorg/w3c/dom/Document; 1
      // 009: astore 4
      // 00b: aload 4
      // 00d: invokestatic com/l7tech/xml/soap/SoapUtil.isSoapMessageMaybe (Lorg/w3c/dom/Document;)Z
      // 010: ifne 019
      // 013: bipush 0
      // 014: ireturn
      // 015: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 018: athrow
      // 019: aload 2
      // 01a: getstatic com/l7tech/security/xml/SecurityActor.L7ACTOR Lcom/l7tech/security/xml/SecurityActor;
      // 01d: if_acmpne 09f
      // 020: aload 4
      // 022: aload 3
      // 023: invokestatic com/l7tech/xml/soap/SoapUtil.getSecurityElement (Lorg/w3c/dom/Document;Ljava/lang/String;)Lorg/w3c/dom/Element;
      // 026: astore 5
      // 028: aload 5
      // 02a: ifnull 09c
      // 02d: aload 4
      // 02f: invokestatic com/l7tech/xml/soap/SoapUtil.getSecurityElement (Lorg/w3c/dom/Document;)Lorg/w3c/dom/Element;
      // 032: astore 6
      // 034: aload 6
      // 036: ifnull 047
      // 039: aload 6
      // 03b: aload 5
      // 03d: if_acmpne 08b
      // 040: goto 047
      // 043: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 046: athrow
      // 047: aload 1
      // 048: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 04b: invokeinterface com/l7tech/message/XmlKnob.getDocumentWritable ()Lorg/w3c/dom/Document; 1
      // 050: astore 7
      // 052: getstatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.d Z
      // 055: ifne 072
      // 058: aload 7
      // 05a: aload 4
      // 05c: if_acmpeq 072
      // 05f: goto 066
      // 062: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 065: athrow
      // 066: new java/lang/AssertionError
      // 069: dup
      // 06a: invokespecial java/lang/AssertionError.<init> ()V
      // 06d: athrow
      // 06e: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 071: athrow
      // 072: aload 5
      // 074: invokestatic com/l7tech/xml/soap/SoapUtil.nukeActorAttribute (Lorg/w3c/dom/Element;)V
      // 077: aload 1
      // 078: invokevirtual com/l7tech/message/Message.getSecurityKnob ()Lcom/l7tech/message/SecurityKnob;
      // 07b: aload 3
      // 07c: aconst_null
      // 07d: invokestatic com/l7tech/security/xml/decorator/WssDecoratorUtils.promoteDecorationResults (Lcom/l7tech/message/SecurityKnob;Ljava/lang/String;Ljava/lang/String;)V
      // 080: aload 5
      // 082: getstatic com/l7tech/util/SoapConstants.MUSTUNDERSTAND_ATTR_NAME Ljava/lang/String;
      // 085: invokestatic com/l7tech/xml/soap/SoapUtil.removeSoapAttr (Lorg/w3c/dom/Element;Ljava/lang/String;)V
      // 088: goto 09c
      // 08b: aload 0
      // 08c: getfield com/l7tech/server/policy/assertion/ServerRoutingAssertion.logger Ljava/util/logging/Logger;
      // 08f: getstatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.L [Ljava/lang/String;
      // 092: astore 8
      // 094: aload 8
      // 096: bipush 18
      // 098: aaload
      // 099: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 09c: goto 0e5
      // 09f: aload 2
      // 0a0: getstatic com/l7tech/security/xml/SecurityActor.NOACTOR Lcom/l7tech/security/xml/SecurityActor;
      // 0a3: if_acmpne 0e5
      // 0a6: aload 4
      // 0a8: invokestatic com/l7tech/xml/soap/SoapUtil.getSecurityElement (Lorg/w3c/dom/Document;)Lorg/w3c/dom/Element;
      // 0ab: astore 5
      // 0ad: aload 5
      // 0af: ifnull 0e5
      // 0b2: aload 1
      // 0b3: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 0b6: invokeinterface com/l7tech/message/XmlKnob.getDocumentWritable ()Lorg/w3c/dom/Document; 1
      // 0bb: astore 6
      // 0bd: getstatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.d Z
      // 0c0: ifne 0dd
      // 0c3: aload 6
      // 0c5: aload 4
      // 0c7: if_acmpeq 0dd
      // 0ca: goto 0d1
      // 0cd: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0d0: athrow
      // 0d1: new java/lang/AssertionError
      // 0d4: dup
      // 0d5: invokespecial java/lang/AssertionError.<init> ()V
      // 0d8: athrow
      // 0d9: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0dc: athrow
      // 0dd: aload 5
      // 0df: getstatic com/l7tech/util/SoapConstants.MUSTUNDERSTAND_ATTR_NAME Ljava/lang/String;
      // 0e2: invokestatic com/l7tech/xml/soap/SoapUtil.removeSoapAttr (Lorg/w3c/dom/Element;Ljava/lang/String;)V
      // 0e5: bipush 1
      // 0e6: ireturn
      // 0e7: astore 5
      // 0e9: aload 0
      // 0ea: getstatic com/l7tech/gateway/common/audit/AssertionMessages.HTTPROUTE_NON_SOAP_WRONG_FORMAT Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0ed: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 0f0: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 0f3: dup
      // 0f4: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0f7: aload 5
      // 0f9: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 0fc: getstatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.L [Ljava/lang/String;
      // 0ff: bipush 14
      // 101: aaload
      // 102: swap
      // 103: invokedynamic makeConcatWithConstants (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" ]
      // 108: aload 5
      // 10a: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 10d: athrow
      // try (83 -> 93): 93 com/l7tech/util/InvalidDocumentFormatException
      // try (81 -> 86): 87 com/l7tech/util/InvalidDocumentFormatException
      // try (37 -> 47): 47 com/l7tech/util/InvalidDocumentFormatException
      // try (35 -> 40): 41 com/l7tech/util/InvalidDocumentFormatException
      // try (23 -> 28): 29 com/l7tech/util/InvalidDocumentFormatException
      // try (4 -> 9): 9 com/l7tech/util/InvalidDocumentFormatException
      // try (11 -> 99): 100 com/l7tech/util/InvalidDocumentFormatException
   }

   private boolean a(Message param1, ProcessorResult param2) throws SAXException, 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 1
      // 01: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 04: invokeinterface com/l7tech/message/XmlKnob.getDocumentReadOnly ()Lorg/w3c/dom/Document; 1
      // 09: astore 3
      // 0a: aload 3
      // 0b: invokestatic com/l7tech/xml/soap/SoapUtil.isSoapMessageMaybe (Lorg/w3c/dom/Document;)Z
      // 0e: ifne 17
      // 11: bipush 0
      // 12: ireturn
      // 13: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 16: athrow
      // 17: aload 0
      // 18: aload 3
      // 19: aload 2
      // 1a: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.a (Lorg/w3c/dom/Document;Lcom/l7tech/security/xml/processor/ProcessorResult;)Lorg/w3c/dom/Element;
      // 1d: astore 4
      // 1f: aload 4
      // 21: ifnull 64
      // 24: aload 1
      // 25: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 28: invokeinterface com/l7tech/message/XmlKnob.getDocumentWritable ()Lorg/w3c/dom/Document; 1
      // 2d: pop
      // 2e: aload 4
      // 30: invokeinterface org/w3c/dom/Element.getParentNode ()Lorg/w3c/dom/Node; 1
      // 35: aload 4
      // 37: invokeinterface org/w3c/dom/Node.removeChild (Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; 2
      // 3c: pop
      // 3d: aload 3
      // 3e: invokestatic com/l7tech/xml/soap/SoapUtil.removeEmptySoapHeader (Lorg/w3c/dom/Document;)Z
      // 41: pop
      // 42: aload 1
      // 43: invokevirtual com/l7tech/message/Message.getSecurityKnob ()Lcom/l7tech/message/SecurityKnob;
      // 46: aload 2
      // 47: ifnonnull 59
      // 4a: goto 51
      // 4d: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 50: athrow
      // 51: aconst_null
      // 52: goto 5f
      // 55: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 58: athrow
      // 59: aload 2
      // 5a: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getProcessedActorUri ()Ljava/lang/String; 1
      // 5f: invokeinterface com/l7tech/message/SecurityKnob.removeDecorationResults (Ljava/lang/String;)V 2
      // 64: bipush 1
      // 65: ireturn
      // 66: astore 4
      // 68: aload 0
      // 69: getstatic com/l7tech/gateway/common/audit/AssertionMessages.HTTPROUTE_NON_SOAP_WRONG_FORMAT Lcom/l7tech/gateway/common/audit/Messages$M;
      // 6c: invokevirtual com/l7tech/server/policy/assertion/ServerRoutingAssertion.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 6f: new com/l7tech/server/policy/assertion/AssertionStatusException
      // 72: dup
      // 73: getstatic com/l7tech/policy/assertion/AssertionStatus.SERVER_ERROR Lcom/l7tech/policy/assertion/AssertionStatus;
      // 76: aload 4
      // 78: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 7b: getstatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.L [Ljava/lang/String;
      // 7e: bipush 4
      // 7f: aaload
      // 80: swap
      // 81: invokedynamic makeConcatWithConstants (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" ]
      // 86: aload 4
      // 88: invokespecial com/l7tech/server/policy/assertion/AssertionStatusException.<init> (Lcom/l7tech/policy/assertion/AssertionStatus;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 8b: athrow
      // try (18 -> 39): 39 com/l7tech/util/InvalidDocumentFormatException
      // try (16 -> 34): 35 com/l7tech/util/InvalidDocumentFormatException
      // try (4 -> 9): 9 com/l7tech/util/InvalidDocumentFormatException
      // try (11 -> 45): 46 com/l7tech/util/InvalidDocumentFormatException
   }

   private Element a(Document param1, ProcessorResult param2) throws InvalidDocumentFormatException {
      // $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 2
      // 01: ifnull 17
      // 04: aload 2
      // 05: invokeinterface com/l7tech/security/xml/processor/ProcessorResult.getProcessedActor ()Lcom/l7tech/security/xml/SecurityActor; 1
      // 0a: getstatic com/l7tech/security/xml/SecurityActor.L7ACTOR Lcom/l7tech/security/xml/SecurityActor;
      // 0d: if_acmpeq 20
      // 10: goto 17
      // 13: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 16: athrow
      // 17: aload 1
      // 18: invokestatic com/l7tech/xml/soap/SoapUtil.getSecurityElement (Lorg/w3c/dom/Document;)Lorg/w3c/dom/Element;
      // 1b: areturn
      // 1c: invokestatic com/l7tech/server/policy/assertion/ServerRoutingAssertion.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1f: athrow
      // 20: aload 1
      // 21: invokestatic com/l7tech/xml/soap/SoapUtil.getSecurityElementForL7 (Lorg/w3c/dom/Document;)Lorg/w3c/dom/Element;
      // 24: areturn
      // try (0 -> 6): 7 com/l7tech/util/InvalidDocumentFormatException
      // try (2 -> 12): 12 com/l7tech/util/InvalidDocumentFormatException
   }

   protected void doAttachSamlSenderVouches(RoutingAssertionWithSamlSV var1, Message var2, LoginCredentials var3, SignerInfo var4) throws SAXException, IOException, SignatureException, CertificateException, UnrecoverableKeyException {
      try {
         if (var3 == null) {
            this.logAndAudit(AssertionMessages.HTTPROUTE_SAML_SV_NOT_AUTH);
            return;
         }
      } catch (UnknownHostException var15) {
         throw b(var15);
      }

      Document var5 = var2.getXmlKnob().getDocumentWritable();
      SamlAssertionGenerator var6 = new SamlAssertionGenerator(var4);
      Options var7 = new Options();
      var7.setAttestingEntity(var4);
      TcpKnob var8 = (TcpKnob)var2.getKnob(TcpKnob.class);
      if (var8 != null) {
         try {
            InetAddress var9 = InetAddress.getByName(var8.getRemoteAddress());
            var7.setClientAddress(var9);
         } catch (UnknownHostException var11) {
            this.logAndAudit(AssertionMessages.HTTPROUTE_CANT_RESOLVE_IP, null, var11);
         }
      }

      Options var10000;
      KeyInfoInclusionType var10001;
      label51: {
         try {
            var7.setVersion(var1.getSamlAssertionVersion());
            var7.setNotAfterSeconds(var1.getSamlAssertionExpiry() * 60);
            var10000 = var7;
            if (var1.isUseThumbprintInSamlSignature()) {
               var10001 = KeyInfoInclusionType.STR_THUMBPRINT;
               break label51;
            }
         } catch (UnknownHostException var14) {
            throw b(var14);
         }

         var10001 = KeyInfoInclusionType.CERT;
      }

      label44: {
         try {
            var10000.setIssuerKeyInfoType(var10001);
            if (var1.isUseThumbprintInSamlSubject()) {
               var17 = KeyInfoInclusionType.STR_THUMBPRINT;
               break label44;
            }
         } catch (UnknownHostException var13) {
            throw b(var13);
         }

         var17 = KeyInfoInclusionType.CERT;
      }

      KeyInfoInclusionType var16 = var17;

      try {
         if (var1.getRecipientContext() != null) {
            var7.setSecurityHeaderActor(var1.getRecipientContext().getActor());
         }
      } catch (UnknownHostException var12) {
         throw b(var12);
      }

      SubjectStatement var10 = SubjectStatement.createAuthenticationStatement(
         var3, SubjectStatement.SENDER_VOUCHES, var16, NameIdentifierInclusionType.FROM_CREDS, null, null, null, null
      );
      var6.attachStatement(var5, var10, var7);
   }

   protected KerberosServiceTicket getDelegatedKerberosTicket(PolicyEnforcementContext var1, String var2) throws KerberosException {
      ProcessorResult var4 = var1.getRequest().getSecurityKnob().getProcessorResult();
      AuthenticationContext var5 = var1.getAuthenticationContext(var1.getRequest());
      boolean var6 = false;
      KerberosServiceTicket var7 = null;

      for (LoginCredentials var10 : var5.getCredentials()) {
         if (var10.getPayload() instanceof KerberosServiceTicket) {
            var7 = (KerberosServiceTicket)var10.getPayload();
            var6 = var10.getSecurityToken().getClass().isAssignableFrom(KerberosAuthenticationSecurityToken.class);
         }
      }

      label38: {
         try {
            if (var4 == null || var6) {
               break label38;
            }
         } catch (KerberosException var12) {
            throw b(var12);
         }

         var7 = this.getLastKerberosSigningSecurityToken(var4);
      }

      try {
         if (var7 == null) {
            throw new KerberosException(L[7]);
         }
      } catch (KerberosException var11) {
         throw b(var11);
      }

      KerberosServiceTicket var3;
      if (var6) {
         var3 = var7;
      } else {
         var3 = this.wrapKerberosServiceTicketForDelegation(var7, var2);
      }

      return var3;
   }

   protected KerberosServiceTicket getLastKerberosSigningSecurityToken(ProcessorResult var1) throws KerberosException {
      KerberosServiceTicket var2 = null;
      XmlSecurityToken[] var3 = var1.getXmlSecurityTokens();

      try {
         if (var3 == null) {
            throw new KerberosException(L[12]);
         }
      } catch (KerberosException var8) {
         throw b(var8);
      }

      for (XmlSecurityToken var7 : var3) {
         if (var7 instanceof KerberosSigningSecurityToken) {
            var2 = ((KerberosSigningSecurityToken)var7).getServiceTicket();
         }
      }

      return var2;
   }

   protected KerberosServiceTicket wrapKerberosServiceTicketForDelegation(KerberosServiceTicket var1, String var2) throws KerberosException {
      KerberosRoutingClient var4 = new KerberosRoutingClient();
      return var4.getKerberosServiceTicket(KerberosRoutingClient.getGSSServiceName(L[15], var2), var1);
   }

   protected int getConnectionTimeout(Map var1) {
      return this.a(L[25], 0, Integer.MAX_VALUE, 0);
   }

   protected int getTimeout(Map var1) {
      return this.a(L[26], 0, Integer.MAX_VALUE, 0);
   }

   protected int getMaxDuration(Map var1) {
      return this.a(L[0], 1, 86400000, 0);
   }

   protected int getStaleCheckCount() {
      return this.a(L[16], 0, 1000, 1);
   }

   private int a(String var1, int var2, int var3, int var4) {
      int var5 = var4;

      try {
         String var6 = ConfigFactory.getProperty(var1, null);
         if (var6 != null) {
            var5 = Integer.parseInt(var6);
            boolean var7 = false;
            if (var5 < var2) {
               var7 = true;
               int var8 = var4;
               int var9 = var2;
               String var10 = var1;
               String[] var24 = L;
               this.logger.warning(var24[21] + var10 + var24[9] + var9 + var24[17] + var8 + var24[23]);
            } else if (var5 > var3) {
               var7 = true;
               int var11 = var4;
               int var12 = var3;
               String var13 = var1;
               String[] var25 = L;
               this.logger.warning(var25[8] + var13 + var25[5] + var12 + var25[1] + var11 + var25[6]);
            }

            if (var7) {
               var5 = var4;
            }
         }
      } catch (SecurityException var21) {
         Logger var26 = this.logger;
         String var14 = var21.getMessage();
         int var15 = var4;
         String var16 = var1;
         String[] var23 = L;
         var26.warning(var23[13] + var16 + var23[1] + var15 + var23[20] + var14);
      } catch (NumberFormatException var22) {
         Logger var10000 = this.logger;
         String var17 = var22.getMessage();
         int var18 = var4;
         String var19 = var1;
         String[] var20 = L;
         var10000.warning(var20[22] + var19 + var20[1] + var18 + var20[3] + var17);
      }

      return var5;
   }

   protected void firePostRouting(PolicyEnforcementContext var1, Message var2, URL var3, int var4) {
      this.messageProcessingEventChannel.publishEvent(new PostRoutingEvent(this, var1, var2, var3, var4));
   }

   protected void firePreRouting(PolicyEnforcementContext var1, Message var2, URL var3) {
      this.messageProcessingEventChannel.publishEvent(new PreRoutingEvent(this, var1, var2, var3));
   }

   static {
      String[] var5 = new String[27];
      int var3 = 0;
      String var2 = ".E\"\u001eI\u0007\u0018?n\u0018\u0019\\>\u0010(D\u0018`\u0006M\u001eN#\u0017 \n\t\u000e[+\f+^M\u001d\\&\f\"\nJ8\u0014A\u0004\u001bM#\u0017 \n\u001e\u000e^?\u000b.^\u0014KU/\u0018#O\u001fKM8\u0016$O\u001e\u0018T$\u001ek\n\u0003\u0004\u001d\"\u001c&N\b\u0019\u001d:\u000b(I\b\u0018N/\u001d\r`\u0006M\u000eO8\u00165\n\u0004\u0018\u0007j\"\u0012D\f\tQ/Y3EM\u0019X'\u00161OM8X)\f5C\u0019\u0012\u001d\"\u001c&N\b\u0019\u0007j\u0019`\u0006M\u0002Nj8\u0005e;.\u001d>\u0011\"\n\u0000\nE#\u00142GML\u0002`\u0004/\tEM X8\u001b\"X\u0002\u0018\u001d9\u001c5\\\u0004\bXj\r.I\u0006\u000eIj\u001f(_\u0003\u000f\u001d#\u0017g^\u0005\u000e\u001d8\u001c6_\b\u0018I\u001f\u0004E\u0003\rT-\f5O\tKK+\u00152OM\rR8Y7X\u0002\u001bX8\r>\nJ\u0019`\u0006M\u0002Nj;\u0002f\"<\u001d>\u0011\"\n\u0000\u0002S#\u00142GML\f&_\t\u0002I\f\u0018$^\u0002\u0019D\u001d*O\u001e\u0018\\-\u001c\u0017X\u0002\bX9\n.D\n.K/\u00173i\u0005\nS$\u001c+#\tEM\u0018X)\f5C\u0019\u0012\u001d>\u0016,O\u0003\u0018\u001d,\u00162D\tKT$Y5O\u001c\u001eX9\r\u0018\u0004K\u0003\u0005R>Y&I\u000e\u000eN9Y7X\u0002\u001bX8\r>\nJ$\u0012D\f\tQ/Y3EM\bQ/\u0018)\n\u0018\u001b\u001d\u0019\u001c$_\u001f\u0002I3Y/O\f\u000fX8Cg\u0004/^\u0019\u001b\u0011.E>\u001f\\&\u001c\u0004B\b\bV\t\u00162D\u0019\u0018`\u0006M\u001eN#\u0017 \n\t\u000e[+\f+^M\u001d\\&\f\"\nJ\u00880OM\b\\$^3\n\u001d\u0019R'\u00163OM\u0007\nj\n\"IM\u0003X+\u001d\"XM\nNj\u0017(\n\f\bI%\u000bgH\b\b\\?\n\"\n\u0019\u0003X8\u001cgC\u001eK\\&\u000b\"K\t\u0012\u001d+Y)E\f\bI%\u000bgE\u0003\u000e\u001d:\u000b\"Y\b\u0005IdY3B\b\u0019Xj\u0014&SM\tXj\n(G\b\u001fU#\u0017 \n\u001a\u0019R$\u001eg]\u0004\u001fUj\r/C\u001eKM%\u0015.I\u0014$\u0012D\b\u0013M/\u001a3O\tKN/\u001a\u000fO\f\u000fX81&D\t\u0007T$\u001e\bZ\u0019\u0002R$Cg\r`\u0006M\u000eO8\u00165\n\u0004\u0018\u0007j\u001f\u0004E\u0003\rT-\f5O\tKK+\u00152OM\rR8Y7X\u0002\u001bX8\r>\nJ\u0017\u0004K\u0003\u0005R>Y7K\u001f\u0018Xj\t5E\u001d\u000eO>\u0000g\r\u0002`\u00044\u0014A\u0004\u001bM#\u0017 \n\u001e\u000e^?\u000b.^\u0014KU/\u0018#O\u001fKM8\u0016$O\u001e\u0018T$\u001ek\n\u0000\u000eN9\u0018 OM\u0005R>Y\u001fg!";
      int var4 = ".E\"\u001eI\u0007\u0018?n\u0018\u0019\\>\u0010(D\u0018`\u0006M\u001eN#\u0017 \n\t\u000e[+\f+^M\u001d\\&\f\"\nJ8\u0014A\u0004\u001bM#\u0017 \n\u001e\u000e^?\u000b.^\u0014KU/\u0018#O\u001fKM8\u0016$O\u001e\u0018T$\u001ek\n\u0003\u0004\u001d\"\u001c&N\b\u0019\u001d:\u000b(I\b\u0018N/\u001d\r`\u0006M\u000eO8\u00165\n\u0004\u0018\u0007j\"\u0012D\f\tQ/Y3EM\u0019X'\u00161OM8X)\f5C\u0019\u0012\u001d\"\u001c&N\b\u0019\u0007j\u0019`\u0006M\u0002Nj8\u0005e;.\u001d>\u0011\"\n\u0000\nE#\u00142GML\u0002`\u0004/\tEM X8\u001b\"X\u0002\u0018\u001d9\u001c5\\\u0004\bXj\r.I\u0006\u000eIj\u001f(_\u0003\u000f\u001d#\u0017g^\u0005\u000e\u001d8\u001c6_\b\u0018I\u001f\u0004E\u0003\rT-\f5O\tKK+\u00152OM\rR8Y7X\u0002\u001bX8\r>\nJ\u0019`\u0006M\u0002Nj;\u0002f\"<\u001d>\u0011\"\n\u0000\u0002S#\u00142GML\f&_\t\u0002I\f\u0018$^\u0002\u0019D\u001d*O\u001e\u0018\\-\u001c\u0017X\u0002\bX9\n.D\n.K/\u00173i\u0005\nS$\u001c+#\tEM\u0018X)\f5C\u0019\u0012\u001d>\u0016,O\u0003\u0018\u001d,\u00162D\tKT$Y5O\u001c\u001eX9\r\u0018\u0004K\u0003\u0005R>Y&I\u000e\u000eN9Y7X\u0002\u001bX8\r>\nJ$\u0012D\f\tQ/Y3EM\bQ/\u0018)\n\u0018\u001b\u001d\u0019\u001c$_\u001f\u0002I3Y/O\f\u000fX8Cg\u0004/^\u0019\u001b\u0011.E>\u001f\\&\u001c\u0004B\b\bV\t\u00162D\u0019\u0018`\u0006M\u001eN#\u0017 \n\t\u000e[+\f+^M\u001d\\&\f\"\nJ\u00880OM\b\\$^3\n\u001d\u0019R'\u00163OM\u0007\nj\n\"IM\u0003X+\u001d\"XM\nNj\u0017(\n\f\bI%\u000bgH\b\b\\?\n\"\n\u0019\u0003X8\u001cgC\u001eK\\&\u000b\"K\t\u0012\u001d+Y)E\f\bI%\u000bgE\u0003\u000e\u001d:\u000b\"Y\b\u0005IdY3B\b\u0019Xj\u0014&SM\tXj\n(G\b\u001fU#\u0017 \n\u001a\u0019R$\u001eg]\u0004\u001fUj\r/C\u001eKM%\u0015.I\u0014$\u0012D\b\u0013M/\u001a3O\tKN/\u001a\u000fO\f\u000fX81&D\t\u0007T$\u001e\bZ\u0019\u0002R$Cg\r`\u0006M\u000eO8\u00165\n\u0004\u0018\u0007j\u001f\u0004E\u0003\rT-\f5O\tKK+\u00152OM\rR8Y7X\u0002\u001bX8\r>\nJ\u0017\u0004K\u0003\u0005R>Y7K\u001f\u0018Xj\t5E\u001d\u000eO>\u0000g\r\u0002`\u00044\u0014A\u0004\u001bM#\u0017 \n\u001e\u000e^?\u000b.^\u0014KU/\u0018#O\u001fKM8\u0016$O\u001e\u0018T$\u001ek\n\u0000\u000eN9\u0018 OM\u0005R>Y\u001fg!"
         .length();
      char var1 = 16;
      int var8 = -1;

      label39:
      while (true) {
         byte var10000 = 72;
         String var10001 = var2.substring(++var8, var8 + var1);
         byte var10002 = -1;

         while (true) {
            String var9 = b(var10000, f(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var8 += var1) >= var4) {
                     L = var5;

                     label26: {
                        try {
                           if (!ServerRoutingAssertion.class.desiredAssertionStatus()) {
                              var10 = true;
                              break label26;
                           }
                        } catch (AssertionStatusException var6) {
                           throw b(var6);
                        }

                        var10 = false;
                     }

                     d = var10;
                     return;
                  }

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

                  var2 = "k\u0000g[\fLSl\u0001MM\ffSl;AC\u001d`Iv\u0010k\u0000g[\f]Yc\u000b|G\u0015jSw\u001b";
                  var4 = "k\u0000g[\fLSl\u0001MM\ffSl;AC\u001d`Iv\u0010k\u0000g[\f]Yc\u000b|G\u0015jSw\u001b".length();
                  var1 = 22;
                  var8 = -1;
            }

            var10000 = 13;
            var10001 = var2.substring(++var8, var8 + var1);
            var10002 = 0;
         }
      }
   }

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

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

      return var10000;
   }

   private static String b(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 -> 15;
            case 1 -> 98;
            case 2 -> 37;
            case 3 -> 35;
            case 4 -> 117;
            case 5 -> 2;
            default -> 49;
         });
      }

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