package com.l7tech.server;

import com.l7tech.util.SyspropUtil;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Properties;
import java.util.Map.Entry;
import java.util.function.Function;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;

public class TelemetryPropertiesLoaderImpl implements TelemetryPropertiesLoader {
   private static final Logger a;
   private static final String b;
   private static final String c;
   private static final String d;
   private static final String e;
   private static final String f;
   private static TelemetryPropertiesLoaderImpl g;
   private final Properties h = new Properties();
   private final boolean i;
   private static final String[] j;

   TelemetryPropertiesLoaderImpl() {
      this.i = SyspropUtil.getBoolean(j[2], false);
      this.a();
   }

   public static synchronized TelemetryPropertiesLoader getInstance() {
      if (null == g) {
         g = new TelemetryPropertiesLoaderImpl();
      }

      return g;
   }

   private void a() {
      Properties var1 = new Properties();

      try {
         String[] var29 = j;

         try (InputStream var2 = TelemetryPropertiesLoaderImpl.class.getResourceAsStream(var29[12])) {
            var1.load(var2);
         }
      } catch (IOException var22) {
         String[] var15 = j;
         a.log(Level.WARNING, var15[14]);
      }

      Map var23 = a(var1);
      HashSet var3 = new HashSet();
      HashMap var4 = new HashMap();
      HashMap var5 = new HashMap();

      for (Entry var7 : var23.entrySet()) {
         String var8 = (String)var7.getKey();
         int var9 = var8.lastIndexOf(46);
         String var10 = var8.substring(0, var9);
         var3.add(var10);
         String var11 = var8.substring(var9 + 1);
         String var12 = (String)var7.getValue();
         String var13 = var11;
         byte var14 = -1;

         label102: {
            label101: {
               try {
                  switch (var13.hashCode()) {
                     case -1249586564:
                        if (!var13.equals(j[17])) {
                           break label102;
                        }
                        break label101;
                     case 1544803905:
                        break;
                     default:
                        break label102;
                  }
               } catch (Throwable var20) {
                  throw a(var20);
               }

               String[] var30 = j;
               if (var13.equals(var30[6])) {
                  var14 = 1;
               }
               break label102;
            }

            var14 = 0;
         }

         label91: {
            try {
               switch (var14) {
                  case 0:
                     var4.put(var10, var12);
                     continue;
                  case 1:
                     break label91;
               }
            } catch (Throwable var19) {
               throw a(var19);
            }

            a.log(Level.WARNING, j[11], var8);
            continue;
         }

         var5.put(var10, var12);
      }

      Map var10000;
      label79: {
         try {
            if (this.i) {
               var10000 = this.a(var4);
               break label79;
            }
         } catch (Throwable var18) {
            throw a(var18);
         }

         var10000 = this.b();
      }

      Map var24 = var10000;

      for (String var26 : var3) {
         String var27 = (String)var24.get(var26);

         label68: {
            try {
               if (StringUtils.isBlank(var27)) {
                  if (!var5.containsKey(var26)) {
                     continue;
                  }
                  break label68;
               }
            } catch (Throwable var17) {
               throw a(var17);
            }

            this.a(var26, var27, true);
            continue;
         }

         String var28 = (String)var5.get(var26);
         this.a(var26, var28, false);
      }
   }

   private Map<String, String> a(Map<String, String> var1) {
      HashMap var2 = new HashMap();

      for (Entry var4 : var1.entrySet()) {
         var2.put((String)var4.getKey(), System.getenv((String)var4.getValue()));
      }

      return var2;
   }

   private Map<String, String> b() {
      ServerConfig var10000 = ServerConfig.getInstance();
      String[] var7 = j;
      String var1 = var10000.getProperty(var7[7]);
      File var2 = new File(var1);
      Properties var3 = new Properties();

      try {
         label55: {
            try {
               if (var2.exists()) {
                  var15 = new FileInputStream(var2);
                  break label55;
               }
            } catch (Throwable var12) {
               throw a(var12);
            }

            var7 = j;
            var15 = TelemetryPropertiesLoaderImpl.class.getResourceAsStream(var7[1]);
         }

         InputStream var4 = var15;

         Map var5;
         try {
            try {
               if (var4 != null) {
                  var3.load(var4);
               }
            } catch (Throwable var10) {
               throw a(var10);
            }

            var5 = a(var3);
         } catch (Throwable var11) {
            if (var4 != null) {
               try {
                  var4.close();
               } catch (Throwable var8) {
                  var11.addSuppressed(var8);
               }
            }

            throw var11;
         }

         try {
            if (var4 != null) {
               var4.close();
            }

            return var5;
         } catch (Throwable var9) {
            throw a(var9);
         }
      } catch (IOException var13) {
         a.log(Level.WARNING, j[4], var13);
         return Collections.emptyMap();
      }
   }

   private static Map<String, String> a(Properties var0) {
      Map var1 = var0.stringPropertyNames().stream().collect(Collectors.toMap(Function.identity(), var0::getProperty));
      return Collections.unmodifiableMap(var1);
   }

   private void a(String var1, String var2, boolean var3) {
      if (var3) {
         String[] var4 = j;
         if (!var4[13].equals(var1) && !var4[8].equals(var1)) {
            a.log(Level.CONFIG, j[3], new Object[]{var1, var2});
         } else {
            var4 = j;
            a.log(Level.CONFIG, var4[5], var1);
         }
      }

      this.h.setProperty(var1, var2);
   }

   @Override
   public Properties getProperties() {
      return this.h;
   }

   @Override
   public String getProperty(String var1, String var2) {
      return this.h.getProperty(var1, var2);
   }

   static {
      String[] var5 = new String[18];
      int var3 = 0;
      String var2 = "2\u001f rL<V\u0014\"\u001f*vT5V$\u0003hcK?R3\b2z\\#\u00195\u0015+=UgV3\u0019.=]9Q=\u0016#`J\u0013M8\u001c/t\"\u0005\u001f2gP>Ev\u000e#\u007f\\=G\"\b?3I\"M&\u001f4g@pYf\u0007{h\b-$\u0013\b4|KpC5\u0019#`J9L1Z2vU5O3\u000e4j\u0019 P9\n#aM9G%0\u0003\t/}^pQ&\u001f%z_9G2Z0rU%Gv\u001c)a\u0019$G:\u001f+vM\"[v\n4|I5P\"\u0003fh\t-\u00072\u001f rL<V\u0017\"\u001f*vT5V$\u0003\u0016aV G$\u000e/vJ\u0000C\"\u0012\u0018\"\u001f*vT5V$\u0003hcK?Z/T6rJ#U9\b\"\u0014\"\u001f*vT5V$\u0003hcK?R3\b2z\\#\b \u001b4zX2N3/\u0003\u00144vZ?E8\u0013<v]pV3\u0016#~\\$P/Z6aV G$\u000e?3]5D?\u0014/gP?LlZ=#D#\"\u001f*vT5V$\u0003\u0016aV Q\u0013\u00140EX\"f3\u001c5=I\"M&\u001f4gP5Q\u001a\"\u001f*vT5V$\u0003h`\\7O3\u00142=N\"K\"\u001f\rv@D\u0006\b)qU5Ov\b#r]9L1Z/}M5P8\u001b*3M5N3\u0017#gK)\u00023\u00140zK?L;\u001f(g\u0019&C$\u0013'qU5Qv\u001e#uP>K\"\u0013)}J\u00195\u0015+=UgV3\u0019.=]9Q=\u0016#`J\u0013M8\u001c/t";
      int var4 = "2\u001f rL<V\u0014\"\u001f*vT5V$\u0003hcK?R3\b2z\\#\u00195\u0015+=UgV3\u0019.=]9Q=\u0016#`J\u0013M8\u001c/t\"\u0005\u001f2gP>Ev\u000e#\u007f\\=G\"\b?3I\"M&\u001f4g@pYf\u0007{h\b-$\u0013\b4|KpC5\u0019#`J9L1Z2vU5O3\u000e4j\u0019 P9\n#aM9G%0\u0003\t/}^pQ&\u001f%z_9G2Z0rU%Gv\u001c)a\u0019$G:\u001f+vM\"[v\n4|I5P\"\u0003fh\t-\u00072\u001f rL<V\u0017\"\u001f*vT5V$\u0003\u0016aV G$\u000e/vJ\u0000C\"\u0012\u0018\"\u001f*vT5V$\u0003hcK?Z/T6rJ#U9\b\"\u0014\"\u001f*vT5V$\u0003hcK?R3\b2z\\#\b \u001b4zX2N3/\u0003\u00144vZ?E8\u0013<v]pV3\u0016#~\\$P/Z6aV G$\u000e?3]5D?\u0014/gP?LlZ=#D#\"\u001f*vT5V$\u0003\u0016aV Q\u0013\u00140EX\"f3\u001c5=I\"M&\u001f4gP5Q\u001a\"\u001f*vT5V$\u0003h`\\7O3\u00142=N\"K\"\u001f\rv@D\u0006\b)qU5Ov\b#r]9L1Z/}M5P8\u001b*3M5N3\u0017#gK)\u00023\u00140zK?L;\u001f(g\u0019&C$\u0013'qU5Qv\u001e#uP>K\"\u0013)}J\u00195\u0015+=UgV3\u0019.=]9Q=\u0016#`J\u0013M8\u001c/t"
         .length();
      char var1 = 7;
      int var7 = -1;

      label24:
      while (true) {
         byte var10000 = 4;
         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) {
                     j = var5;
                     String[] var9 = j;
                     b = j[9];
                     f = var9[0];
                     d = var9[15];
                     c = var9[16];
                     e = var9[10];
                     a = Logger.getLogger(TelemetryPropertiesLoaderImpl.class.getName());
                     g = null;
                     return;
                  }

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

                  var2 = "iTa=\u001f~\u001doH]*\u001dk\u001aX_{\u000e\u0013i-xW~v\u0002i\u0006mT\u007f,\u001b~\u001a\bkP\u007f1\u0013y\u0005x";
                  var4 = "iTa=\u001f~\u001doH]*\u001dk\u001aX_{\u000e\u0013i-xW~v\u0002i\u0006mT\u007f,\u001b~\u001a\bkP\u007f1\u0013y\u0005x".length();
                  var1 = '#';
                  var7 = -1;
            }

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

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

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

      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 -> 82;
            case 1 -> 126;
            case 2 -> 66;
            case 3 -> 23;
            case 4 -> 61;
            case 5 -> 84;
            default -> 38;
         });
      }

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