package com.l7tech.server.secureconversation;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.identity.User;
import com.l7tech.identity.UserBean;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.HexUtils;
import com.l7tech.util.SoapConstants;
import com.l7tech.util.TimeUnit;
import com.l7tech.util.ValidatedConfig;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.collections.map.LRUMap;
import org.apache.commons.collections.map.AbstractLinkedMap.LinkEntry;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

public abstract class SecureConversationContextManager<KT> {
   public static final String LOG_SECRET_VALUES;
   private static final Random a;
   private static final long b = 1L;
   private static final long c = 1000000L;
   private static final int d = 10000;
   private static final long e;
   private static final long f;
   private static final long g;
   private static final long h;
   protected static final int MIN_CLIENT_ENTROPY_BYTES;
   protected static final int MAX_CLIENT_ENTROPY_BYTES;
   protected static final int MIN_SERVER_ENTROPY_BYTES;
   protected static final int MAX_SERVER_ENTROPY_BYTES;
   protected static final int MIN_KEY_SIZE;
   protected static final int MAX_KEY_SIZE;
   protected static final String PROP_DEFAULT_KEY_SIZE;
   private final Logger i;
   protected final LRUMap sessions;
   private final Config j;
   private long k = System.currentTimeMillis();
   private boolean l;
   private static final String[] o;

   public SecureConversationContextManager(final Logger var1, Config var2, boolean var3) {
      this.l = var3;
      this.i = var1;
      this.j = this.a(var2);
      String var10000;
      if (var3) {
         String[] var5 = o;
         var10000 = var5[2];
      } else {
         var10000 = o[22];
      }

      String var4 = var10000;
      this.sessions = new LRUMap(var2.getIntProperty(var4, 10000)) {
         static final long serialVersionUID = 7831470749315400135L;
         private static final String a;

         protected boolean removeLRU(LinkEntry var1x) {
            SecureConversationSession var2x = (SecureConversationSession)var1x.getValue();
            var1.fine(a + var2x.getIdentifier());
            return true;
         }

         static {
            String var10002 = a(43, a("*e\bA.0Y\t \bA;*CNr\u0001G?7C\u0002yDQ)<SNS\u0001G/+R-o\nR?+D\u000ft\rK4yT\u0001n\u0010A\"-\rN"));
            byte var10001 = -1;
            a = var10002;
         }

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

            return var10000x;
         }

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

            for (int var2x = 0; var10000x > var2x; var2x++) {
               var10001[var2x] = (char)(var10001[var2x] ^ var10002 ^ switch (var2x % 7) {
                  case 0 -> 69;
                  case 1 -> 43;
                  case 2 -> 79;
                  case 3 -> 15;
                  case 4 -> 113;
                  case 5 -> 114;
                  default -> 28;
               });
            }

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

   public final SecureConversationSession getSession(KT var1) {
      this.checkExpiredSessions();
      SecureConversationSession var2;
      synchronized (this.sessions) {
         var2 = (SecureConversationSession)this.sessions.get(var1);
      }

      label72: {
         try {
            if (var2 != null || !this.a()) {
               break label72;
            }
         } catch (Exception var13) {
            throw b(var13);
         }

         try {
            var2 = this.loadSession((KT)var1);
            if (var2 != null) {
               synchronized (this.sessions) {
                  label81: {
                     SecureConversationSession var4 = (SecureConversationSession)this.sessions.get(var1);

                     try {
                        if (var4 == null) {
                           this.sessions.put(var1, var2);
                           break label81;
                        }
                     } catch (Exception var10) {
                        throw b(var10);
                     }

                     var2 = var4;
                  }
               }
            }
         } catch (Exception var12) {
            this.i.log(Level.WARNING, o[10] + ExceptionUtils.getMessage(var12), ExceptionUtils.getDebugException(var12));
         }
      }

      try {
         if (var2 == null || var2.getExpiration() > System.currentTimeMillis()) {
            return var2;
         }
      } catch (Exception var9) {
         throw b(var9);
      }

      var2 = null;
      synchronized (this.sessions) {
         this.sessions.remove(var1);
      }

      return var2;
   }

   public final boolean cancelSession(KT var1) {
      boolean var2;
      synchronized (this.sessions) {
         var2 = this.sessions.remove(var1) != null;
      }

      if (this.a()) {
         try {
            this.deleteSession((KT)var1);
         } catch (Exception var5) {
            this.i.log(Level.WARNING, o[11] + ExceptionUtils.getMessage(var5), ExceptionUtils.getDebugException(var5));
         }
      }

      return var2;
   }

   protected void saveSession(KT var1, SecureConversationSession var2) throws SessionCreationException {
      this.validateSessionKey((KT)var1, null);
      synchronized (this.sessions) {
         SecureConversationSession var4 = (SecureConversationSession)this.sessions.get(var1);

         try {
            if (var4 != null) {
               throw new DuplicateSessionException(o[30] + var2.getIdentifier());
            }
         } catch (Exception var8) {
            throw b(var8);
         }

         this.sessions.put(var1, var2);
         Logger var10000 = this.i;
         String var10001 = var2.getIdentifier();
         String[] var6 = o;
         var10000.fine(var6[43] + var10001);
      }

      if (this.a()) {
         try {
            this.storeSession((KT)var1, var2);
         } catch (Exception var7) {
            this.i.log(Level.WARNING, o[5] + ExceptionUtils.getMessage(var7), ExceptionUtils.getDebugException(var7));
         }
      }
   }

   protected void validateSessionKey(KT var1, User var2) throws SessionCreationException {
   }

   protected abstract void storeSession(KT var1, SecureConversationSession var2) throws SaveException;

   protected abstract SecureConversationSession loadSession(KT var1) throws FindException;

   protected abstract void deleteSession(KT var1) throws DeleteException;

   public SecureConversationSession createContextForUser(KT var1, String var2, long var3, User var5, byte[] var6) throws SessionCreationException {
      long var10000;
      label16: {
         try {
            if (var3 > 0L) {
               var10000 = var3;
               break label16;
            }
         } catch (SessionCreationException var10) {
            throw b(var10);
         }

         var10000 = System.currentTimeMillis() + this.getDefaultSessionDuration();
      }

      long var7 = var10000;
      SecureConversationSession var9 = new SecureConversationSession(null, var2, var6, System.currentTimeMillis(), var7, var5);
      this.saveSession((KT)var1, var9);
      return var9;
   }

   public SecureConversationSession createContextForUser(
      User param1,
      KT param2,
      String param3,
      String param4,
      long param5,
      long param7,
      byte[] param9,
      byte[] param10,
      byte[] param11,
      int param12,
      Element param13
   ) throws SessionCreationException {
      // $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 016
      // 004: new com/l7tech/server/secureconversation/SessionCreationException
      // 007: dup
      // 008: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 00b: bipush 32
      // 00d: aaload
      // 00e: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 011: athrow
      // 012: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 015: athrow
      // 016: aload 2
      // 017: ifnonnull 02c
      // 01a: new com/l7tech/server/secureconversation/SessionCreationException
      // 01d: dup
      // 01e: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 021: bipush 35
      // 023: aaload
      // 024: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 027: athrow
      // 028: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 02b: athrow
      // 02c: aload 0
      // 02d: aload 2
      // 02e: aload 1
      // 02f: invokevirtual com/l7tech/server/secureconversation/SecureConversationContextManager.validateSessionKey (Ljava/lang/Object;Lcom/l7tech/identity/User;)V
      // 032: aload 9
      // 034: ifnull 08e
      // 037: aload 9
      // 039: arraylength
      // 03a: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_KEY_SIZE I
      // 03d: if_icmplt 064
      // 040: goto 047
      // 043: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 046: athrow
      // 047: aload 9
      // 049: arraylength
      // 04a: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_KEY_SIZE I
      // 04d: if_icmpgt 064
      // 050: goto 057
      // 053: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 056: athrow
      // 057: aload 9
      // 059: astore 14
      // 05b: aconst_null
      // 05c: astore 15
      // 05e: aconst_null
      // 05f: astore 16
      // 061: goto 252
      // 064: new com/l7tech/server/secureconversation/SessionCreationException
      // 067: dup
      // 068: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_KEY_SIZE I
      // 06b: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_KEY_SIZE I
      // 06e: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 071: astore 19
      // 073: aload 19
      // 075: bipush 25
      // 077: aaload
      // 078: dup_x2
      // 079: pop
      // 07a: aload 19
      // 07c: bipush 33
      // 07e: aaload
      // 07f: swap
      // 080: aload 19
      // 082: bipush 26
      // 084: aaload
      // 085: invokedynamic makeConcatWithConstants (Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 08a: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 08d: athrow
      // 08e: aload 10
      // 090: ifnull 244
      // 093: aload 10
      // 095: arraylength
      // 096: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_CLIENT_ENTROPY_BYTES I
      // 099: if_icmplt 21b
      // 09c: goto 0a3
      // 09f: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a2: athrow
      // 0a3: aload 10
      // 0a5: arraylength
      // 0a6: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_CLIENT_ENTROPY_BYTES I
      // 0a9: if_icmpgt 21b
      // 0ac: goto 0b3
      // 0af: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b2: athrow
      // 0b3: aload 11
      // 0b5: ifnull 1ca
      // 0b8: goto 0bf
      // 0bb: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0be: athrow
      // 0bf: aload 11
      // 0c1: arraylength
      // 0c2: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_SERVER_ENTROPY_BYTES I
      // 0c5: if_icmplt 1a1
      // 0c8: goto 0cf
      // 0cb: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ce: athrow
      // 0cf: aload 11
      // 0d1: arraylength
      // 0d2: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_SERVER_ENTROPY_BYTES I
      // 0d5: if_icmpgt 1a1
      // 0d8: goto 0df
      // 0db: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0de: athrow
      // 0df: iload 12
      // 0e1: ifne 0f7
      // 0e4: goto 0eb
      // 0e7: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ea: athrow
      // 0eb: aload 0
      // 0ec: aload 3
      // 0ed: invokevirtual com/l7tech/server/secureconversation/SecureConversationContextManager.getDefaultKeySize (Ljava/lang/String;)I
      // 0f0: goto 0ff
      // 0f3: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0f6: athrow
      // 0f7: iload 12
      // 0f9: bipush 7
      // 0fb: iadd
      // 0fc: bipush 8
      // 0fe: idiv
      // 0ff: istore 17
      // 101: iload 17
      // 103: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_KEY_SIZE I
      // 106: if_icmplt 118
      // 109: iload 17
      // 10b: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_KEY_SIZE I
      // 10e: if_icmple 143
      // 111: goto 118
      // 114: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 117: athrow
      // 118: new com/l7tech/server/secureconversation/SessionCreationException
      // 11b: dup
      // 11c: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_KEY_SIZE I
      // 11f: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_KEY_SIZE I
      // 122: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 125: bipush 14
      // 127: aaload
      // 128: dup_x2
      // 129: pop
      // 12a: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 12d: bipush 3
      // 12e: aaload
      // 12f: swap
      // 130: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 133: bipush 24
      // 135: aaload
      // 136: invokedynamic makeConcatWithConstants (Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 13b: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 13e: athrow
      // 13f: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 142: athrow
      // 143: aload 0
      // 144: aload 4
      // 146: aload 10
      // 148: aload 11
      // 14a: iload 17
      // 14c: invokevirtual com/l7tech/server/secureconversation/SecureConversationContextManager.a (Ljava/lang/String;[B[BI)[B
      // 14f: astore 14
      // 151: goto 196
      // 154: astore 18
      // 156: new com/l7tech/server/secureconversation/SessionCreationException
      // 159: dup
      // 15a: aload 18
      // 15c: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 15f: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 162: astore 19
      // 164: aload 19
      // 166: bipush 44
      // 168: aaload
      // 169: swap
      // 16a: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 16f: aload 18
      // 171: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 174: athrow
      // 175: astore 18
      // 177: new com/l7tech/server/secureconversation/SessionCreationException
      // 17a: dup
      // 17b: aload 18
      // 17d: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 180: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 183: astore 19
      // 185: aload 19
      // 187: bipush 19
      // 189: aaload
      // 18a: swap
      // 18b: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001" ]
      // 190: aload 18
      // 192: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // 195: athrow
      // 196: aload 10
      // 198: astore 15
      // 19a: aload 11
      // 19c: astore 16
      // 19e: goto 252
      // 1a1: new com/l7tech/server/secureconversation/SessionCreationException
      // 1a4: dup
      // 1a5: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_SERVER_ENTROPY_BYTES I
      // 1a8: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_SERVER_ENTROPY_BYTES I
      // 1ab: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 1ae: astore 19
      // 1b0: aload 19
      // 1b2: bipush 45
      // 1b4: aaload
      // 1b5: dup_x2
      // 1b6: pop
      // 1b7: aload 19
      // 1b9: bipush 3
      // 1ba: aaload
      // 1bb: swap
      // 1bc: aload 19
      // 1be: bipush 24
      // 1c0: aaload
      // 1c1: invokedynamic makeConcatWithConstants (Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 1c6: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 1c9: athrow
      // 1ca: aload 10
      // 1cc: arraylength
      // 1cd: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_KEY_SIZE I
      // 1d0: if_icmplt 1e3
      // 1d3: aload 10
      // 1d5: arraylength
      // 1d6: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_KEY_SIZE I
      // 1d9: if_icmple 20e
      // 1dc: goto 1e3
      // 1df: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1e2: athrow
      // 1e3: new com/l7tech/server/secureconversation/SessionCreationException
      // 1e6: dup
      // 1e7: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_KEY_SIZE I
      // 1ea: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_KEY_SIZE I
      // 1ed: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 1f0: bipush 38
      // 1f2: aaload
      // 1f3: dup_x2
      // 1f4: pop
      // 1f5: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 1f8: bipush 3
      // 1f9: aaload
      // 1fa: swap
      // 1fb: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 1fe: bipush 24
      // 200: aaload
      // 201: invokedynamic makeConcatWithConstants (Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 206: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 209: athrow
      // 20a: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 20d: athrow
      // 20e: aload 10
      // 210: astore 14
      // 212: aconst_null
      // 213: astore 15
      // 215: aconst_null
      // 216: astore 16
      // 218: goto 252
      // 21b: new com/l7tech/server/secureconversation/SessionCreationException
      // 21e: dup
      // 21f: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MIN_CLIENT_ENTROPY_BYTES I
      // 222: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.MAX_CLIENT_ENTROPY_BYTES I
      // 225: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 228: astore 19
      // 22a: aload 19
      // 22c: bipush 39
      // 22e: aaload
      // 22f: dup_x2
      // 230: pop
      // 231: aload 19
      // 233: bipush 3
      // 234: aaload
      // 235: swap
      // 236: aload 19
      // 238: bipush 24
      // 23a: aaload
      // 23b: invokedynamic makeConcatWithConstants (Ljava/lang/String;ILjava/lang/String;ILjava/lang/String;)Ljava/lang/String; bsm=java/lang/invoke/StringConcatFactory.makeConcatWithConstants (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; args=[ "\u0001\u0001\u0001\u0001\u0001" ]
      // 240: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 243: athrow
      // 244: new com/l7tech/server/secureconversation/SessionCreationException
      // 247: dup
      // 248: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 24b: bipush 46
      // 24d: aaload
      // 24e: invokespecial com/l7tech/server/secureconversation/SessionCreationException.<init> (Ljava/lang/String;)V
      // 251: athrow
      // 252: new com/l7tech/server/secureconversation/SecureConversationSession
      // 255: dup
      // 256: aload 3
      // 257: aload 4
      // 259: aload 15
      // 25b: aload 16
      // 25d: aload 14
      // 25f: lload 5
      // 261: lload 7
      // 263: aload 1
      // 264: aload 13
      // 266: invokespecial com/l7tech/server/secureconversation/SecureConversationSession.<init> (Ljava/lang/String;Ljava/lang/String;[B[B[BJJLcom/l7tech/identity/User;Lorg/w3c/dom/Element;)V
      // 269: astore 17
      // 26b: aload 0
      // 26c: aload 2
      // 26d: aload 17
      // 26f: invokevirtual com/l7tech/server/secureconversation/SecureConversationContextManager.saveSession (Ljava/lang/Object;Lcom/l7tech/server/secureconversation/SecureConversationSession;)V
      // 272: aload 17
      // 274: areturn
      // try (125 -> 150): 150 java/security/InvalidKeyException
      // try (122 -> 128): 129 java/security/InvalidKeyException
      // try (105 -> 114): 114 java/security/InvalidKeyException
      // try (98 -> 107): 108 java/security/InvalidKeyException
      // try (91 -> 102): 103 java/security/InvalidKeyException
      // try (86 -> 95): 96 java/security/InvalidKeyException
      // try (79 -> 88): 89 java/security/InvalidKeyException
      // try (72 -> 83): 84 java/security/InvalidKeyException
      // try (70 -> 76): 77 java/security/InvalidKeyException
      // try (28 -> 39): 40 java/security/InvalidKeyException
      // try (22 -> 32): 33 java/security/InvalidKeyException
      // try (11 -> 20): 20 java/security/InvalidKeyException
      // try (0 -> 9): 9 java/security/InvalidKeyException
      // try (152 -> 159): 160 java/security/InvalidKeyException
      // try (152 -> 159): 175 java/security/NoSuchAlgorithmException
      // try (216 -> 224): 225 java/security/InvalidKeyException
      // try (220 -> 246): 246 java/security/InvalidKeyException
   }

   public final long getDefaultSessionDuration() {
      String var10000;
      label16: {
         try {
            if (this.l) {
               var10000 = o[6];
               break label16;
            }
         } catch (IllegalArgumentException var2) {
            throw b(var2);
         }

         var10000 = o[20];
      }

      String var1 = var10000;
      return this.j.getTimeUnitProperty(var1, g);
   }

   protected final void checkExpiredSessions() {
      long var1 = System.currentTimeMillis();
      long var3;
      synchronized (this.sessions) {
         var3 = this.k;
      }

      if (var1 - var3 > h) {
         synchronized (this.sessions) {
            String[] var10 = o;
            this.i.finest(var10[0]);
            Collection var6 = this.sessions.values();
            Iterator var7 = var6.iterator();

            while (var7.hasNext()) {
               SecureConversationSession var8 = (SecureConversationSession)var7.next();

               try {
                  if (var8.getExpiration() <= var1) {
                     this.i.fine(o[21] + var8.getIdentifier());
                     var7.remove();
                  }
               } catch (IllegalArgumentException var11) {
                  throw b(var11);
               }
            }

            this.k = var1;
         }
      }
   }

   protected final byte[] generateNewSecret(int var1) {
      byte[] var2 = new byte[var1];
      a.nextBytes(var2);
      return var2;
   }

   protected final String randomUuid() {
      byte[] var1 = new byte[20];
      a.nextBytes(var1);
      return HexUtils.hexDump(var1);
   }

   protected final int getDefaultKeySize(String var1) {
      int var10000;
      label30: {
         try {
            if (var1 == null) {
               var10000 = -1;
               break label30;
            }
         } catch (IllegalArgumentException var5) {
            throw b(var5);
         }

         var10000 = Arrays.asList(SoapConstants.WSSC_NAMESPACE_ARRAY).indexOf(var1);
      }

      int var2 = var10000;

      try {
         if (var2 < 0) {
            return ConfigFactory.getIntProperty(o[15], 32);
         }
      } catch (IllegalArgumentException var4) {
         throw b(var4);
      }

      String[] var3 = o;
      return ConfigFactory.getIntProperty(var3[37] + var2, ConfigFactory.getIntProperty(var3[42], 32));
   }

   protected SecureConversationSession fromStored(StoredSecureConversationSession var1, byte[] var2) throws FindException {
      return new SecureConversationSession(
         var1.getNamespace(),
         var1.getIdentifier(),
         null,
         null,
         var2,
         var1.getCreated(),
         var1.getExpires(),
         this.a(var1.getProviderId(), var1.getUserId(), var1.getUserLogin()),
         this.a(var1.getGoid(), var1.getToken())
      );
   }

   private Element a(Goid var1, String var2) {
      Element var3 = null;

      try {
         if (var2 == null || var2.isEmpty()) {
            return var3;
         }
      } catch (SAXException var7) {
         throw b(var7);
      }

      try {
         var3 = XmlUtil.parse(var2).getDocumentElement();
      } catch (SAXException var6) {
         Logger var10000 = this.i;
         Level var10001 = Level.WARNING;
         String var10002 = String.valueOf(var1);
         String var10003 = ExceptionUtils.getMessage(var6);
         String[] var5 = o;
         var10000.log(var10001, var5[17] + var10002 + var5[12] + var10003, ExceptionUtils.getDebugException(var6));
      }

      return var3;
   }

   private User a(Goid var1, String var2, String var3) {
      UserBean var4 = new UserBean(var1, var3);
      var4.setUniqueIdentifier(var2);
      return var4;
   }

   private boolean a() {
      return this.j.getBooleanProperty(o[27], false);
   }

   private Config a(Config var1) {
      ValidatedConfig var2 = new ValidatedConfig(var1, this.i);

      String var10000;
      label31: {
         try {
            if (this.l) {
               var10000 = o[8];
               break label31;
            }
         } catch (IllegalArgumentException var7) {
            throw b(var7);
         }

         String[] var5 = o;
         var10000 = var5[29];
      }

      String var3 = var10000;

      label23: {
         try {
            var2.setMinimumValue(var3, e);
            var2.setMaximumValue(var3, f);
            if (this.l) {
               var10000 = o[23];
               break label23;
            }
         } catch (IllegalArgumentException var6) {
            throw b(var6);
         }

         var10000 = o[36];
      }

      String var4 = var10000;
      var2.setMinimumValue(var4, 1L);
      var2.setMaximumValue(var4, 1000000L);
      return var2;
   }

   private byte[] a(String param1, byte[] param2, byte[] param3, int param4) throws InvalidKeyException, NoSuchAlgorithmException {
      // $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 2
      // 01: ifnonnull 16
      // 04: new java/lang/IllegalArgumentException
      // 07: dup
      // 08: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 0b: bipush 9
      // 0d: aaload
      // 0e: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 11: athrow
      // 12: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 15: athrow
      // 16: aload 3
      // 17: ifnonnull 2c
      // 1a: new java/lang/IllegalArgumentException
      // 1d: dup
      // 1e: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 21: bipush 40
      // 23: aaload
      // 24: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 27: athrow
      // 28: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2b: athrow
      // 2c: aload 2
      // 2d: aload 3
      // 2e: iload 4
      // 30: invokestatic com/l7tech/security/xml/SecureConversationKeyDeriver.pSHA1 ([B[BI)[B
      // 33: astore 5
      // 35: aload 0
      // 36: getfield com/l7tech/server/secureconversation/SecureConversationContextManager.i Ljava/util/logging/Logger;
      // 39: getstatic java/util/logging/Level.FINEST Ljava/util/logging/Level;
      // 3c: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 3f: ifeq 82
      // 42: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 45: bipush 28
      // 47: aaload
      // 48: bipush 0
      // 49: invokestatic com/l7tech/util/ConfigFactory.getBooleanProperty (Ljava/lang/String;Z)Z
      // 4c: ifeq 82
      // 4f: goto 56
      // 52: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 55: athrow
      // 56: aload 0
      // 57: getfield com/l7tech/server/secureconversation/SecureConversationContextManager.i Ljava/util/logging/Logger;
      // 5a: getstatic java/util/logging/Level.FINEST Ljava/util/logging/Level;
      // 5d: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 60: bipush 18
      // 62: aaload
      // 63: bipush 2
      // 64: anewarray 179
      // 67: dup
      // 68: bipush 0
      // 69: aload 5
      // 6b: arraylength
      // 6c: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // 6f: aastore
      // 70: dup
      // 71: bipush 1
      // 72: aload 5
      // 74: invokestatic com/l7tech/util/HexUtils.encodeBase64 ([B)Ljava/lang/String;
      // 77: aastore
      // 78: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
      // 7b: goto 82
      // 7e: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 81: athrow
      // 82: aload 0
      // 83: getfield com/l7tech/server/secureconversation/SecureConversationContextManager.i Ljava/util/logging/Logger;
      // 86: getstatic java/util/logging/Level.FINER Ljava/util/logging/Level;
      // 89: invokevirtual java/util/logging/Logger.isLoggable (Ljava/util/logging/Level;)Z
      // 8c: ifeq b7
      // 8f: aload 0
      // 90: getfield com/l7tech/server/secureconversation/SecureConversationContextManager.i Ljava/util/logging/Logger;
      // 93: getstatic java/util/logging/Level.FINER Ljava/util/logging/Level;
      // 96: getstatic com/l7tech/server/secureconversation/SecureConversationContextManager.o [Ljava/lang/String;
      // 99: bipush 41
      // 9b: aaload
      // 9c: bipush 2
      // 9d: anewarray 179
      // a0: dup
      // a1: bipush 0
      // a2: aload 1
      // a3: aastore
      // a4: dup
      // a5: bipush 1
      // a6: aload 5
      // a8: arraylength
      // a9: invokestatic java/lang/Integer.valueOf (I)Ljava/lang/Integer;
      // ac: aastore
      // ad: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
      // b0: goto b7
      // b3: invokestatic com/l7tech/server/secureconversation/SecureConversationContextManager.b (Ljava/lang/Exception;)Ljava/lang/Exception;
      // b6: athrow
      // b7: aload 5
      // b9: areturn
      // try (0 -> 9): 9 java/security/InvalidKeyException
      // try (11 -> 20): 20 java/security/InvalidKeyException
      // try (27 -> 38): 39 java/security/InvalidKeyException
      // try (32 -> 61): 62 java/security/InvalidKeyException
      // try (64 -> 88): 89 java/security/InvalidKeyException
   }

   static {
      String[] var5 = new String[47];
      int var3 = 0;
      String var2 = "c\u0003(C6uxGK+O/<sX\u001b$R8x6S\u000e>S4sxS:C\u0004 \u000e1+bE\b%\u000e.ydV\u000e?\u000e.yuU\u0019(C2r`E\u0019>A)uyNE.L4yxT.#T/sfY&,X\u001febE\u0018\"W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE A%OsS\u0018$O3o\n\u0000\t4T8o6T\u0004m1C\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2aS\u001f?U.h8D\u000e/U:2zO\f\u001eE>nsT=,L(ye*e\u0019?O/<eA\u001d$N:<eE\b8R8<uO\u0005;E/owT\u0002\"N}osS\u0018$O3&6-W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE)E;}cL\u001f\u001eE.o\u007fO\u0005\tU/}bI\u0004#:C\u0004 \u000e1+bE\b%\u000e.ydV\u000e?\u000e.yuU\u0019(C2r`E\u0019>A)uyNE>E/jsR.#T/sfY&,X\u001febE\u0018-W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE)E;}cL\u001f\u001eE.o\u007fO\u0005\tU/}bI\u0004#\u001aC\u0007$E3h6E\u00059R2lo\u0000\u0002>\u0000/ygU\u0002?E9+e\u0019?O/<zO\n)I3{6S\u000e.U/y6C\u0004#V8neA\u001f$O3<eE\u0018>I2r,\u0000,e\u0019?O/<rE\u0007(T4rq\u0000\u0018(C(ns\u0000\b\"N+ydS\n9I2r6S\u000e>S4sx\u001aK\u0002\u001aK\"C\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2aS\u0018.\u000e0}nl\u000e#G)tHu\u0005,B1y6T\u0004mC/ywT\u000emA}osS\u0018$O3&6T\u0003(\u00006yo\u0000\u0018$Z8<\u007fSK#O)<\u007fNK9H8<`A\u0007$D}nwN\f(\u0000;nyMKAC\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2eE\b8R8\u007fyN\u001d(R.}bI\u0004#\u000e9ypA\u001e!T\u000eyuR\u000e9l8rqT\u0003\u0004N\u001febE\u0018:C\u0004 \u000e1+bE\b%\u000e.ydV\u000e?\u000e.yuU\u0019(C2r`E\u0019>A)uyNE>E/jsR.#T/sfY&$N\u001febE\u00182e\u0019?O/<fR\u0004.E.o\u007fN\fmT2wsNK(L8qsN\u001fmF2n6S\u001f\"R8x6S\u000e>S4sx\u00001s\u0003,R8x6S\u000e.R8h6C\u0004 P(hsDGmL8rqT\u0003m\u001d}g&]PmV<pcEKp\u0000&-k\u001be\u0019?O/<uR\u000e,T4rq\u0000\u0018%A/yr\u0000\u0000(Yg<2O\u001e9B2ixDE>E>idE(\"N+ydS\n9I2r8D\u000e+A(pbs\u000e>S4sxd\u001e?A)uyN-d\u000e!E)uxGK(X-udE\u000fms8\u007fcR\u000e\u000eO3jsR\u0018,T4sx\u0000\b\"N)ynTQm'O\u001e9B2ixDE>E>idE(\"N+ydS\n9I2r8M\n5s8oeI\u0004#S\"W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE A%OsS\u0018$O3o\u0007\u0000\t4T8o8Tu\u0005,B1y6T\u0004mC/ywT\u000emA}osS\u0018$O3&6T\u0003(\u0000.twR\u000e)\u0000.yuR\u000e9\u00001yxG\u001f%\u00004o6N\u00049\u00004r6T\u0003(\u0000+}zI\u000fmR<rqEK+R2q6\u0007\u0000\t4T8o8&W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE.L(obE\u0019\u001eE.o\u007fO\u0005>1C\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2aS\u001f?U.h8D\u000e/U:2zO\f\u001eE>nsT=,L(ye2O\u001e9B2ixDE>E>idE(\"N+ydS\n9I2r8D\u000e+A(pbs\u000e>S4sxd\u001e?A)uyN\u001fs\u000e>S4sx\u0000\n!R8}rYK(X4obSK:I)t6I\u000fm\"C\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2aS\u0018.\u000e0uxl\u000e#G)t\u0019S\u000e>S4sx\u0000\u0004:N8n6I\u0018mR8mcI\u0019(D\n\u0000\t4T8o6T\u0004m:C\u0004 \u000e1+bE\b%\u000e.ydV\u000e?\u000e.yuU\u0019(C2r`E\u0019>A)uyNE.L4yxT.#T/sfY&$N\u001febE\u0018\u0017S\u000e>S4sx\u0000\u0000(Y}ue\u0000\u0019(Q(udE\u000f'O\u001e9B2ixDE>E>idE(\"N+ydS\n9I2r8M\n5s8oeI\u0004#SBC\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2eE\b8R8\u007fyN\u001d(R.}bI\u0004#\u000e9ypA\u001e!T\u000eyuR\u000e9l8rqT\u0003\u0004N\u001febE\u0018cHu\u0005,B1y6T\u0004mC/ywT\u000emA}osS\u0018$O3&6T\u0003(\u00006yo\u0000\u0018$Z8<\u007fSK#O)<\u007fNK9H8<`A\u0007$D}nwN\f(\u0000;nyMKUu\u0005,B1y6T\u0004mC/ywT\u000emA}osS\u0018$O3&6T\u0003(\u0000>p\u007fE\u00059\u00008rbR\u0004=Y}psN\f9H}ue\u0000\u0005\"T}ux\u0000\u001f%E}jwL\u0002)\u0000/}xG\u000emF/s{\u0000\u001aS\u000e?V8n6E\u00059R2lo\u0000\u0002>\u0000/ygU\u0002?E94s(mC2rbE\u00139\u0000>nsA\u001f(D}zyRK6\u0010 <+\u001dUmK8e6L\u000e#G)t6B\u00129E.&6[Z0AC\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2eE\b8R8\u007fyN\u001d(R.}bI\u0004#\u000e9ypA\u001e!T\u000eyuR\u000e9l8rqT\u0003\u0004N\u001febE\u0018!s\n;E9<EE\b8R8_yN\u001d(R.}bI\u0004#\u0000>sxT\u000e5T}\u001be\u0019?O/<uR\u000e,T4rq\u0000\u0018%A/yr\u0000\u0000(Yg<";
      int var4 = "c\u0003(C6uxGK+O/<sX\u001b$R8x6S\u000e>S4sxS:C\u0004 \u000e1+bE\b%\u000e.ydV\u000e?\u000e.yuU\u0019(C2r`E\u0019>A)uyNE.L4yxT.#T/sfY&,X\u001febE\u0018\"W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE A%OsS\u0018$O3o\n\u0000\t4T8o6T\u0004m1C\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2aS\u001f?U.h8D\u000e/U:2zO\f\u001eE>nsT=,L(ye*e\u0019?O/<eA\u001d$N:<eE\b8R8<uO\u0005;E/owT\u0002\"N}osS\u0018$O3&6-W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE)E;}cL\u001f\u001eE.o\u007fO\u0005\tU/}bI\u0004#:C\u0004 \u000e1+bE\b%\u000e.ydV\u000e?\u000e.yuU\u0019(C2r`E\u0019>A)uyNE>E/jsR.#T/sfY&,X\u001febE\u0018-W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE)E;}cL\u001f\u001eE.o\u007fO\u0005\tU/}bI\u0004#\u001aC\u0007$E3h6E\u00059R2lo\u0000\u0002>\u0000/ygU\u0002?E9+e\u0019?O/<zO\n)I3{6S\u000e.U/y6C\u0004#V8neA\u001f$O3<eE\u0018>I2r,\u0000,e\u0019?O/<rE\u0007(T4rq\u0000\u0018(C(ns\u0000\b\"N+ydS\n9I2r6S\u000e>S4sx\u001aK\u0002\u001aK\"C\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2aS\u0018.\u000e0}nl\u000e#G)tHu\u0005,B1y6T\u0004mC/ywT\u000emA}osS\u0018$O3&6T\u0003(\u00006yo\u0000\u0018$Z8<\u007fSK#O)<\u007fNK9H8<`A\u0007$D}nwN\f(\u0000;nyMKAC\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2eE\b8R8\u007fyN\u001d(R.}bI\u0004#\u000e9ypA\u001e!T\u000eyuR\u000e9l8rqT\u0003\u0004N\u001febE\u0018:C\u0004 \u000e1+bE\b%\u000e.ydV\u000e?\u000e.yuU\u0019(C2r`E\u0019>A)uyNE>E/jsR.#T/sfY&$N\u001febE\u00182e\u0019?O/<fR\u0004.E.o\u007fN\fmT2wsNK(L8qsN\u001fmF2n6S\u001f\"R8x6S\u000e>S4sx\u00001s\u0003,R8x6S\u000e.R8h6C\u0004 P(hsDGmL8rqT\u0003m\u001d}g&]PmV<pcEKp\u0000&-k\u001be\u0019?O/<uR\u000e,T4rq\u0000\u0018%A/yr\u0000\u0000(Yg<2O\u001e9B2ixDE>E>idE(\"N+ydS\n9I2r8D\u000e+A(pbs\u000e>S4sxd\u001e?A)uyN-d\u000e!E)uxGK(X-udE\u000fms8\u007fcR\u000e\u000eO3jsR\u0018,T4sx\u0000\b\"N)ynTQm'O\u001e9B2ixDE>E>idE(\"N+ydS\n9I2r8M\n5s8oeI\u0004#S\"W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE A%OsS\u0018$O3o\u0007\u0000\t4T8o8Tu\u0005,B1y6T\u0004mC/ywT\u000emA}osS\u0018$O3&6T\u0003(\u0000.twR\u000e)\u0000.yuR\u000e9\u00001yxG\u001f%\u00004o6N\u00049\u00004r6T\u0003(\u0000+}zI\u000fmR<rqEK+R2q6\u0007\u0000\t4T8o8&W\u0018>\u000e.yuU\u0019(c2r`E\u0019>A)uyNE.L(obE\u0019\u001eE.o\u007fO\u0005>1C\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2aS\u001f?U.h8D\u000e/U:2zO\f\u001eE>nsT=,L(ye2O\u001e9B2ixDE>E>idE(\"N+ydS\n9I2r8D\u000e+A(pbs\u000e>S4sxd\u001e?A)uyN\u001fs\u000e>S4sx\u0000\n!R8}rYK(X4obSK:I)t6I\u000fm\"C\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2aS\u0018.\u000e0uxl\u000e#G)t\u0019S\u000e>S4sx\u0000\u0004:N8n6I\u0018mR8mcI\u0019(D\n\u0000\t4T8o6T\u0004m:C\u0004 \u000e1+bE\b%\u000e.ydV\u000e?\u000e.yuU\u0019(C2r`E\u0019>A)uyNE.L4yxT.#T/sfY&$N\u001febE\u0018\u0017S\u000e>S4sx\u0000\u0000(Y}ue\u0000\u0019(Q(udE\u000f'O\u001e9B2ixDE>E>idE(\"N+ydS\n9I2r8M\n5s8oeI\u0004#SBC\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2eE\b8R8\u007fyN\u001d(R.}bI\u0004#\u000e9ypA\u001e!T\u000eyuR\u000e9l8rqT\u0003\u0004N\u001febE\u0018cHu\u0005,B1y6T\u0004mC/ywT\u000emA}osS\u0018$O3&6T\u0003(\u00006yo\u0000\u0018$Z8<\u007fSK#O)<\u007fNK9H8<`A\u0007$D}nwN\f(\u0000;nyMKUu\u0005,B1y6T\u0004mC/ywT\u000emA}osS\u0018$O3&6T\u0003(\u0000>p\u007fE\u00059\u00008rbR\u0004=Y}psN\f9H}ue\u0000\u0005\"T}ux\u0000\u001f%E}jwL\u0002)\u0000/}xG\u000emF/s{\u0000\u001aS\u000e?V8n6E\u00059R2lo\u0000\u0002>\u0000/ygU\u0002?E94s(mC2rbE\u00139\u0000>nsA\u001f(D}zyRK6\u0010 <+\u001dUmK8e6L\u000e#G)t6B\u00129E.&6[Z0AC\u0004 \u000e1+bE\b%\u000e.yuU\u0019$T$2eE\b8R8\u007fyN\u001d(R.}bI\u0004#\u000e9ypA\u001e!T\u000eyuR\u000e9l8rqT\u0003\u0004N\u001febE\u0018!s\n;E9<EE\b8R8_yN\u001d(R.}bI\u0004#\u0000>sxT\u000e5T}\u001be\u0019?O/<uR\u000e,T4rq\u0000\u0018%A/yr\u0000\u0000(Yg<"
         .length();
      char var1 = 29;
      int var7 = -1;

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

         while (true) {
            String var9 = a(var10000, a(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     o = var5;
                     String[] var10 = o;
                     LOG_SECRET_VALUES = o[4];
                     PROP_DEFAULT_KEY_SIZE = var10[42];
                     a = new SecureRandom();
                     e = TimeUnit.MINUTES.toMillis(1L);
                     f = TimeUnit.HOURS.toMillis(24L);
                     g = TimeUnit.HOURS.toMillis(2L);
                     h = TimeUnit.MINUTES.toMillis(5L);
                     String[] var8 = o;
                     MIN_CLIENT_ENTROPY_BYTES = ConfigFactory.getIntProperty(var8[34], 8);
                     MAX_CLIENT_ENTROPY_BYTES = ConfigFactory.getIntProperty(var8[1], 1024);
                     MIN_SERVER_ENTROPY_BYTES = ConfigFactory.getIntProperty(var8[16], 8);
                     MAX_SERVER_ENTROPY_BYTES = ConfigFactory.getIntProperty(var8[7], 1024);
                     MIN_KEY_SIZE = ConfigFactory.getIntProperty(var8[31], 16);
                     MAX_KEY_SIZE = ConfigFactory.getIntProperty(var8[13], 512);
                     return;
                  }

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

                  var2 = "b\u0012;U&n!C\u0013zT8n`C\u0019zVjxdD\u000f3X$1!C\u0014?\u00179nsA\u0019(\u0017/euE\u0013*NjgdY\u001b._jbr\u0017\u00125Cjbo\u0017\b2Rj}`[\u0015>\u00178joP\u0019zQ8dl\u0017ab\u0012;U&n!C\u0013zT8n`C\u0019zVjxdD\u000f3X$1!C\u0014?E/+`E\u0019zY%+r_\u001d(R.+rR\u001f(R>+`Y\u0018zT&bdY\bzR$\u007fsX\f#\u0017>d!T\u000e?V>n!V\\)R9xhX\u0012z\\/r";
                  var4 = "b\u0012;U&n!C\u0013zT8n`C\u0019zVjxdD\u000f3X$1!C\u0014?\u00179nsA\u0019(\u0017/euE\u0013*NjgdY\u001b._jbr\u0017\u00125Cjbo\u0017\b2Rj}`[\u0015>\u00178joP\u0019zQ8dl\u0017ab\u0012;U&n!C\u0013zT8n`C\u0019zVjxdD\u000f3X$1!C\u0014?E/+`E\u0019zY%+r_\u001d(R.+rR\u001f(R>+`Y\u0018zT&bdY\bzR$\u007fsX\f#\u0017>d!T\u000e?V>n!V\\)R9xhX\u0012z\\/r"
                     .length();
                  var1 = 'U';
                  var7 = -1;
            }

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

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

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

      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 -> 10;
            case 1 -> 65;
            case 2 -> 103;
            case 3 -> 10;
            case 4 -> 119;
            case 5 -> 54;
            default -> 60;
         });
      }

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