package com.l7tech.server.licensing;

import com.l7tech.gateway.common.InvalidLicenseException;
import com.l7tech.gateway.common.licensing.FeatureLicense;
import com.l7tech.gateway.common.licensing.LicenseDocument;
import com.l7tech.gateway.common.licensing.LicenseUtils;
import com.l7tech.util.TooManyChildElementsException;
import java.security.cert.X509Certificate;
import java.util.Collections;
import java.util.Date;
import java.util.Set;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.w3c.dom.Document;

public class FeatureLicenseFactory {
   private static final String[] a;

   public FeatureLicense newInstance(@NotNull LicenseDocument var1) throws InvalidLicenseException {
      try {
         if (var1 == null) {
            a(0);
         }
      } catch (InvalidLicenseException var2) {
         throw a(var2);
      }

      return this.newInstance(var1, null);
   }

   public FeatureLicense newInstance(@NotNull LicenseDocument var1, @Nullable X509Certificate[] var2) throws InvalidLicenseException {
      try {
         if (var1 == null) {
            a(1);
         }
      } catch (TooManyChildElementsException var24) {
         throw a(var24);
      }

      X509Certificate var19 = null;
      Document var20 = LicenseUtils.parseLicenseDocument(var1.getContents());

      long var3;
      Date var5;
      Date var6;
      String var7;
      String var8;
      String var9;
      String var10;
      String var11;
      String var12;
      String var13;
      String var14;
      String var15;
      String var16;
      Set var17;
      Set var18;
      try {
         var3 = LicenseUtils.getId(var20);
         var7 = LicenseUtils.getDescription(var20);
         var8 = LicenseUtils.getLicenseeName(var20);
         var9 = LicenseUtils.getLicenseeEmail(var20);
         var5 = LicenseUtils.getStartDate(var20);
         var6 = LicenseUtils.getExpiryDate(var20);
         var10 = LicenseUtils.parseEulaText(var20);
         var17 = Collections.unmodifiableSet(LicenseUtils.getAttributes(var20));
         var18 = LicenseUtils.getFeatureSets(var20);
         var11 = LicenseUtils.getHostname(var20);
         var12 = LicenseUtils.getIpAddress(var20);
         var13 = LicenseUtils.getProductName(var20);
         var14 = LicenseUtils.getMajorVersionNumber(var20);
         var15 = LicenseUtils.getMinorVersionNumber(var20);
         var16 = LicenseUtils.getFeatureLabel(var20);

         try {
            if (null == var2 || var2.length <= 0) {
               return new FeatureLicense(var3, var7, var8, var9, var5, var6, var10, var17, var18, var11, var12, var13, var14, var15, var16, var19, var1);
            }
         } catch (TooManyChildElementsException var22) {
            throw a(var22);
         }

         var19 = LicenseUtils.getTrustedIssuer(var20, var2);
      } catch (TooManyChildElementsException var23) {
         throw new InvalidLicenseException(a[4], var23);
      }

      return new FeatureLicense(var3, var7, var8, var9, var5, var6, var10, var17, var18, var11, var12, var13, var14, var15, var16, var19, var1);
   }

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

   static {
      String[] var5 = new String[5];
      int var3 = 0;
      String var2 = "lhe\u001d\u000b0>jd`\u001d\u0014b8ybz\u001d\u000bn)ji{[\t`eIbiF\u0012u/CnkW\tt/IfkF\bu3\u000fcnkW\tt/KhkG\nb${>NuoG\nb${'n]\u0015'\nAh||\u0012k&/wi@\u0006j/{bz\u0012@\"9('gTG\"9!\"{\u0012\nr9{'f]\u0013'(j'fG\u000bk";
      int var4 = "lhe\u001d\u000b0>jd`\u001d\u0014b8ybz\u001d\u000bn)ji{[\t`eIbiF\u0012u/CnkW\tt/IfkF\bu3\u000fcnkW\tt/KhkG\nb${>NuoG\nb${'n]\u0015'\nAh||\u0012k&/wi@\u0006j/{bz\u0012@\"9('gTG\"9!\"{\u0012\nr9{'f]\u0013'(j'fG\u000bk"
         .length();
      char var1 = '1';
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 86;
         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 = "{xea\u0013n$tsqM\u0014YtqM\u0013n55E_d]t>c|~A\u00193";
                  var4 = "{xea\u0013n$tsqM\u0014YtqM\u0013n55E_d]t>c|~A\u00193".length();
                  var1 = 11;
                  var7 = -1;
            }

            var10000 = 76;
            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] ^ 28);
      }

      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 -> 89;
            case 1 -> 81;
            case 2 -> 94;
            case 3 -> 100;
            case 4 -> 49;
            case 5 -> 81;
            default -> 28;
         });
      }

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