package com.l7tech.policy.assertion;

import com.l7tech.policy.assertion.annotation.ProcessesRequest;
import com.l7tech.xml.xpath.XpathExpression;

@ProcessesRequest
public class RequestXpathAssertion extends SimpleXpathAssertion {
   public static final String DEFAULT_VAR_PREFIX;
   static final AssertionNodeNameFactory policyNameFactory;
   static final long serialVersionUID = -373508778668562730L;
   private static final String[] d;

   public RequestXpathAssertion() {
      this(compatOrigDefaultXpathValue());
   }

   public RequestXpathAssertion(XpathExpression var1) {
      this.setXpathExpression(var1);
   }

   @Override
   public boolean permitsFullyDynamicExpression() {
      return true;
   }

   @Override
   protected String defaultVariablePrefix() {
      return d[4];
   }

   @Override
   public AssertionMetadata meta() {
      DefaultAssertionMetadata var1 = this.defaultMeta();
      String[] var2 = d;
      var1.put(var2[5], new String[]{var2[0]});
      var1.put(var2[14], var2[3]);
      var1.put(var2[2], var2[12]);
      var1.put(var2[13], var2[15]);
      var1.put(var2[11], new XpathBasedAssertionFactory<>(RequestXpathAssertion.class));
      var1.put(var2[7], var2[9]);
      var1.put(var2[8], var2[10]);
      var1.put(var2[1], policyNameFactory);
      return var1;
   }

   static {
      String[] var5 = new String[16];
      int var3 = 0;
      String var2 = ";h[\u00153j[nt\\\f,aRIvH'\u0005dTsxW;\t0mXuck#.`- jZ({\u00126&f_(tJ,0j[b8W'0jBut@1l}ZkdL%-dCre@l$lQ\f1`FrrV6\u001buVs\u007f\u000e3d[bcQ'\u0005j[crW1\f1`FrrV6\u001buVs\u007f\u00143wXwrW6*`DFtQ+,k~dxK\u00143wXwrW6*`DFtQ+,kyfz@- jZ({\u00126&f_(tJ,0j[b8W'0jBut@1lUEhg@07lRt&\u0013l$lQ!\u0006sVkbD6&%ebfP'0q\u0017_GD6+%guxU'1q^bd\u0010\"vDbeQ+,kqftQ-1|\u0016\u0006sVkbD6&%ebfP'0q\u0017_GD6+\u000b'`DdeL27lXi";
      int var4 = ";h[\u00153j[nt\\\f,aRIvH'\u0005dTsxW;\t0mXuck#.`- jZ({\u00126&f_(tJ,0j[b8W'0jBut@1l}ZkdL%-dCre@l$lQ\f1`FrrV6\u001buVs\u007f\u000e3d[bcQ'\u0005j[crW1\f1`FrrV6\u001buVs\u007f\u00143wXwrW6*`DFtQ+,k~dxK\u00143wXwrW6*`DFtQ+,kyfz@- jZ({\u00126&f_(tJ,0j[b8W'0jBut@1lUEhg@07lRt&\u0013l$lQ!\u0006sVkbD6&%ebfP'0q\u0017_GD6+%guxU'1q^bd\u0010\"vDbeQ+,kqftQ-1|\u0016\u0006sVkbD6&%ebfP'0q\u0017_GD6+\u000b'`DdeL27lXi"
         .length();
      char var1 = 3;
      int var7 = -1;

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

         while (true) {
            String var8 = d(var10000, d(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     d = var5;
                     DEFAULT_VAR_PREFIX = d[6];
                     policyNameFactory = new bh();
                     return;
                  }

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

                  var2 = "|+\u0014-,\u001ehB%\u001c-\u0011\tbb1X\"\u001dh*\u000f|y/\u000b<x\u0007x\u007f>X%9\u001endj\u0019h+\u001aho#\u001e!=\u000e-T\u001a\u0019<0J}m>\f-*\u0004#";
                  var4 = "|+\u0014-,\u001ehB%\u001c-\u0011\tbb1X\"\u001dh*\u000f|y/\u000b<x\u0007x\u007f>X%9\u001endj\u0019h+\u001aho#\u001e!=\u000e-T\u001a\u0019<0J}m>\f-*\u0004#"
                     .length();
                  var1 = 15;
                  var7 = -1;
            }

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

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

      return var10000;
   }

   private static String d(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 -> 60;
            case 1 -> 122;
            case 2 -> 72;
            case 3 -> 120;
            case 4 -> 104;
            case 5 -> 90;
            default -> 61;
         });
      }

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