package com.l7tech.server.policy.variable;

import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.policy.variable.Syntax;
import com.l7tech.util.Either;
import com.l7tech.util.Functions.Unary;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class ExpandVariablesTemplate {
   private final String a;
   private final List<Either<String, Syntax>> b;
   private final boolean c;
   private final Unary<String, String> d;
   private static final String[] e;

   public ExpandVariablesTemplate(@NotNull String var1) {
      if (var1 == null) {
         a(0);
      }

      this(var1, null);
   }

   public ExpandVariablesTemplate(@NotNull String var1, @Nullable Unary<String, String> var2) {
      if (var1 == null) {
         a(1);
      }

      super();
      this.b = new ArrayList<>();
      String var3 = null;
      String[] var4 = Syntax.getReferencedNames(var1);
      if (var4.length < 1) {
         var3 = var1;
      }

      this.a = var3;
      this.d = var2;
      this.c = ExpandVariables.a();
      Matcher var5 = Syntax.regexPattern.matcher(var1);
      StringBuffer var6 = new StringBuffer();

      while (var5.find()) {
         int var7 = var5.groupCount();

         try {
            if (var7 != 1) {
               throw new IllegalStateException(e[7] + var7);
            }
         } catch (IllegalStateException var12) {
            throw a(var12);
         }

         var5.appendReplacement(var6, "");
         String var8 = var6.toString();

         try {
            if (var8.length() > 0) {
               this.b.add(Either.left(var8));
            }
         } catch (IllegalStateException var11) {
            throw a(var11);
         }

         var6.setLength(0);
         Syntax var9 = Syntax.parse(var5.group(1), ExpandVariables.defaultDelimiter());
         this.b.add(Either.right(var9));
      }

      var5.appendTail(var6);
      String var13 = var6.toString();

      try {
         if (var13.length() > 0) {
            this.b.add(Either.left(var13));
         }
      } catch (IllegalStateException var10) {
         throw a(var10);
      }
   }

   @NotNull
   public String process(@NotNull Map<String, ?> param1, @NotNull Audit param2) {
      // $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: ifnonnull 00f
      // 004: bipush 2
      // 005: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (I)V
      // 008: goto 00f
      // 00b: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 00e: athrow
      // 00f: aload 2
      // 010: ifnonnull 01e
      // 013: bipush 3
      // 014: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (I)V
      // 017: goto 01e
      // 01a: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 01d: athrow
      // 01e: aload 0
      // 01f: getfield com/l7tech/server/policy/variable/ExpandVariablesTemplate.a Ljava/lang/String;
      // 022: ifnull 040
      // 025: aload 0
      // 026: getfield com/l7tech/server/policy/variable/ExpandVariablesTemplate.a Ljava/lang/String;
      // 029: dup
      // 02a: ifnonnull 03f
      // 02d: goto 034
      // 030: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 033: athrow
      // 034: bipush 4
      // 035: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (I)V
      // 038: goto 03f
      // 03b: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 03e: athrow
      // 03f: areturn
      // 040: new java/lang/StringBuilder
      // 043: dup
      // 044: invokespecial java/lang/StringBuilder.<init> ()V
      // 047: astore 3
      // 048: aload 0
      // 049: getfield com/l7tech/server/policy/variable/ExpandVariablesTemplate.b Ljava/util/List;
      // 04c: invokeinterface java/util/List.iterator ()Ljava/util/Iterator; 1
      // 051: astore 4
      // 053: aload 4
      // 055: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 05a: ifeq 0ff
      // 05d: aload 4
      // 05f: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 064: checkcast com/l7tech/util/Either
      // 067: astore 5
      // 069: aload 5
      // 06b: invokevirtual com/l7tech/util/Either.isLeft ()Z
      // 06e: ifeq 085
      // 071: aload 3
      // 072: aload 5
      // 074: invokevirtual com/l7tech/util/Either.left ()Ljava/lang/Object;
      // 077: checkcast java/lang/String
      // 07a: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 07d: pop
      // 07e: goto 0fc
      // 081: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 084: athrow
      // 085: aload 5
      // 087: invokevirtual com/l7tech/util/Either.right ()Ljava/lang/Object;
      // 08a: checkcast com/l7tech/policy/variable/Syntax
      // 08d: astore 6
      // 08f: aload 1
      // 090: aload 6
      // 092: aload 2
      // 093: aload 0
      // 094: getfield com/l7tech/server/policy/variable/ExpandVariablesTemplate.c Z
      // 097: invokestatic com/l7tech/server/policy/variable/ExpandVariables.a (Ljava/util/Map;Lcom/l7tech/policy/variable/Syntax;Lcom/l7tech/gateway/common/audit/Audit;Z)[Ljava/lang/Object;
      // 09a: astore 7
      // 09c: aload 7
      // 09e: ifnull 0ae
      // 0a1: aload 7
      // 0a3: arraylength
      // 0a4: ifne 0b5
      // 0a7: goto 0ae
      // 0aa: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 0ad: athrow
      // 0ae: ldc ""
      // 0b0: astore 8
      // 0b2: goto 0d5
      // 0b5: new com/l7tech/gateway/common/DefaultSyntaxErrorHandler
      // 0b8: dup
      // 0b9: aload 2
      // 0ba: invokespecial com/l7tech/gateway/common/DefaultSyntaxErrorHandler.<init> (Lcom/l7tech/gateway/common/audit/Audit;)V
      // 0bd: astore 9
      // 0bf: aload 6
      // 0c1: aload 7
      // 0c3: aload 7
      // 0c5: bipush 0
      // 0c6: aaload
      // 0c7: invokestatic com/l7tech/policy/variable/Syntax.getFormatter (Ljava/lang/Object;)Lcom/l7tech/policy/variable/j;
      // 0ca: aload 9
      // 0cc: aload 0
      // 0cd: getfield com/l7tech/server/policy/variable/ExpandVariablesTemplate.c Z
      // 0d0: invokevirtual com/l7tech/policy/variable/Syntax.format ([Ljava/lang/Object;Lcom/l7tech/policy/variable/j;Lcom/l7tech/policy/variable/Syntax$SyntaxErrorHandler;Z)Ljava/lang/String;
      // 0d3: astore 8
      // 0d5: aload 0
      // 0d6: getfield com/l7tech/server/policy/variable/ExpandVariablesTemplate.d Lcom/l7tech/util/Functions$Unary;
      // 0d9: ifnull 0f1
      // 0dc: aload 0
      // 0dd: getfield com/l7tech/server/policy/variable/ExpandVariablesTemplate.d Lcom/l7tech/util/Functions$Unary;
      // 0e0: aload 8
      // 0e2: invokeinterface com/l7tech/util/Functions$Unary.call (Ljava/lang/Object;)Ljava/lang/Object; 2
      // 0e7: checkcast java/lang/String
      // 0ea: goto 0f3
      // 0ed: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 0f0: athrow
      // 0f1: aload 8
      // 0f3: astore 8
      // 0f5: aload 3
      // 0f6: aload 8
      // 0f8: invokevirtual java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
      // 0fb: pop
      // 0fc: goto 053
      // 0ff: aload 3
      // 100: invokevirtual java/lang/StringBuilder.toString ()Ljava/lang/String;
      // 103: dup
      // 104: ifnonnull 112
      // 107: bipush 5
      // 108: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (I)V
      // 10b: goto 112
      // 10e: invokestatic com/l7tech/server/policy/variable/ExpandVariablesTemplate.a (Ljava/lang/IllegalStateException;)Ljava/lang/IllegalStateException;
      // 111: athrow
      // 112: areturn
      // try (0 -> 4): 5 java/lang/IllegalStateException
      // try (7 -> 11): 12 java/lang/IllegalStateException
      // try (14 -> 21): 22 java/lang/IllegalStateException
      // try (17 -> 26): 27 java/lang/IllegalStateException
      // try (45 -> 55): 55 java/lang/IllegalStateException
      // try (68 -> 73): 74 java/lang/IllegalStateException
      // try (95 -> 104): 104 java/lang/IllegalStateException
      // try (113 -> 119): 120 java/lang/IllegalStateException
   }

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

   static {
      String[] var5 = new String[11];
      int var3 = 0;
      String var2 = "sh u\u0007u{=e(yM\bql?v!kJ`9ff?)!=J`j:)>oLsl )=eRlj+);kLlh0j(%{}y3h)\\_w`3d!oMQl?v!kJ`\u0005d|6o9*EG=r\u0003\u007fRi)?c9bQa)wuc/M%d'u9*Pj}rt(~Kwgrh8fR\u0007u{=e(yM&@q\"c.~Wknr7mg_qj:o#m\u001eb{=s=&\u001ewl1c$|[a3r9ff?)!=J`j:)>oLsl )=eRlj+);kLlh0j(%{}y3h)\\_w`3d!oMQl?v!kJ`";
      int var4 = "sh u\u0007u{=e(yM\bql?v!kJ`9ff?)!=J`j:)>oLsl )=eRlj+);kLlh0j(%{}y3h)\\_w`3d!oMQl?v!kJ`\u0005d|6o9*EG=r\u0003\u007fRi)?c9bQa)wuc/M%d'u9*Pj}rt(~Kwgrh8fR\u0007u{=e(yM&@q\"c.~Wknr7mg_qj:o#m\u001eb{=s=&\u001ewl1c$|[a3r9ff?)!=J`j:)>oLsl )=eRlj+);kLlh0j(%{}y3h)\\_w`3d!oMQl?v!kJ`"
         .length();
      char var1 = 4;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 63;
         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) {
                     e = var5;
                     return;
                  }

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

                  var2 = "&\u0019W\u0011B\r2\u0013KV\u000b]H\u001c)\u0004D*Z\u00040G\u001bQ\u0016N\u00059\u0013\u000eBD\bM/@K_\u0002\u000fM/INCDB\u001d/\u0013K^\u000b[H>\u0002K^\u0011C\u0004\u0006[\u0002^\r[V";
                  var4 = "&\u0019W\u0011B\r2\u0013KV\u000b]H\u001c)\u0004D*Z\u00040G\u001bQ\u0016N\u00059\u0013\u000eBD\bM/@K_\u0002\u000fM/INCDB\u001d/\u0013K^\u000b[H>\u0002K^\u0011C\u0004\u0006[\u0002^\r[V"
                     .length();
                  var1 = '>';
                  var7 = -1;
            }

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

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

      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 -> 58;
            case 1 -> 54;
            case 2 -> 109;
            case 3 -> 57;
            case 4 -> 114;
            case 5 -> 53;
            default -> 1;
         });
      }

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