package com.l7tech.server.policy.assertion;

import com.l7tech.message.Message;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.policy.assertion.OversizedTextAssertion;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.server.audit.Auditor;
import com.l7tech.server.message.AuthenticationContext;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.policy.ServerPolicyException;
import com.l7tech.util.DomUtils;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Pair;
import com.l7tech.xml.ElementCursor;
import com.l7tech.xml.InvalidXpathException;
import com.l7tech.xml.xpath.CompiledXpath;
import com.l7tech.xml.xpath.XpathExpression;
import java.io.IOException;
import java.util.Set;
import java.util.TreeSet;
import java.util.logging.Logger;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXResult;
import javax.xml.xpath.XPathExpressionException;
import org.springframework.context.ApplicationContext;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class ServerOversizedTextAssertion extends AbstractMessageTargetableServerAssertion<OversizedTextAssertion> {
   private static final Logger d;
   private final Auditor e;
   private final CompiledXpath f;
   private final long g;
   private final int h;
   private final CompiledXpath i;
   private final CompiledXpath j;
   private final boolean k;
   private final int l;
   private final int m;
   private static final String[] n;

   public ServerOversizedTextAssertion(OversizedTextAssertion var1, ApplicationContext var2) throws ServerPolicyException {
      super(var1);
      this.e = new Auditor(this, var2, d);
      String var3 = var1.makeTextXpath();

      long var10000;
      label101: {
         try {
            if (var1.isLimitAttrChars()) {
               var10000 = var1.getMaxAttrChars();
               break label101;
            }
         } catch (InvalidXpathException var17) {
            throw a(var17);
         }

         var10000 = -1L;
      }

      long var4 = var10000;

      label93: {
         try {
            if (var1.isLimitAttrNameChars()) {
               var18 = var1.getMaxAttrNameChars();
               break label93;
            }
         } catch (InvalidXpathException var16) {
            throw a(var16);
         }

         var18 = -1;
      }

      int var6 = var18;
      String var7 = var1.makeNestingXpath();
      String var8 = var1.makePayloadLimitXpath();

      try {
         CompiledXpath var10001;
         label67: {
            try {
               var19 = this;
               if (var3 == null) {
                  var10001 = null;
                  break label67;
               }
            } catch (InvalidXpathException var12) {
               throw a(var12);
            }

            var10001 = new XpathExpression(var3).compile();
         }

         label74: {
            try {
               var19.f = var10001;
               this.g = var4;
               this.h = var6;
               var20 = this;
               if (var7 == null) {
                  var10001 = null;
                  break label74;
               }
            } catch (InvalidXpathException var13) {
               throw a(var13);
            }

            var10001 = new XpathExpression(var7).compile();
         }

         label82: {
            try {
               var20.i = var10001;
               var21 = this;
               if (var8 == null) {
                  var10001 = null;
                  break label82;
               }
            } catch (InvalidXpathException var14) {
               throw a(var14);
            }

            var10001 = new XpathExpression(var8).compile();
         }

         var21.j = var10001;
         this.k = var1.isRequireValidSoapEnvelope();
      } catch (InvalidXpathException var15) {
         throw new ServerPolicyException(var1, n[0] + ExceptionUtils.getMessage(var15), var15);
      }

      int var26;
      label60: {
         try {
            var22 = this;
            if (var1.isLimitNamespaceCount()) {
               var26 = var1.getMaxNamespaceCount();
               break label60;
            }
         } catch (InvalidXpathException var11) {
            throw a(var11);
         }

         var26 = -1;
      }

      label53: {
         try {
            var22.l = var26;
            var23 = this;
            if (var1.isLimitNamespacePrefixCount()) {
               var26 = var1.getMaxNamespacePrefixCount();
               break label53;
            }
         } catch (InvalidXpathException var10) {
            throw a(var10);
         }

         var26 = -1;
      }

      var23.m = var26;
   }

   @Override
   protected AssertionStatus doCheckRequest(PolicyEnforcementContext param1, Message param2, String param3, AuthenticationContext param4) throws PolicyAssertionException, 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 0
      // 001: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.isRequest ()Z
      // 004: ifeq 029
      // 007: aload 1
      // 008: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.isPostRouting ()Z 1
      // 00d: ifeq 029
      // 010: goto 017
      // 013: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 016: athrow
      // 017: aload 0
      // 018: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 01b: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_ALREADY_ROUTED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 01e: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 021: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 024: areturn
      // 025: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 028: athrow
      // 029: aload 0
      // 02a: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.isResponse ()Z
      // 02d: ifeq 052
      // 030: aload 1
      // 031: invokeinterface com/l7tech/server/message/PolicyEnforcementContext.isPostRouting ()Z 1
      // 036: ifne 052
      // 039: goto 040
      // 03c: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 03f: athrow
      // 040: aload 0
      // 041: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 044: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_SKIP_RESPONSE_NOT_ROUTED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 047: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 04a: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 04d: areturn
      // 04e: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 051: athrow
      // 052: aload 2
      // 053: invokevirtual com/l7tech/message/Message.isXml ()Z
      // 056: ifne 073
      // 059: aload 0
      // 05a: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 05d: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_NOT_XML Lcom/l7tech/gateway/common/audit/Messages$M;
      // 060: bipush 1
      // 061: anewarray 494
      // 064: dup
      // 065: bipush 0
      // 066: aload 3
      // 067: aastore
      // 068: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 06b: getstatic com/l7tech/policy/assertion/AssertionStatus.NOT_APPLICABLE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 06e: areturn
      // 06f: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 072: athrow
      // 073: aload 2
      // 074: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 077: invokeinterface com/l7tech/message/XmlKnob.getElementCursor ()Lcom/l7tech/xml/ElementCursor; 1
      // 07c: astore 5
      // 07e: aload 5
      // 080: invokevirtual com/l7tech/xml/ElementCursor.moveToRoot ()V
      // 083: aload 0
      // 084: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.f Lcom/l7tech/xml/xpath/CompiledXpath;
      // 087: ifnull 0b4
      // 08a: aload 5
      // 08c: aload 0
      // 08d: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.f Lcom/l7tech/xml/xpath/CompiledXpath;
      // 090: invokevirtual com/l7tech/xml/ElementCursor.matches (Lcom/l7tech/xml/xpath/CompiledXpath;)Z
      // 093: ifeq 0b4
      // 096: goto 09d
      // 099: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 09c: athrow
      // 09d: aload 0
      // 09e: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 0a1: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_NODE_OR_ATTRIBUTE Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0a4: bipush 1
      // 0a5: anewarray 494
      // 0a8: dup
      // 0a9: bipush 0
      // 0aa: aload 3
      // 0ab: aastore
      // 0ac: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0af: aload 0
      // 0b0: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0b3: areturn
      // 0b4: aload 0
      // 0b5: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.g J
      // 0b8: lconst_0
      // 0b9: lcmp
      // 0ba: ifge 0cb
      // 0bd: aload 0
      // 0be: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.h I
      // 0c1: iflt 0fb
      // 0c4: goto 0cb
      // 0c7: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ca: athrow
      // 0cb: aload 0
      // 0cc: aload 5
      // 0ce: aload 0
      // 0cf: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.g J
      // 0d2: aload 0
      // 0d3: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.h I
      // 0d6: i2l
      // 0d7: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Lcom/l7tech/xml/ElementCursor;JJ)Z
      // 0da: ifeq 0fb
      // 0dd: goto 0e4
      // 0e0: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0e3: athrow
      // 0e4: aload 0
      // 0e5: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 0e8: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_NODE_OR_ATTRIBUTE Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0eb: bipush 1
      // 0ec: anewarray 494
      // 0ef: dup
      // 0f0: bipush 0
      // 0f1: aload 3
      // 0f2: aastore
      // 0f3: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0f6: aload 0
      // 0f7: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0fa: areturn
      // 0fb: aload 0
      // 0fc: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.i Lcom/l7tech/xml/xpath/CompiledXpath;
      // 0ff: ifnull 12c
      // 102: aload 5
      // 104: aload 0
      // 105: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.i Lcom/l7tech/xml/xpath/CompiledXpath;
      // 108: invokevirtual com/l7tech/xml/ElementCursor.matches (Lcom/l7tech/xml/xpath/CompiledXpath;)Z
      // 10b: ifeq 12c
      // 10e: goto 115
      // 111: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 114: athrow
      // 115: aload 0
      // 116: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 119: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_XML_NESTING_DEPTH_EXCEEDED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 11c: bipush 1
      // 11d: anewarray 494
      // 120: dup
      // 121: bipush 0
      // 122: aload 3
      // 123: aastore
      // 124: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 127: aload 0
      // 128: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 12b: areturn
      // 12c: aload 0
      // 12d: aload 2
      // 12e: aload 3
      // 12f: aload 5
      // 131: aload 0
      // 132: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 135: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Lcom/l7tech/message/Message;Ljava/lang/String;Lcom/l7tech/xml/ElementCursor;Lcom/l7tech/server/audit/Auditor;)Lcom/l7tech/policy/assertion/AssertionStatus;
      // 138: areturn
      // 139: astore 5
      // 13b: aload 0
      // 13c: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.isRequest ()Z
      // 13f: ifeq 153
      // 142: aload 0
      // 143: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 146: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATH_REQUEST_NOT_XML Lcom/l7tech/gateway/common/audit/Messages$M;
      // 149: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 14c: goto 17d
      // 14f: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 152: athrow
      // 153: aload 0
      // 154: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.isResponse ()Z
      // 157: ifeq 16b
      // 15a: aload 0
      // 15b: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 15e: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATH_RESPONSE_NOT_XML Lcom/l7tech/gateway/common/audit/Messages$M;
      // 161: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 164: goto 17d
      // 167: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 16a: athrow
      // 16b: aload 0
      // 16c: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 16f: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATH_MESSAGE_NOT_XML Lcom/l7tech/gateway/common/audit/Messages$M;
      // 172: bipush 1
      // 173: anewarray 494
      // 176: dup
      // 177: bipush 0
      // 178: aload 3
      // 179: aastore
      // 17a: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 17d: aload 0
      // 17e: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 181: areturn
      // 182: astore 5
      // 184: aload 0
      // 185: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 188: getstatic com/l7tech/gateway/common/audit/AssertionMessages.XPATH_PATTERN_INVALID Lcom/l7tech/gateway/common/audit/Messages$M;
      // 18b: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;)V
      // 18e: getstatic com/l7tech/policy/assertion/AssertionStatus.FAILED Lcom/l7tech/policy/assertion/AssertionStatus;
      // 191: areturn
      // 192: astore 5
      // 194: aload 0
      // 195: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.e Lcom/l7tech/server/audit/Auditor;
      // 198: getstatic com/l7tech/gateway/common/audit/AssertionMessages.EXCEPTION_SEVERE_WITH_MORE_INFO Lcom/l7tech/gateway/common/audit/Messages$M;
      // 19b: bipush 1
      // 19c: anewarray 494
      // 19f: dup
      // 1a0: bipush 0
      // 1a1: aload 5
      // 1a3: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 1a6: aastore
      // 1a7: aload 5
      // 1a9: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1ac: aload 0
      // 1ad: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 1b0: areturn
      // try (55 -> 65): 66 org/xml/sax/SAXException
      // try (34 -> 49): 49 org/xml/sax/SAXException
      // try (20 -> 32): 32 org/xml/sax/SAXException
      // try (17 -> 23): 24 org/xml/sax/SAXException
      // try (3 -> 15): 15 org/xml/sax/SAXException
      // try (0 -> 6): 7 org/xml/sax/SAXException
      // try (51 -> 80): 149 org/xml/sax/SAXException
      // try (86 -> 101): 102 org/xml/sax/SAXException
      // try (81 -> 89): 90 org/xml/sax/SAXException
      // try (81 -> 116): 149 org/xml/sax/SAXException
      // try (117 -> 125): 126 org/xml/sax/SAXException
      // try (117 -> 140): 149 org/xml/sax/SAXException
      // try (141 -> 148): 149 org/xml/sax/SAXException
      // try (51 -> 80): 183 javax/xml/xpath/XPathExpressionException
      // try (81 -> 116): 183 javax/xml/xpath/XPathExpressionException
      // try (117 -> 140): 183 javax/xml/xpath/XPathExpressionException
      // try (141 -> 148): 183 javax/xml/xpath/XPathExpressionException
      // try (51 -> 80): 190 javax/xml/transform/TransformerConfigurationException
      // try (81 -> 116): 190 javax/xml/transform/TransformerConfigurationException
      // try (117 -> 140): 190 javax/xml/transform/TransformerConfigurationException
      // try (141 -> 148): 190 javax/xml/transform/TransformerConfigurationException
      // try (150 -> 158): 158 org/xml/sax/SAXException
      // try (160 -> 168): 168 org/xml/sax/SAXException
   }

   private boolean a(ElementCursor var1, long var2, long var4) throws TransformerConfigurationException {
      DOMSource var6 = new DOMSource(var1.asDomElement().getOwnerDocument());
      SAXResult var7 = new SAXResult(new al(this, var2, var4));

      try {
         TransformerFactory.newInstance().newTransformer().transform(var6, var7);
         return false;
      } catch (TransformerException var9) {
         return true;
      }
   }

   AssertionStatus a(Message param1, String param2, ElementCursor param3, Auditor param4) throws XPathExpressionException, IOException, SAXException {
      // $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/ServerOversizedTextAssertion.k Z
      // 04: ifeq 7b
      // 07: aload 1
      // 08: invokevirtual com/l7tech/message/Message.isSoap ()Z
      // 0b: ifne 2e
      // 0e: goto 15
      // 11: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14: athrow
      // 15: aload 4
      // 17: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_NOT_SOAP Lcom/l7tech/gateway/common/audit/Messages$M;
      // 1a: bipush 1
      // 1b: anewarray 494
      // 1e: dup
      // 1f: bipush 0
      // 20: aload 2
      // 21: aastore
      // 22: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 25: aload 0
      // 26: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 29: areturn
      // 2a: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2d: athrow
      // 2e: aload 3
      // 2f: invokestatic com/l7tech/xml/SoapValidator.validateSoapMessage (Lcom/l7tech/xml/ElementCursor;)Ljava/lang/String;
      // 32: astore 5
      // 34: aload 5
      // 36: ifnull 7b
      // 39: getstatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.d Ljava/util/logging/Logger;
      // 3c: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 3f: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 42: ifeq 66
      // 45: goto 4c
      // 48: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 4b: athrow
      // 4c: getstatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.d Ljava/util/logging/Logger;
      // 4f: aload 5
      // 51: getstatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.n [Ljava/lang/String;
      // 54: bipush 1
      // 55: aaload
      // 56: swap
      // 57: 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" ]
      // 5c: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 5f: goto 66
      // 62: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 65: athrow
      // 66: aload 4
      // 68: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_NOT_SOAP Lcom/l7tech/gateway/common/audit/Messages$M;
      // 6b: bipush 1
      // 6c: anewarray 494
      // 6f: dup
      // 70: bipush 0
      // 71: aload 2
      // 72: aastore
      // 73: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 76: aload 0
      // 77: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 7a: areturn
      // 7b: aload 3
      // 7c: invokevirtual com/l7tech/xml/ElementCursor.moveToRoot ()V
      // 7f: aload 0
      // 80: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.j Lcom/l7tech/xml/xpath/CompiledXpath;
      // 83: ifnull b1
      // 86: aload 3
      // 87: aload 0
      // 88: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.j Lcom/l7tech/xml/xpath/CompiledXpath;
      // 8b: invokevirtual com/l7tech/xml/ElementCursor.matches (Lcom/l7tech/xml/xpath/CompiledXpath;)Z
      // 8e: ifeq b1
      // 91: goto 98
      // 94: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 97: athrow
      // 98: aload 4
      // 9a: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_EXTRA_PAYLOAD_ELEMENTS Lcom/l7tech/gateway/common/audit/Messages$M;
      // 9d: bipush 1
      // 9e: anewarray 494
      // a1: dup
      // a2: bipush 0
      // a3: aload 2
      // a4: aastore
      // a5: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // a8: aload 0
      // a9: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // ac: areturn
      // ad: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // b0: athrow
      // b1: aload 0
      // b2: aload 1
      // b3: aload 2
      // b4: aload 3
      // b5: aload 4
      // b7: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.b (Lcom/l7tech/message/Message;Ljava/lang/String;Lcom/l7tech/xml/ElementCursor;Lcom/l7tech/server/audit/Auditor;)Lcom/l7tech/policy/assertion/AssertionStatus;
      // ba: areturn
      // try (0 -> 6): 7 javax/xml/xpath/XPathExpressionException
      // try (3 -> 21): 21 javax/xml/xpath/XPathExpressionException
      // try (26 -> 32): 33 javax/xml/xpath/XPathExpressionException
      // try (28 -> 43): 44 javax/xml/xpath/XPathExpressionException
      // try (58 -> 68): 69 javax/xml/xpath/XPathExpressionException
      // try (63 -> 83): 83 javax/xml/xpath/XPathExpressionException
   }

   AssertionStatus b(Message param1, String param2, ElementCursor param3, Auditor param4) throws IOException, SAXException {
      // $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: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.l I
      // 004: ifle 00f
      // 007: bipush 1
      // 008: goto 010
      // 00b: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 00e: athrow
      // 00f: bipush 0
      // 010: istore 5
      // 012: aload 0
      // 013: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.m I
      // 016: ifle 021
      // 019: bipush 1
      // 01a: goto 022
      // 01d: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 020: athrow
      // 021: bipush 0
      // 022: istore 6
      // 024: iload 5
      // 026: ifne 035
      // 029: iload 6
      // 02b: ifeq 109
      // 02e: goto 035
      // 031: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 034: athrow
      // 035: aload 1
      // 036: invokevirtual com/l7tech/message/Message.isXml ()Z
      // 039: ifeq 109
      // 03c: goto 043
      // 03f: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 042: athrow
      // 043: aload 0
      // 044: aload 1
      // 045: invokevirtual com/l7tech/message/Message.getXmlKnob ()Lcom/l7tech/message/XmlKnob;
      // 048: invokeinterface com/l7tech/message/XmlKnob.getDocumentReadOnly ()Lorg/w3c/dom/Document; 1
      // 04d: invokeinterface org/w3c/dom/Document.getDocumentElement ()Lorg/w3c/dom/Element; 1
      // 052: aload 0
      // 053: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.l I
      // 056: aload 0
      // 057: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.m I
      // 05a: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Lorg/w3c/dom/Element;II)Lcom/l7tech/util/Pair;
      // 05d: astore 7
      // 05f: getstatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.d Ljava/util/logging/Logger;
      // 062: getstatic java/util/logging/Level.INFO Ljava/util/logging/Level;
      // 065: getstatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.n [Ljava/lang/String;
      // 068: bipush 4
      // 069: aaload
      // 06a: bipush 2
      // 06b: anewarray 472
      // 06e: dup
      // 06f: bipush 0
      // 070: aload 7
      // 072: getfield com/l7tech/util/Pair.left Ljava/lang/Object;
      // 075: checkcast java/util/Set
      // 078: invokeinterface java/util/Set.size ()I 1
      // 07d: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 080: aastore
      // 081: dup
      // 082: bipush 1
      // 083: aload 7
      // 085: getfield com/l7tech/util/Pair.right Ljava/lang/Object;
      // 088: checkcast java/util/Set
      // 08b: invokeinterface java/util/Set.size ()I 1
      // 090: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 093: aastore
      // 094: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
      // 097: iload 5
      // 099: ifeq 0d0
      // 09c: aload 7
      // 09e: getfield com/l7tech/util/Pair.left Ljava/lang/Object;
      // 0a1: checkcast java/util/Set
      // 0a4: invokeinterface java/util/Set.size ()I 1
      // 0a9: aload 0
      // 0aa: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.l I
      // 0ad: if_icmple 0d0
      // 0b0: goto 0b7
      // 0b3: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b6: athrow
      // 0b7: aload 4
      // 0b9: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_NS_DECLARATION_EXCEEDED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0bc: bipush 1
      // 0bd: anewarray 494
      // 0c0: dup
      // 0c1: bipush 0
      // 0c2: aload 2
      // 0c3: aastore
      // 0c4: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 0c7: aload 0
      // 0c8: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 0cb: areturn
      // 0cc: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0cf: athrow
      // 0d0: iload 6
      // 0d2: ifeq 109
      // 0d5: aload 7
      // 0d7: getfield com/l7tech/util/Pair.right Ljava/lang/Object;
      // 0da: checkcast java/util/Set
      // 0dd: invokeinterface java/util/Set.size ()I 1
      // 0e2: aload 0
      // 0e3: getfield com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.m I
      // 0e6: if_icmple 109
      // 0e9: goto 0f0
      // 0ec: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ef: athrow
      // 0f0: aload 4
      // 0f2: getstatic com/l7tech/gateway/common/audit/AssertionMessages.OVERSIZEDTEXT_NS_PREFIX_DECLARATION_EXCEEDED Lcom/l7tech/gateway/common/audit/Messages$M;
      // 0f5: bipush 1
      // 0f6: anewarray 494
      // 0f9: dup
      // 0fa: bipush 0
      // 0fb: aload 2
      // 0fc: aastore
      // 0fd: invokevirtual com/l7tech/server/audit/Auditor.logAndAudit (Lcom/l7tech/gateway/common/audit/AuditDetailMessage;[Ljava/lang/String;)V
      // 100: aload 0
      // 101: invokevirtual com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.getBadMessageStatus ()Lcom/l7tech/policy/assertion/AssertionStatus;
      // 104: areturn
      // 105: invokestatic com/l7tech/server/policy/assertion/ServerOversizedTextAssertion.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 108: athrow
      // 109: getstatic com/l7tech/policy/assertion/AssertionStatus.NONE Lcom/l7tech/policy/assertion/AssertionStatus;
      // 10c: areturn
      // try (0 -> 5): 5 java/io/IOException
      // try (9 -> 14): 14 java/io/IOException
      // try (18 -> 22): 23 java/io/IOException
      // try (20 -> 28): 29 java/io/IOException
      // try (42 -> 75): 76 java/io/IOException
      // try (68 -> 90): 90 java/io/IOException
      // try (92 -> 101): 102 java/io/IOException
      // try (94 -> 116): 116 java/io/IOException
   }

   private Pair<Set<String>, Set<String>> a(Element var1, int var2, int var3) {
      NamedNodeMap var4 = var1.getAttributes();
      TreeSet var5 = new TreeSet();
      TreeSet var6 = new TreeSet();

      for (int var7 = 0; var7 < var4.getLength(); var7++) {
         Attr var8 = (Attr)var4.item(var7);
         String var9 = var8.getPrefix();
         String var10 = var8.getNamespaceURI();
         String var11 = var8.getLocalName();
         String var12 = var8.getValue();
         if (var12 != null && var12.trim().length() > 0) {
            String[] var17 = n;
            if (!var17[3].equals(var9) || !DomUtils.XMLNS_NS.equals(var10)) {
               var17 = n;
               if (!var17[2].equals(var11)) {
                  continue;
               }
            }

            var5.add(var12);
            var17 = n;
            if (!var17[2].equals(var11)) {
               var6.add(var11);
            }
         }
      }

      NodeList var18 = var1.getElementsByTagName("*");

      for (int var19 = 0; var19 < var18.getLength(); var19++) {
         Node var20 = var18.item(var19);
         if (var20.getNodeType() == 1) {
            NamedNodeMap var21 = var20.getAttributes();

            for (int var22 = 0; var22 < var21.getLength(); var22++) {
               Attr var23 = (Attr)var21.item(var22);
               String var13 = var23.getPrefix();
               String var14 = var23.getNamespaceURI();
               String var15 = var23.getLocalName();
               String var16 = var23.getValue();
               if (var16 != null && var16.trim().length() > 0) {
                  String[] var26 = n;
                  if (!var26[2].equals(var13) || !DomUtils.XMLNS_NS.equals(var14)) {
                     var26 = n;
                     if (!var26[2].equals(var15)) {
                        continue;
                     }
                  }

                  var5.add(var16);
                  if (!n[2].equals(var15)) {
                     var6.add(var15);
                  }
               }
            }
         }

         if (var2 > 0 && var5.size() > var2 || var3 > 0 && var6.size() > var3) {
            break;
         }
      }

      return new Pair(var5, var6);
   }

   static {
      String[] var5 = new String[5];
      int var3 = 0;
      String var2 = "p;`\u0004\u0011\u0019h\u0019%d\n\t\u0015oM<y\u000b]\b|X!~_]\u0018k0g\u0010\u0018\u0003x\u0019;y\u0011]\u0006mU<rE.?Mio6\u0005A8z\u000b\u000e";
      int var4 = "p;`\u0004\u0011\u0019h\u0019%d\n\t\u0015oM<y\u000b]\b|X!~_]\u0018k0g\u0010\u0018\u0003x\u0019;y\u0011]\u0006mU<rE.?Mio6\u0005A8z\u000b\u000e"
         .length();
      char var1 = 26;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 52;
         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) {
                     n = var5;
                     d = Logger.getLogger(ServerOversizedTextAssertion.class.getName());
                     return;
                  }

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

                  var2 = "6O\r|y\u001b\rM\u0014|~t[ Q\\i:z@nR\u0013wln\u0003+Q\\i;z";
                  var4 = "6O\r|y\u001b\rM\u0014|~t[ Q\\i:z@nR\u0013wln\u0003+Q\\i;z".length();
                  var1 = 5;
                  var7 = -1;
            }

            var10000 = 67;
            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] ^ 56);
      }

      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 -> 13;
            case 1 -> 97;
            case 2 -> 34;
            case 3 -> 81;
            case 4 -> 73;
            case 5 -> 68;
            default -> 56;
         });
      }

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