package com.l7tech.policy.assertion;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jetbrains.annotations.Nullable;

public class DefaultAssertionMetadata implements AssertionMetadata {
   protected static final Logger logger;
   private static final Object a;
   private static final Pattern b;
   private static final Pattern c;
   private static final Pattern d;
   private static final Map e;
   private final Assertion f;
   private final Map g = Collections.synchronizedMap(new HashMap());
   private static final String[] h;

   private static String a(String var0) {
      Matcher var1 = b.matcher(var0);
      StringBuffer var2 = new StringBuffer();

      try {
         while (var1.find()) {
            var1.appendReplacement(var2, var1.group(1).toUpperCase());
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      var1.appendTail(var2);
      return var2.toString();
   }

   public static String basename(AssertionMetadata var0) {
      return var0.get(h[4]).toString();
   }

   public static String basepack(AssertionMetadata var0) {
      return var0.get(h[8]).toString();
   }

   public static String basepath(AssertionMetadata var0) {
      return var0.get(h[1]).toString().replace('.', '/');
   }

   public static Object cache(AssertionMetadata var0, String var1, Object var2) {
      try {
         if (var0 instanceof DefaultAssertionMetadata) {
            ((DefaultAssertionMetadata)var0).put(var1, var2);
         }

         return var2;
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }
   }

   public static MetadataFinder getDefaultGetter(String var0) {
      return (MetadataFinder)e.get(var0);
   }

   public static void putDefaultGetter(String var0, MetadataFinder var1) {
      try {
         if (var1 == null) {
            throw new IllegalArgumentException(h[0]);
         }
      } catch (IllegalArgumentException var2) {
         throw a(var2);
      }

      e.put(var0, var1);
   }

   public DefaultAssertionMetadata(Assertion var1) {
      if (var1 == null) {
         throw new IllegalArgumentException(h[3]);
      }

      this.f = var1;
   }

   protected Assertion getPrototype() {
      return this.f;
   }

   @Override
   public Class getAssertionClass() {
      return this.f.getClass();
   }

   public String getBaseName() {
      return this.getString(h[5]);
   }

   public String getString(String var1) {
      Object var2 = this.get(var1);

      try {
         if (var2 == null) {
            return null;
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return var2.toString();
   }

   public boolean getBoolean(String 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:
      // 00: aload 0
      // 01: aload 1
      // 02: invokevirtual com/l7tech/policy/assertion/DefaultAssertionMetadata.get (Ljava/lang/String;)Ljava/lang/Object;
      // 05: astore 2
      // 06: aload 2
      // 07: instanceof java/lang/Boolean
      // 0a: ifeq 26
      // 0d: aload 2
      // 0e: checkcast java/lang/Boolean
      // 11: invokevirtual java/lang/Boolean.booleanValue ()Z
      // 14: ifeq 26
      // 17: goto 1e
      // 1a: invokestatic com/l7tech/policy/assertion/DefaultAssertionMetadata.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 1d: athrow
      // 1e: bipush 1
      // 1f: goto 27
      // 22: invokestatic com/l7tech/policy/assertion/DefaultAssertionMetadata.a (Ljava/lang/IllegalArgumentException;)Ljava/lang/IllegalArgumentException;
      // 25: athrow
      // 26: bipush 0
      // 27: ireturn
      // try (4 -> 11): 12 java/lang/IllegalArgumentException
      // try (7 -> 16): 16 java/lang/IllegalArgumentException
   }

   public int getInteger(String var1) {
      Object var2 = this.get(var1);

      try {
         if (var2 instanceof Integer) {
            return (Integer)var2;
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      return 0;
   }

   @Override
   public Object get(String var1) {
      Object var2 = this.get(this.g, var1);

      try {
         if (a == var2) {
            return null;
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      try {
         if (var2 != null) {
            return var2;
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      return this.get(e, var1);
   }

   protected Object get(Map var1, String var2) {
      Object var3 = var1.get(var2);

      try {
         if (var3 instanceof MetadataFinder) {
            return ((MetadataFinder)var3).get(this, var2);
         }
      } catch (IllegalArgumentException var4) {
         throw a(var4);
      }

      return var3;
   }

   public void put(String var1, @Nullable Object var2) {
      try {
         if (var2 == null) {
            this.g.remove(var1);
            return;
         }
      } catch (IllegalArgumentException var3) {
         throw a(var3);
      }

      this.g.put(var1, var2);
   }

   public void putNull(String var1) {
      this.g.put(var1, a);
   }

   static {
      String[] var5 = new String[9];
      int var3 = 0;
      String var2 = "[\fQNULkq\u001cVN\u0010P$hIG_\u0010P>p\u0005\u000b~\bV_`_(w\bB_\rG7D\u0017J\u007ffFY\b\u0003oc\u001aL\u001bJN_J2l\f\u0005WEM?<\u0007JN\u0010\\.<\u0007PV\\\b~\bV_~_&y\b~\bV_~_&y\u00134V\u0019\u0007k_ff4\f\u0012\u000f\u0003\u0010]D\u007fg\u0019";
      int var4 = "[\fQNULkq\u001cVN\u0010P$hIG_\u0010P>p\u0005\u000b~\bV_`_(w\bB_\rG7D\u0017J\u007ffFY\b\u0003oc\u001aL\u001bJN_J2l\f\u0005WEM?<\u0007JN\u0010\\.<\u0007PV\\\b~\bV_~_&y\b~\bV_~_&y\u00134V\u0019\u0007k_ff4\f\u0012\u000f\u0003\u0010]D\u007fg\u0019"
         .length();
      char var1 = 23;
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, b(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     h = var5;
                     logger = Logger.getLogger(DefaultAssertionMetadata.class.getName());
                     a = new Object();
                     String[] var8 = h;
                     b = Pattern.compile(var8[7]);
                     c = Pattern.compile(var8[2]);
                     d = Pattern.compile(var8[6]);
                     e = Collections.synchronizedMap(
                        new HashMap() {
                           static final long serialVersionUID = 6267649820488556470L;
                           private static final String[] a;

                           {
                              String[] var1x = a;
                              this.put(var1x[40], new l(this));
                              this.put(var1x[41], new w(this));
                              this.put(var1x[25], null);
                              this.put(var1x[46], null);
                              this.put(var1x[2], new ah(this));
                              this.put(var1x[48], new ap(this));
                              this.put(var1x[16], new aq(this));
                              this.put(var1x[11], new ar(this));
                              this.put(var1x[5], new as(this));
                              this.put(var1x[0], new at(this));
                              this.put(var1x[28], null);
                              this.put(var1x[36], new au(this));
                              this.put(var1x[42], new m(this));
                              this.put(var1x[4], new n(this));
                              this.put(var1x[43], new o(this));
                              this.put(var1x[17], null);
                              this.put(var1x[22], null);
                              this.put(var1x[27], new p(this));
                              this.put(var1x[18], null);
                              this.put(var1x[21], new q(this));
                              this.put(var1x[7], new r(this));
                              this.put(var1x[47], new s(this));
                              this.put(var1x[31], null);
                              this.put(var1x[9], new t(this));
                              this.put(var1x[23], null);
                              this.put(var1x[34], true);
                              this.put(var1x[8], new u(this));
                              this.put(var1x[19], new v(this));
                              this.put(var1x[33], null);
                              this.put(var1x[1], new x(this));
                              this.put(var1x[3], null);
                              this.put(var1x[14], new y(this));
                              this.put(var1x[13], new z(this));
                              this.put(var1x[37], null);
                              this.put(var1x[24], new aa(this));
                              this.put(var1x[38], new ab(this));
                              this.put(var1x[35], new ac(this));
                              this.put(var1x[44], new ad(this));
                              this.put(var1x[30], new ae(this));
                              this.put(var1x[45], new af(this));
                              this.put(var1x[20], new ag(this));
                              this.put(var1x[15], new ai(this));
                              this.put(var1x[6], new aj(this));
                              this.put(var1x[10], new ak(this));
                              this.put(var1x[32], new al(this));
                              this.put(var1x[29], new am(this));
                              this.put(var1x[26], new String[0]);
                              this.put(var1x[39], null);
                              this.put("", new an(this));
                              this.put(var1x[12], new ao(this));
                           }

                           static {
                              String[] var5 = new String[49];
                              int var3 = 0;
                              String var2 = "\u0003GI|d\n\u0005=IA|Y\u001d\u000f\u001d\u0019\u0003TJiu\f\u0014\u001aCV\\t\u0017\u0014\u001cTfuq\r\u0013\u001dGH|\u0016\u0010JL|~\n!\u0000U@kd\u0017\u000f\u001drDkw\u001b\u0014\u0000\u0017\u0003TJiu\f\u0014\u001aCV\\t\u0017\u0014\u001cTcxs\n\u000f\u0001_\u0017\u0003GI|d\n\u0005=IA|C\u0011\u0012\u0007vWp\u007f\f\t\u0007_\u000f\u0003GI|d\n\u0005=IA|^\u001f\r\u0016\u0011\u0005GWpq\u0010\u0014#TJm\u007f\n\u0019\u0003CV\u0012\u0003IIps\u0007.\u001cB@Ps\u0011\u000e<V@w\u0018\u0003IIps\u00076\u0012JL}q\n\u000f\u0001eIxc\r\u000e\u0012K@\u0015\u0003IIps\u0007!\u0017PLzu=\f\u0012UVwq\u0013\u0005\u000e\u0003GI|d\n\u00055II}u\f\u0013\u0014\u0003TJiu\f\u0014\u001aCVXs\n\t\u001cHlz\u007f\u0010\u0012\u001aUwve\n\t\u001dAdjc\u001b\u0012\u0007OJw\u0017\u0004UUMi\u000e\u0005>GUiy\u0010\u00070JDjc\u0010\u0001\u001eC$\u0003TJiu\f\u0014\u001aCV\\t\u0017\u0014\u001cTvl`\u000e\u0012\u0016UVJx\u001b\u0005\u0007bLj`\u0012\u0001\n\u000e\u0003TJiu\f\u0014\u001aCV_y\u0012\u0005\u0014\u0003TJiu\f\u0014\u001aCVXs\n\t\u001cHa|c\u001d\u0012\u0003GI|d\n\u0005=IA|V\u001f\u0003\u0007IW`\u0015\u0003IIps\u0007.\u001cB@Wq\u0013\u00055GFm\u007f\f\u0019\u0019\u0003TJiu\f\u0014\u001aCVXs\n\t\u001cHfuq\r\u0013\u001dGH|\u000b\u0017CVzb\u0017\u0010\u0007OJw\u000e\u0003IIps\u0007.\u001cB@Ps\u0011\u000e\u0010\u0012UV|b\n\t\u001cHcxs\n\u000f\u0001_\u0014\u0003IIps\u0007!\u0017PLzu7\u000e\u0000RDws\u001b\u000f\u0004UU\\h\n\u0005\u0001HDu^\u001f\r\u0016\u0018\u0000CWou\f!\u0000U@kd\u0017\u000f\u001deIxc\r\u000e\u0012K@\u0016\u0014JJ{q\u0012!\u0010RLv~=\f\u0012UVwq\u0013\u0005\u0000\u000e\u0003IIps\u0007.\u001cB@Wq\u0013\u0005\u000f\u0011GV|&J.\u001cB@P}\u001f\u0007\u0016\u0011\u0010JPjd\u001b\u0012#TJiu\f\u0014\u001aCV\t\u0000NJkd0\u0001\u001eC\u0011\u0003IIps\u0007.\u001cB@_q\u001d\u0014\u001cT\\\u000e\u0015CDme\f\u0005 CQWq\u0013\u0005\u0017\u0003TJiu\f\u0014\u001aCVXs\n\t\u001cHcxs\n\u000f\u0001_\u001d\u0003IIps\u00076\u0012JL}q\n\t\u001cHd}f\u0017\u0003\u0016cKxr\u0012\u0005\u0017\u0018\u0004UUZ\u007f\u0013\u0010\u0012RL{y\u0012\t\u0007_hx`\u000e\t\u001dAV\u0019\u0010JL|~\n!\u0000U@kd\u0017\u000f\u001dvJuy\u001d\u0019:EJw\u0016\u0004UUMi\u000e\u0005>GUiy\u0010\u0007:HVmq\u0010\u0003\u0016\u0010\u0004UUJe\u001c\u0014\nV@_y\u0010\u0004\u0016T\r\u0014JJ{q\u0012!\u0010RLv~\r\b\u0011GV|^\u001f\r\u0016\u000b\u0011GV|@\u001f\u0003\u0018GB|\u001d\u0010JL|~\n!\u0000U@kd\u0017\u000f\u001dvJuy\u001d\u0019:EJw_\u000e\u0005\u001d\u0014\u0003GI|d\n\u0005=IA|S\u0012\u0001\u0000UKx}\u001b\f\u0006U@}R\u0007#\u001fO@wd\b\u001fIK~^\u001f\r\u0016\u0018\u0010JL|~\n!\u0000U@kd\u0017\u000f\u001deIxc\r\u000e\u0012K@";
                              int var4 = "\u0003GI|d\n\u0005=IA|Y\u001d\u000f\u001d\u0019\u0003TJiu\f\u0014\u001aCV\\t\u0017\u0014\u001cTfuq\r\u0013\u001dGH|\u0016\u0010JL|~\n!\u0000U@kd\u0017\u000f\u001drDkw\u001b\u0014\u0000\u0017\u0003TJiu\f\u0014\u001aCV\\t\u0017\u0014\u001cTcxs\n\u000f\u0001_\u0017\u0003GI|d\n\u0005=IA|C\u0011\u0012\u0007vWp\u007f\f\t\u0007_\u000f\u0003GI|d\n\u0005=IA|^\u001f\r\u0016\u0011\u0005GWpq\u0010\u0014#TJm\u007f\n\u0019\u0003CV\u0012\u0003IIps\u0007.\u001cB@Ps\u0011\u000e<V@w\u0018\u0003IIps\u00076\u0012JL}q\n\u000f\u0001eIxc\r\u000e\u0012K@\u0015\u0003IIps\u0007!\u0017PLzu=\f\u0012UVwq\u0013\u0005\u000e\u0003GI|d\n\u00055II}u\f\u0013\u0014\u0003TJiu\f\u0014\u001aCVXs\n\t\u001cHlz\u007f\u0010\u0012\u001aUwve\n\t\u001dAdjc\u001b\u0012\u0007OJw\u0017\u0004UUMi\u000e\u0005>GUiy\u0010\u00070JDjc\u0010\u0001\u001eC$\u0003TJiu\f\u0014\u001aCV\\t\u0017\u0014\u001cTvl`\u000e\u0012\u0016UVJx\u001b\u0005\u0007bLj`\u0012\u0001\n\u000e\u0003TJiu\f\u0014\u001aCV_y\u0012\u0005\u0014\u0003TJiu\f\u0014\u001aCVXs\n\t\u001cHa|c\u001d\u0012\u0003GI|d\n\u0005=IA|V\u001f\u0003\u0007IW`\u0015\u0003IIps\u0007.\u001cB@Wq\u0013\u00055GFm\u007f\f\u0019\u0019\u0003TJiu\f\u0014\u001aCVXs\n\t\u001cHfuq\r\u0013\u001dGH|\u000b\u0017CVzb\u0017\u0010\u0007OJw\u000e\u0003IIps\u0007.\u001cB@Ps\u0011\u000e\u0010\u0012UV|b\n\t\u001cHcxs\n\u000f\u0001_\u0014\u0003IIps\u0007!\u0017PLzu7\u000e\u0000RDws\u001b\u000f\u0004UU\\h\n\u0005\u0001HDu^\u001f\r\u0016\u0018\u0000CWou\f!\u0000U@kd\u0017\u000f\u001deIxc\r\u000e\u0012K@\u0016\u0014JJ{q\u0012!\u0010RLv~=\f\u0012UVwq\u0013\u0005\u0000\u000e\u0003IIps\u0007.\u001cB@Wq\u0013\u0005\u000f\u0011GV|&J.\u001cB@P}\u001f\u0007\u0016\u0011\u0010JPjd\u001b\u0012#TJiu\f\u0014\u001aCV\t\u0000NJkd0\u0001\u001eC\u0011\u0003IIps\u0007.\u001cB@_q\u001d\u0014\u001cT\\\u000e\u0015CDme\f\u0005 CQWq\u0013\u0005\u0017\u0003TJiu\f\u0014\u001aCVXs\n\t\u001cHcxs\n\u000f\u0001_\u001d\u0003IIps\u00076\u0012JL}q\n\t\u001cHd}f\u0017\u0003\u0016cKxr\u0012\u0005\u0017\u0018\u0004UUZ\u007f\u0013\u0010\u0012RL{y\u0012\t\u0007_hx`\u000e\t\u001dAV\u0019\u0010JL|~\n!\u0000U@kd\u0017\u000f\u001dvJuy\u001d\u0019:EJw\u0016\u0004UUMi\u000e\u0005>GUiy\u0010\u0007:HVmq\u0010\u0003\u0016\u0010\u0004UUJe\u001c\u0014\nV@_y\u0010\u0004\u0016T\r\u0014JJ{q\u0012!\u0010RLv~\r\b\u0011GV|^\u001f\r\u0016\u000b\u0011GV|@\u001f\u0003\u0018GB|\u001d\u0010JL|~\n!\u0000U@kd\u0017\u000f\u001dvJuy\u001d\u0019:EJw_\u000e\u0005\u001d\u0014\u0003GI|d\n\u0005=IA|S\u0012\u0001\u0000UKx}\u001b\f\u0006U@}R\u0007#\u001fO@wd\b\u001fIK~^\u001f\r\u0016\u0018\u0010JL|~\n!\u0000U@kd\u0017\u000f\u001deIxc\r\u000e\u0012K@"
                                 .length();
                              char var1 = 15;
                              int var7 = -1;

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

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

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

                                          var2 = "\u001aPPij\u001e7\u0005[YCe\u0006\n\u0019Q]ml\u0014\u001aMSpl\u0015\r\u0003ZOAj\u0013\u0010\u0005Qrad\u0002";
                                          var4 = "\u001aPPij\u001e7\u0005[YCe\u0006\n\u0019Q]ml\u0014\u001aMSpl\u0015\r\u0003ZOAj\u0013\u0010\u0005Qrad\u0002"
                                             .length();
                                          var1 = 19;
                                          var7 = -1;
                                    }

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

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

                              return var10000x;
                           }

                           private static String a(int var0, char[] var1x) {
                              int var10003 = var1x.length;
                              int var10002x = var0;
                              char[] var10001x = var1x;
                              int var10000x = var10003;

                              for (int var2x = 0; var10000x > var2x; var2x++) {
                                 var10001x[var2x] = (char)(var10001x[var2x] ^ var10002x ^ switch (var2x % 7) {
                                    case 0 -> 17;
                                    case 1 -> 68;
                                    case 2 -> 71;
                                    case 3 -> 123;
                                    case 4 -> 114;
                                    case 5 -> 28;
                                    default -> 2;
                                 });
                              }

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

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

                  var2 = "\u001c\u001doIy;\u0019ih\u000bV ~wHw\u0000_ jw";
                  var4 = "\u001c\u001doIy;\u0019ih\u000bV ~wHw\u0000_ jw".length();
                  var1 = '\t';
                  var7 = -1;
            }

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

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

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

      return var10000;
   }

   private static String a(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 -> 70;
            case 1 -> 51;
            case 2 -> 127;
            case 3 -> 96;
            case 4 -> 106;
            case 5 -> 100;
            default -> 17;
         });
      }

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