package com.l7tech.server.security.keystore;

import com.l7tech.common.io.AliasNotFoundException;
import com.l7tech.common.io.CertGenParams;
import com.l7tech.common.io.KeyGenParams;
import com.l7tech.gateway.common.security.keystore.SsgKeyEntry;
import com.l7tech.gateway.common.security.keystore.SsgKeyMetadata;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.ObjectNotFoundException;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.security.prov.CertificateRequest;
import com.l7tech.server.event.system.Started;
import com.l7tech.server.event.system.Stopped;
import com.l7tech.util.ConfigFactory;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.security.InvalidKeyException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.SignatureException;
import java.security.UnrecoverableKeyException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.security.auth.x500.X500Principal;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;

public abstract class JdkKeyStoreBackedSsgKeyStore implements SsgKeyStore {
   private static final Logger a;
   private static final boolean b;
   private static final long c = 5000L;
   private static final String d;
   private static final AtomicBoolean e;
   private static BlockingQueue<Runnable> f;
   private static ExecutorService g;
   protected final KeyAccessFilter keyAccessFilter;
   private final SsgKeyMetadataManager h;
   private static final String[] x;

   protected JdkKeyStoreBackedSsgKeyStore(@NotNull KeyAccessFilter var1, @NotNull SsgKeyMetadataManager var2) {
      if (var1 == null) {
         a(0);
      }

      if (var2 == null) {
         a(1);
      }

      super();
      this.keyAccessFilter = var1;
      this.h = var2;
   }

   private boolean a() {
      return ConfigFactory.getBooleanProperty(x[21], false);
   }

   protected abstract KeyStore keyStore() throws KeyStoreException;

   protected abstract String getFormat();

   protected long getRefreshTime() {
      return ConfigFactory.getTimeUnitProperty(x[36], 5000L);
   }

   public String getId() {
      return String.valueOf(this.getGoid());
   }

   @Override
   public List<String> getAliases() throws KeyStoreException {
      KeyStore var1 = this.keyStore();
      ArrayList var2 = new ArrayList();
      Enumeration var3 = var1.aliases();

      while (var3.hasMoreElements()) {
         String var4 = (String)var3.nextElement();

         try {
            if (var1.isKeyEntry(var4)) {
               var2.add(var4);
            }
         } catch (KeyStoreException var5) {
            throw a(var5);
         }
      }

      return var2;
   }

   @Override
   public SsgKeyEntry getCertificateChain(String param1) throws ObjectNotFoundException, KeyStoreException {
      // $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 0
      // 001: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.keyStore ()Ljava/security/KeyStore;
      // 004: astore 2
      // 005: aload 2
      // 006: aload 1
      // 007: invokevirtual java/security/KeyStore.getCertificateChain (Ljava/lang/String;)[Ljava/security/cert/Certificate;
      // 00a: astore 3
      // 00b: aload 3
      // 00c: ifnonnull 050
      // 00f: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.b Z
      // 012: ifeq 050
      // 015: goto 01c
      // 018: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 01b: athrow
      // 01c: aload 2
      // 01d: invokevirtual java/security/KeyStore.aliases ()Ljava/util/Enumeration;
      // 020: astore 4
      // 022: aload 4
      // 024: invokeinterface java/util/Enumeration.hasMoreElements ()Z 1
      // 029: ifeq 050
      // 02c: aload 4
      // 02e: invokeinterface java/util/Enumeration.nextElement ()Ljava/lang/Object; 1
      // 033: checkcast java/lang/String
      // 036: astore 5
      // 038: aload 5
      // 03a: aload 1
      // 03b: invokevirtual java/lang/String.equalsIgnoreCase (Ljava/lang/String;)Z
      // 03e: ifeq 04d
      // 041: aload 5
      // 043: astore 1
      // 044: aload 2
      // 045: aload 1
      // 046: invokevirtual java/security/KeyStore.getCertificateChain (Ljava/lang/String;)[Ljava/security/cert/Certificate;
      // 049: astore 3
      // 04a: goto 050
      // 04d: goto 022
      // 050: aload 3
      // 051: ifnonnull 079
      // 054: new com/l7tech/objectmodel/ObjectNotFoundException
      // 057: dup
      // 058: aload 0
      // 059: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getName ()Ljava/lang/String;
      // 05c: aload 1
      // 05d: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 060: bipush 17
      // 062: aaload
      // 063: dup_x2
      // 064: pop
      // 065: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 068: bipush 38
      // 06a: aaload
      // 06b: swap
      // 06c: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;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\u0001\u0001" ]
      // 071: invokespecial com/l7tech/objectmodel/ObjectNotFoundException.<init> (Ljava/lang/String;)V
      // 074: athrow
      // 075: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 078: athrow
      // 079: aload 3
      // 07a: arraylength
      // 07b: bipush 1
      // 07c: if_icmpge 0a4
      // 07f: new java/security/KeyStoreException
      // 082: dup
      // 083: aload 0
      // 084: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getName ()Ljava/lang/String;
      // 087: aload 1
      // 088: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 08b: bipush 31
      // 08d: aaload
      // 08e: dup_x2
      // 08f: pop
      // 090: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 093: bipush 50
      // 095: aaload
      // 096: swap
      // 097: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;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\u0001\u0001" ]
      // 09c: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 09f: athrow
      // 0a0: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0a3: athrow
      // 0a4: aload 3
      // 0a5: arraylength
      // 0a6: anewarray 323
      // 0a9: astore 4
      // 0ab: bipush 0
      // 0ac: istore 5
      // 0ae: iload 5
      // 0b0: aload 3
      // 0b1: arraylength
      // 0b2: if_icmpge 14d
      // 0b5: aload 3
      // 0b6: iload 5
      // 0b8: aaload
      // 0b9: ifnonnull 0ee
      // 0bc: goto 0c3
      // 0bf: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0c2: athrow
      // 0c3: new java/security/KeyStoreException
      // 0c6: dup
      // 0c7: aload 0
      // 0c8: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getName ()Ljava/lang/String;
      // 0cb: aload 1
      // 0cc: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 0cf: bipush 31
      // 0d1: aaload
      // 0d2: dup_x2
      // 0d3: pop
      // 0d4: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 0d7: bipush 32
      // 0d9: aaload
      // 0da: swap
      // 0db: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 0de: bipush 39
      // 0e0: aaload
      // 0e1: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;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\u0001\u0001\u0001" ]
      // 0e6: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 0e9: athrow
      // 0ea: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0ed: athrow
      // 0ee: aload 3
      // 0ef: iload 5
      // 0f1: aaload
      // 0f2: instanceof java/security/cert/X509Certificate
      // 0f5: ifeq 10b
      // 0f8: aload 4
      // 0fa: iload 5
      // 0fc: aload 3
      // 0fd: iload 5
      // 0ff: aaload
      // 100: checkcast java/security/cert/X509Certificate
      // 103: aastore
      // 104: goto 147
      // 107: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10a: athrow
      // 10b: new java/security/KeyStoreException
      // 10e: dup
      // 10f: aload 0
      // 110: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getName ()Ljava/lang/String;
      // 113: aload 1
      // 114: aload 3
      // 115: iload 5
      // 117: aaload
      // 118: invokevirtual java/lang/Object.getClass ()Ljava/lang/Class;
      // 11b: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 11e: astore 8
      // 120: astore 9
      // 122: astore 10
      // 124: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 127: astore 20
      // 129: aload 20
      // 12b: bipush 31
      // 12d: aaload
      // 12e: aload 10
      // 130: aload 20
      // 132: bipush 55
      // 134: aaload
      // 135: aload 9
      // 137: aload 20
      // 139: bipush 35
      // 13b: aaload
      // 13c: aload 8
      // 13e: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;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\u0001\u0001\u0001\u0001" ]
      // 143: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 146: athrow
      // 147: iinc 5 1
      // 14a: goto 0ae
      // 14d: aconst_null
      // 14e: astore 5
      // 150: aload 2
      // 151: aload 1
      // 152: aload 0
      // 153: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getEntryPassword ()[C
      // 156: invokevirtual java/security/KeyStore.getKey (Ljava/lang/String;[C)Ljava/security/Key;
      // 159: astore 6
      // 15b: aload 6
      // 15d: instanceof java/security/PrivateKey
      // 160: ifeq 16a
      // 163: aload 6
      // 165: checkcast java/security/PrivateKey
      // 168: astore 5
      // 16a: goto 1e8
      // 16d: astore 6
      // 16f: aload 0
      // 170: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getLogger ()Ljava/util/logging/Logger;
      // 173: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 176: aload 0
      // 177: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getName ()Ljava/lang/String;
      // 17a: aload 1
      // 17b: aload 6
      // 17d: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 180: astore 11
      // 182: astore 12
      // 184: astore 13
      // 186: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 189: astore 20
      // 18b: aload 20
      // 18d: bipush 0
      // 18e: aaload
      // 18f: aload 13
      // 191: aload 20
      // 193: bipush 27
      // 195: aaload
      // 196: aload 12
      // 198: aload 20
      // 19a: bipush 4
      // 19b: aaload
      // 19c: aload 11
      // 19e: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;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\u0001\u0001\u0001\u0001" ]
      // 1a3: aload 6
      // 1a5: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1a8: goto 1e8
      // 1ab: astore 6
      // 1ad: aload 0
      // 1ae: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getLogger ()Ljava/util/logging/Logger;
      // 1b1: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 1b4: aload 0
      // 1b5: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getName ()Ljava/lang/String;
      // 1b8: aload 1
      // 1b9: aload 6
      // 1bb: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 1be: astore 14
      // 1c0: astore 15
      // 1c2: astore 16
      // 1c4: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 1c7: astore 20
      // 1c9: aload 20
      // 1cb: bipush 11
      // 1cd: aaload
      // 1ce: aload 16
      // 1d0: aload 20
      // 1d2: bipush 42
      // 1d4: aaload
      // 1d5: aload 15
      // 1d7: aload 20
      // 1d9: bipush 14
      // 1db: aaload
      // 1dc: aload 14
      // 1de: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;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\u0001\u0001\u0001\u0001" ]
      // 1e3: aload 6
      // 1e5: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 1e8: new com/l7tech/gateway/common/security/keystore/SsgKeyEntry
      // 1eb: dup
      // 1ec: aload 0
      // 1ed: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 1f0: aload 1
      // 1f1: aload 4
      // 1f3: aload 5
      // 1f5: invokespecial com/l7tech/gateway/common/security/keystore/SsgKeyEntry.<init> (Lcom/l7tech/objectmodel/Goid;Ljava/lang/String;[Ljava/security/cert/X509Certificate;Ljava/security/PrivateKey;)V
      // 1f8: astore 6
      // 1fa: aload 0
      // 1fb: getfield com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.h Lcom/l7tech/server/security/keystore/SsgKeyMetadataManager;
      // 1fe: aload 0
      // 1ff: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 202: aload 1
      // 203: invokeinterface com/l7tech/server/security/keystore/SsgKeyMetadataManager.findMetadata (Lcom/l7tech/objectmodel/Goid;Ljava/lang/String;)Lcom/l7tech/gateway/common/security/keystore/SsgKeyMetadata; 3
      // 208: astore 7
      // 20a: aload 7
      // 20c: ifnull 21d
      // 20f: aload 6
      // 211: aload 7
      // 213: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.attachMetadata (Lcom/l7tech/gateway/common/security/keystore/SsgKeyMetadata;)V
      // 216: goto 21d
      // 219: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 21c: athrow
      // 21d: goto 25d
      // 220: astore 7
      // 222: aload 0
      // 223: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getLogger ()Ljava/util/logging/Logger;
      // 226: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 229: aload 0
      // 22a: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getName ()Ljava/lang/String;
      // 22d: aload 1
      // 22e: aload 7
      // 230: invokestatic com/l7tech/util/ExceptionUtils.getMessage (Ljava/lang/Throwable;)Ljava/lang/String;
      // 233: astore 17
      // 235: astore 18
      // 237: astore 19
      // 239: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 23c: astore 20
      // 23e: aload 20
      // 240: bipush 51
      // 242: aaload
      // 243: aload 19
      // 245: aload 20
      // 247: bipush 42
      // 249: aaload
      // 24a: aload 18
      // 24c: aload 20
      // 24e: bipush 14
      // 250: aaload
      // 251: aload 17
      // 253: invokedynamic makeConcatWithConstants (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;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\u0001\u0001\u0001\u0001" ]
      // 258: aload 7
      // 25a: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 25d: aload 0
      // 25e: getfield com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.keyAccessFilter Lcom/l7tech/server/security/keystore/KeyAccessFilter;
      // 261: aload 6
      // 263: invokeinterface com/l7tech/server/security/keystore/KeyAccessFilter.isRestrictedAccessKeyEntry (Lcom/l7tech/gateway/common/security/keystore/SsgKeyEntry;)Z 2
      // 268: ifeq 277
      // 26b: aload 6
      // 26d: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.setRestrictedAccess ()V
      // 270: goto 277
      // 273: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 276: athrow
      // 277: aload 6
      // 279: areturn
      // try (119 -> 132): 132 java/security/NoSuchAlgorithmException
      // try (90 -> 117): 117 java/security/NoSuchAlgorithmException
      // try (86 -> 94): 95 java/security/NoSuchAlgorithmException
      // try (57 -> 78): 78 java/security/NoSuchAlgorithmException
      // try (36 -> 55): 55 java/security/NoSuchAlgorithmException
      // try (7 -> 11): 12 java/security/NoSuchAlgorithmException
      // try (168 -> 180): 181 java/security/NoSuchAlgorithmException
      // try (168 -> 180): 211 java/security/UnrecoverableKeyException
      // try (256 -> 261): 262 java/security/NoSuchAlgorithmException
      // try (249 -> 264): 265 com/l7tech/objectmodel/FindException
      // try (294 -> 301): 302 java/security/NoSuchAlgorithmException
   }

   protected abstract Logger getLogger();

   private void a(SsgKeyEntry param1, boolean param2, boolean param3) throws KeyStoreException {
      // $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: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getAlias ()Ljava/lang/String;
      // 004: astore 4
      // 006: aload 4
      // 008: ifnull 01e
      // 00b: aload 4
      // 00d: invokevirtual java/lang/String.trim ()Ljava/lang/String;
      // 010: invokevirtual java/lang/String.length ()I
      // 013: bipush 1
      // 014: if_icmpge 030
      // 017: goto 01e
      // 01a: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 01d: athrow
      // 01e: new java/security/KeyStoreException
      // 021: dup
      // 022: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 025: bipush 41
      // 027: aaload
      // 028: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 02b: athrow
      // 02c: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 02f: athrow
      // 030: aload 1
      // 031: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getCertificateChain ()[Ljava/security/cert/X509Certificate;
      // 034: astore 5
      // 036: aload 5
      // 038: ifnull 049
      // 03b: aload 5
      // 03d: arraylength
      // 03e: bipush 1
      // 03f: if_icmpge 05b
      // 042: goto 049
      // 045: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 048: athrow
      // 049: new java/security/KeyStoreException
      // 04c: dup
      // 04d: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 050: bipush 44
      // 052: aaload
      // 053: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 056: athrow
      // 057: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 05a: athrow
      // 05b: aload 1
      // 05c: invokevirtual com/l7tech/gateway/common/security/keystore/SsgKeyEntry.getPrivateKey ()Ljava/security/PrivateKey;
      // 05f: astore 6
      // 061: aload 6
      // 063: ifnonnull 078
      // 066: new java/security/KeyStoreException
      // 069: dup
      // 06a: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 06d: bipush 37
      // 06f: aaload
      // 070: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 073: athrow
      // 074: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 077: athrow
      // 078: goto 08f
      // 07b: astore 7
      // 07d: new java/security/KeyStoreException
      // 080: dup
      // 081: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 084: astore 11
      // 086: aload 11
      // 088: bipush 20
      // 08a: aaload
      // 08b: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 08e: athrow
      // 08f: aload 0
      // 090: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.keyStore ()Ljava/security/KeyStore;
      // 093: astore 7
      // 095: aload 0
      // 096: aload 6
      // 098: aload 5
      // 09a: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/security/PrivateKey;[Ljava/security/cert/X509Certificate;)V
      // 09d: iload 2
      // 09e: ifne 0ce
      // 0a1: aload 7
      // 0a3: aload 4
      // 0a5: invokevirtual java/security/KeyStore.containsAlias (Ljava/lang/String;)Z
      // 0a8: ifeq 0ce
      // 0ab: goto 0b2
      // 0ae: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0b1: athrow
      // 0b2: new java/security/KeyStoreException
      // 0b5: dup
      // 0b6: aload 4
      // 0b8: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 0bb: bipush 7
      // 0bd: aaload
      // 0be: swap
      // 0bf: ldc "'"
      // 0c1: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 0c6: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 0c9: athrow
      // 0ca: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 0cd: athrow
      // 0ce: aload 0
      // 0cf: aload 7
      // 0d1: aload 4
      // 0d3: aload 5
      // 0d5: bipush 1
      // 0d6: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/security/KeyStore;Ljava/lang/String;[Ljava/security/cert/Certificate;Z)Lcom/l7tech/server/security/keystore/ReplaceCertificateChainManager;
      // 0d9: astore 8
      // 0db: aload 8
      // 0dd: iload 3
      // 0de: invokevirtual com/l7tech/server/security/keystore/ReplaceCertificateChainManager.update (Z)V
      // 0e1: goto 11e
      // 0e4: astore 9
      // 0e6: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a Ljava/util/logging/Logger;
      // 0e9: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 0ec: aload 9
      // 0ee: invokevirtual com/l7tech/server/security/keystore/ReplaceCertificateChainManager$ReplaceCertificateChainException.getMessage ()Ljava/lang/String;
      // 0f1: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 0f4: astore 11
      // 0f6: aload 11
      // 0f8: bipush 49
      // 0fa: aaload
      // 0fb: swap
      // 0fc: 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" ]
      // 101: aload 9
      // 103: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
      // 106: new java/security/KeyStoreException
      // 109: dup
      // 10a: aload 9
      // 10c: invokevirtual com/l7tech/server/security/keystore/ReplaceCertificateChainManager$ReplaceCertificateChainException.getMessage ()Ljava/lang/String;
      // 10f: aload 11
      // 111: bipush 28
      // 113: aaload
      // 114: swap
      // 115: 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" ]
      // 11a: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 11d: athrow
      // 11e: aload 7
      // 120: aload 4
      // 122: aload 6
      // 124: aload 0
      // 125: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getEntryPassword ()[C
      // 128: aload 5
      // 12a: invokevirtual java/security/KeyStore.setKeyEntry (Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V
      // 12d: goto 173
      // 130: astore 9
      // 132: aload 8
      // 134: invokevirtual com/l7tech/server/security/keystore/ReplaceCertificateChainManager.rollback ()V
      // 137: aload 7
      // 139: aload 4
      // 13b: invokevirtual java/security/KeyStore.containsAlias (Ljava/lang/String;)Z
      // 13e: ifeq 170
      // 141: aload 7
      // 143: aload 4
      // 145: invokevirtual java/security/KeyStore.deleteEntry (Ljava/lang/String;)V
      // 148: goto 170
      // 14b: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 14e: athrow
      // 14f: astore 10
      // 151: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a Ljava/util/logging/Logger;
      // 154: getstatic java/util/logging/Level.WARNING Ljava/util/logging/Level;
      // 157: aload 4
      // 159: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 15c: astore 11
      // 15e: aload 11
      // 160: bipush 1
      // 161: aaload
      // 162: swap
      // 163: aload 11
      // 165: bipush 12
      // 167: aaload
      // 168: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 16d: invokevirtual java/util/logging/Logger.log (Ljava/util/logging/Level;Ljava/lang/String;)V
      // 170: aload 9
      // 172: athrow
      // 173: return
      // try (46 -> 55): 55 java/security/UnrecoverableKeyException
      // try (27 -> 41): 41 java/security/UnrecoverableKeyException
      // try (25 -> 31): 32 java/security/UnrecoverableKeyException
      // try (5 -> 20): 20 java/security/UnrecoverableKeyException
      // try (3 -> 10): 11 java/security/UnrecoverableKeyException
      // try (43 -> 57): 58 java/security/UnrecoverableKeyException
      // try (77 -> 95): 95 java/security/UnrecoverableKeyException
      // try (71 -> 81): 82 java/security/UnrecoverableKeyException
      // try (97 -> 107): 108 com/l7tech/server/security/keystore/ReplaceCertificateChainManager$ReplaceCertificateChainException
      // try (133 -> 140): 141 java/lang/Exception
      // try (148 -> 151): 154 java/security/KeyStoreException
      // try (142 -> 152): 152 java/security/UnrecoverableKeyException
   }

   private ReplaceCertificateChainManager a(KeyStore var1, String var2, Certificate[] var3, boolean var4) throws ReplaceCertificateChainManager.ReplaceCertificateChainException {
      return new ReplaceCertificateChainManager.Builder().a(var1).a(this::getEntryPassword).a(var2).b(var4).a(this.a()).a(var3).build();
   }

   private void a(PrivateKey var1, X509Certificate[] var2) throws KeyStoreException {
      try {
         String[] var6 = x;
         KeyStore var3 = KeyStore.getInstance(var6[46]);
         var3.load(null, null);
         var3.setKeyEntry(var6[43], var1, this.getEntryPassword(), var2);
         ByteArrayOutputStream var4 = new ByteArrayOutputStream();
         var3.store(var4, this.getEntryPassword());
         KeyStore var5 = KeyStore.getInstance(var6[8]);
         var5.load(new ByteArrayInputStream(var4.toByteArray()), this.getEntryPassword());
      } catch (CertificateException | NoSuchAlgorithmException | IOException var7) {
         a.info(x[29] + var7.getMessage());
         throw new KeyStoreException(var7);
      }
   }

   protected abstract char[] getEntryPassword();

   @Override
   public boolean isMutable() {
      return true;
   }

   @Override
   public boolean isKeyExportSupported() {
      return true;
   }

   @Override
   public SsgKeyStore getKeyStore() {
      return this;
   }

   @Override
   public synchronized Future<Boolean> storePrivateKeyEntry(Runnable var1, SsgKeyEntry var2, boolean var3, boolean var4) throws KeyStoreException {
      return this.storePrivateKeyEntry(false, var1, var2, var3, var4);
   }

   @Override
   public synchronized Future<Boolean> storePrivateKeyEntry(boolean var1, Runnable var2, SsgKeyEntry var3, boolean var4) throws KeyStoreException {
      return this.storePrivateKeyEntry(var1, var2, var3, var4, false);
   }

   @Override
   public synchronized Future<Boolean> storePrivateKeyEntry(boolean var1, Runnable var2, SsgKeyEntry var3, boolean var4, boolean var5) throws KeyStoreException {
      try {
         if (var3 == null) {
            throw new NullPointerException(x[23]);
         }
      } catch (UnrecoverableKeyException var12) {
         throw a(var12);
      }

      try {
         if (var3.getAlias() == null) {
            throw new NullPointerException(x[22]);
         }
      } catch (UnrecoverableKeyException var8) {
         throw a(var8);
      }

      try {
         if (var3.getAlias().length() < 1) {
            throw new IllegalArgumentException(x[5]);
         }
      } catch (UnrecoverableKeyException var11) {
         throw a(var11);
      }

      try {
         PrivateKey var6 = var3.getPrivateKey();

         try {
            if (var6 == null) {
               throw new NullPointerException(x[45]);
            }
         } catch (UnrecoverableKeyException var9) {
            throw a(var9);
         }
      } catch (UnrecoverableKeyException var10) {
         throw new IllegalArgumentException(x[15], var10);
      }

      return this.mutateKeystore(var1, var2, new a(this, var3, var4, var5));
   }

   @Override
   public synchronized Future<Boolean> deletePrivateKeyEntry(Runnable var1, String var2) throws KeyStoreException {
      return this.deletePrivateKeyEntry(false, var1, var2);
   }

   @Override
   public synchronized Future<Boolean> deletePrivateKeyEntry(boolean var1, Runnable var2, String var3) throws KeyStoreException {
      return this.mutateKeystore(var1, var2, new b(this, var3));
   }

   @Override
   public synchronized Future<X509Certificate> generateKeyPair(Runnable var1, String var2, KeyGenParams var3, CertGenParams var4, @Nullable SsgKeyMetadata var5) throws GeneralSecurityException {
      return this.mutateKeystore(var1, new c(this, var2, var4, var3, var5));
   }

   // $VF: Handled exception range with multiple entry points by splitting it
   // $VF: Duplicated exception handlers to handle obfuscated exceptions
   private boolean a(KeyStore var1, X500Principal var2) throws KeyStoreException {
      Enumeration var3 = var1.aliases();

      label50: {
         try {
            if (var3 == null) {
               break label50;
            }
         } catch (KeyStoreException var14) {
            throw a(var14);
         }

         while (true) {
            try {
               if (!var3.hasMoreElements()) {
                  break;
               }
            } catch (KeyStoreException var13) {
               throw a(var13);
            }

            String var4 = (String)var3.nextElement();
            Certificate[] var5 = var1.getCertificateChain(var4);
            if (var5 != null) {
               for (Certificate var9 : var5) {
                  X500Principal var10000 = ((X509Certificate)var9).getSubjectX500Principal();
                  String[] var11 = x;
                  String var10 = var10000.getName(var11[40]);

                  try {
                     if (var10.equalsIgnoreCase(var2.getName(var11[9]))) {
                        return true;
                     }
                  } catch (KeyStoreException var15) {
                     throw a(var15);
                  }
               }
            }
         }
      }

      try {
         return false;
      } catch (KeyStoreException var12) {
         throw a(var12);
      }
   }

   @Override
   public synchronized List<String> findImpactedKeysByReplaceCertChain(String var1, X509Certificate[] var2) throws AliasNotFoundException, GeneralSecurityException {
      KeyStore var3 = this.keyStore();

      try {
         return this.a(var3, var1, var2, false).getImpactedKeys();
      } catch (ReplaceCertificateChainManager.ReplaceCertificateChainException var6) {
         Logger var10000 = a;
         Level var10001 = Level.WARNING;
         String var10002 = var6.getMessage();
         String[] var5 = x;
         var10000.log(var10001, var5[53] + var10002, var6);
         throw new GeneralSecurityException(var5[47] + var6.getMessage());
      }
   }

   @Override
   public synchronized Future<Boolean> replaceCertificateChain(Runnable param1, String param2, X509Certificate[] param3, boolean param4) throws InvalidKeyException, KeyStoreException {
      // $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 3
      // 01: ifnull 1e
      // 04: aload 3
      // 05: arraylength
      // 06: bipush 1
      // 07: if_icmplt 1e
      // 0a: goto 11
      // 0d: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 10: athrow
      // 11: aload 3
      // 12: bipush 0
      // 13: aaload
      // 14: ifnonnull 30
      // 17: goto 1e
      // 1a: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1d: athrow
      // 1e: new java/lang/IllegalArgumentException
      // 21: dup
      // 22: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 25: bipush 13
      // 27: aaload
      // 28: invokespecial java/lang/IllegalArgumentException.<init> (Ljava/lang/String;)V
      // 2b: athrow
      // 2c: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 2f: athrow
      // 30: aload 0
      // 31: aload 1
      // 32: new com/l7tech/server/security/keystore/d
      // 35: dup
      // 36: aload 0
      // 37: aload 2
      // 38: aload 3
      // 39: iload 4
      // 3b: invokespecial com/l7tech/server/security/keystore/d.<init> (Lcom/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore;Ljava/lang/String;[Ljava/security/cert/X509Certificate;Z)V
      // 3e: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.mutateKeystore (Ljava/lang/Runnable;Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
      // 41: areturn
      // try (0 -> 6): 7 java/security/InvalidKeyException
      // try (2 -> 13): 14 java/security/InvalidKeyException
      // try (9 -> 23): 23 java/security/InvalidKeyException
   }

   @Override
   public synchronized CertificateRequest makeCertificateSigningRequest(String param1, CertGenParams param2) throws InvalidKeyException, SignatureException, KeyStoreException {
      // $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: invokevirtual com/l7tech/common/io/CertGenParams.getSubjectDn ()Ljavax/security/auth/x500/X500Principal;
      // 04: ifnonnull 19
      // 07: new java/security/KeyStoreException
      // 0a: dup
      // 0b: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 0e: bipush 54
      // 10: aaload
      // 11: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 14: athrow
      // 15: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 18: athrow
      // 19: aload 0
      // 1a: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.keyStore ()Ljava/security/KeyStore;
      // 1d: astore 3
      // 1e: aload 3
      // 1f: aload 1
      // 20: aload 0
      // 21: invokevirtual com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.getEntryPassword ()[C
      // 24: invokevirtual java/security/KeyStore.getKey (Ljava/lang/String;[C)Ljava/security/Key;
      // 27: astore 4
      // 29: aload 4
      // 2b: checkcast java/security/PrivateKey
      // 2e: astore 5
      // 30: aload 3
      // 31: aload 1
      // 32: invokevirtual java/security/KeyStore.getCertificateChain (Ljava/lang/String;)[Ljava/security/cert/Certificate;
      // 35: astore 6
      // 37: aload 6
      // 39: ifnull 4a
      // 3c: aload 6
      // 3e: arraylength
      // 3f: bipush 1
      // 40: if_icmpge 69
      // 43: goto 4a
      // 46: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 49: athrow
      // 4a: new java/security/KeyStoreException
      // 4d: dup
      // 4e: aload 1
      // 4f: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 52: bipush 24
      // 54: aaload
      // 55: swap
      // 56: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 59: bipush 48
      // 5b: aaload
      // 5c: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 61: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 64: athrow
      // 65: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 68: athrow
      // 69: aload 6
      // 6b: bipush 0
      // 6c: aaload
      // 6d: instanceof java/security/cert/X509Certificate
      // 70: ifne 92
      // 73: new java/security/KeyStoreException
      // 76: dup
      // 77: aload 1
      // 78: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 7b: bipush 26
      // 7d: aaload
      // 7e: swap
      // 7f: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 82: bipush 16
      // 84: aaload
      // 85: invokedynamic makeConcatWithConstants (Ljava/lang/String;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\u0001" ]
      // 8a: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/String;)V
      // 8d: athrow
      // 8e: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 91: athrow
      // 92: aload 6
      // 94: bipush 0
      // 95: aaload
      // 96: checkcast java/security/cert/X509Certificate
      // 99: astore 7
      // 9b: new java/security/KeyPair
      // 9e: dup
      // 9f: aload 7
      // a1: invokevirtual java/security/cert/X509Certificate.getPublicKey ()Ljava/security/PublicKey;
      // a4: aload 5
      // a6: invokespecial java/security/KeyPair.<init> (Ljava/security/PublicKey;Ljava/security/PrivateKey;)V
      // a9: astore 8
      // ab: aload 2
      // ac: aload 8
      // ae: invokestatic com/l7tech/security/cert/BouncyCastleCertUtils.makeCertificateRequest (Lcom/l7tech/common/io/CertGenParams;Ljava/security/KeyPair;)Lcom/l7tech/security/prov/CertificateRequest;
      // b1: areturn
      // b2: astore 3
      // b3: new java/security/InvalidKeyException
      // b6: dup
      // b7: aload 1
      // b8: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // bb: bipush 34
      // bd: aaload
      // be: swap
      // bf: 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" ]
      // c4: aload 3
      // c5: invokespecial java/security/InvalidKeyException.<init> (Ljava/lang/String;Ljava/lang/Throwable;)V
      // c8: athrow
      // c9: astore 3
      // ca: new java/security/KeyStoreException
      // cd: dup
      // ce: aload 3
      // cf: invokespecial java/security/KeyStoreException.<init> (Ljava/lang/Throwable;)V
      // d2: athrow
      // try (52 -> 70): 70 java/security/NoSuchAlgorithmException
      // try (30 -> 50): 50 java/security/NoSuchAlgorithmException
      // try (28 -> 34): 35 java/security/NoSuchAlgorithmException
      // try (0 -> 10): 10 java/security/NoSuchAlgorithmException
      // try (0 -> 87): 88 java/security/NoSuchAlgorithmException
      // try (0 -> 87): 100 java/security/UnrecoverableKeyException
   }

   @Override
   public void updateKeyMetadata(Goid var1, @NotNull String var2, @Nullable SsgKeyMetadata var3) throws UpdateException, FindException, SaveException {
      try {
         if (var2 == null) {
            a(2);
         }
      } catch (UpdateException var4) {
         throw a(var4);
      }

      this.h.updateMetadataForKey(var1, var2, var3);
   }

   protected <OUT> Future<OUT> submitMutation(boolean param1, Callable<OUT> param2) throws KeyStoreException {
      // $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: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.e Ljava/util/concurrent/atomic/AtomicBoolean;
      // 03: invokevirtual java/util/concurrent/atomic/AtomicBoolean.get ()Z
      // 06: ifeq 14
      // 09: iload 1
      // 0a: ifeq 5c
      // 0d: goto 14
      // 10: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 13: athrow
      // 14: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a Ljava/util/logging/Logger;
      // 17: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.e Ljava/util/concurrent/atomic/AtomicBoolean;
      // 1a: invokevirtual java/util/concurrent/atomic/AtomicBoolean.get ()Z
      // 1d: ifeq 33
      // 20: goto 27
      // 23: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 26: athrow
      // 27: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 2a: bipush 2
      // 2b: aaload
      // 2c: goto 35
      // 2f: invokestatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 32: athrow
      // 33: ldc "."
      // 35: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.x [Ljava/lang/String;
      // 38: bipush 6
      // 3a: aaload
      // 3b: swap
      // 3c: 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" ]
      // 41: invokevirtual java/util/logging/Logger.info (Ljava/lang/String;)V
      // 44: new com/l7tech/util/NotFuture
      // 47: dup
      // 48: aload 2
      // 49: invokeinterface java/util/concurrent/Callable.call ()Ljava/lang/Object; 1
      // 4e: invokespecial com/l7tech/util/NotFuture.<init> (Ljava/lang/Object;)V
      // 51: areturn
      // 52: astore 3
      // 53: new com/l7tech/util/NotFuture
      // 56: dup
      // 57: aload 3
      // 58: invokespecial com/l7tech/util/NotFuture.<init> (Ljava/lang/Exception;)V
      // 5b: areturn
      // 5c: getstatic com/l7tech/server/security/keystore/JdkKeyStoreBackedSsgKeyStore.g Ljava/util/concurrent/ExecutorService;
      // 5f: aload 2
      // 60: invokeinterface java/util/concurrent/ExecutorService.submit (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; 2
      // 65: areturn
      // try (8 -> 19): 19 java/lang/Exception
      // try (3 -> 12): 13 java/lang/Exception
      // try (0 -> 5): 6 java/lang/Exception
      // try (28 -> 33): 34 java/lang/Exception
   }

   protected <OUT> Future<OUT> mutateKeystore(Runnable var1, Callable<OUT> var2) throws KeyStoreException {
      return this.mutateKeystore(false, var1, var2);
   }

   protected abstract <OUT> Future<OUT> mutateKeystore(boolean var1, Runnable var2, Callable<OUT> var3) throws KeyStoreException;

   static {
      String[] var5 = new String[56];
      int var3 = 0;
      String var2 = "TU~\u0005G\u0006$sOh\u0014\u0017\u001d.x\u001by\tG\u0013khU-\u0013R\u0004?!^c\u0004E\u000fkhU-:s=kJ^t\u0003C\u00199d\u001b/BTx\u001cSV%nO-\u0011B\u0002$lZy\u0019T\u0017'mB-\u0013[\u0013*oN}P\\\u00132!Ld\u0004_V*mRl\u0003\u0017\u0016!\u0013~\u0015E\u0000.s\u001bc\u001fCV8uZ\u007f\u0004R\u0012b/\u000fj^t1T\u0015.rHK\u0019[\u0002.s\u0002;\u001b\u001fdUy\u0002NQ8!Za\u0019V\u0005klN~\u0004\u0017\u0018$u\u001bo\u0015\u0017\u0013&qOt*THd\u001ePV(tI\u007f\u0015Y\u0002kuS\u007f\u0015V\u0012kgT\u007fP\\\u00132rOb\u0002RV&tOl\u0004^\u0019%3J^t\u0003C\u00199d\u001bl\u001cE\u0013*eB-\u0013X\u0018?`Rc\u0003\u0017\u0017%!^c\u0004E\u000fkvRy\u0018\u0017\u0002#d\u001bl\u001c^\u00178!\u001c\u0003kP~\u0007S}NB\u0005Cx\u000fl^y\u0011S\u0017?`vl\u001eV\u0011.s,TU\u007f\u0015T\u0019=dIl\u0012[\u0013kj^tP^\u0018kb^\u007f\u0004\u0017\u0013%uItP^\u0018kJ^t\u0003C\u00199d\u001b)!Zk\u0004R\u0004kgZd\u001cB\u0004.!Zi\u0014^\u0018,!RyPC\u0019kuShP\\\u00132rOb\u0002RX*B^\u007f\u0004\u0017\u0015#`RcPZ\u00038u\u001bn\u001fY\u0002*hU-\u0011CV'dZ~\u0004\u0017\u0019%d\u001bn\u0015E\u0002e\u0002;\u001b#dUy\u0002NQ8!K\u007f\u0019A\u0017?d\u001bf\u0015NV&tHyPU\u0013kqIh\u0003R\u0018?\u001c!R~PY\u0019?!ZcPoX~1\u0002-\u0013R\u0004?h]d\u0013V\u0002.\tJ^t\u0003C\u00199d\u001b\u0011tKi\u0011C\u0013\u0000dB@\u0015C\u0017/`OlObT`^[A?dXe^D\u00139w^\u007f^D\u0013(tId\u0004NX dB~\u0004X\u0004./Qi\u001bU\u0017(j^i^T\u001e.bPK\u001fE5*r^D\u001eD\u0013%rRy\u0019A\u0013\nmRl\u0003z\u0017?bS@TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NV<hOePB\u00189dXb\u0006R\u0004*cWhPG\u0004\"wZy\u0015\u0017\u001d.x#j^t#C\u00199d\u0015l\u001c[\u0019<EN}\u001c^\u0015*u^~2N%>cQh\u0013C2\u0005\u001edUy\u0002NQ8!Za\u0019V\u0005klN~\u0004\u0017\u0018$u\u001bo\u0015\u0017\u0018>mW\u0016dUy\u0002NV&tHyPY\u0019?!YhPY\u0003'm%DCd\u0003C\u001f%f\u001bn\u0015E\u0002\"gRn\u0011C\u0013kbSl\u0019YV-nI-\u0011[\u001f*r\u001b@bT`_[A?dXe_D\u00139w^\u007f_D\u0013(tId\u0004NY dB~\u0004X\u0004..qi\u001b|\u00132ROb\u0002R4*bPh\u0014d\u0005,J^t#C\u00199d\u001fDCd\u0003C\u001f%f\u001bn\u0015E\u0002\"gRn\u0011C\u0013kgT\u007fPV\u001a\"`H-\f!Ld\u0004_V*mRl\u0003\u0017#TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NZk\u0016TUl\u0012[\u0013kuT-\u0019Z\u0006$sO-\u001bR\u000fq!>@Ij\u0005Z\u0013%u\u001bk\u001fEV\u000bOTy>B\u001a'!Kl\u0002V\u001b.u^\u007fP\u0010S8&\u001bb\u0016\u0017S8/\u001e~PZ\u00038u\u001bc\u001fCV)d\u001bc\u0005[\u001a\tJ^t\u0003C\u00199d\u001b\u0012!^c\u0004E\u000fkvRy\u0018\u0017\u0017'hZ~P\u0006=Rc\u0019CH$J^t\u0003C\u00199d\u001bn\u001fY\u0002*hU~PY\u0019kj^tP@\u001f?i\u001bl\u001c^\u00178!*!Xb\u001eC\u0017\"oH-\u0011\u0017\u0018$o\u0016U^\u0002Fr!xh\u0002C\u001f-hXl\u0004RV$g\u001by\tG\u0013k\u0017j^t#C\u00199d}d\u001cR5*bSh5O\u0006\"sB7TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NV<hOePY\u0003'm\u001b}\u0002^\u0000*u^-\u001bR\u000f9!_b\u0015DV%nO-\u0013X\u0018?`RcPV\u00182!Xh\u0002C\u001f-hXl\u0004RV(iZd\u001e\u0017\u0013%uItP@\u001f?i\u001bl\u001c^\u00178!(!Xb\u001eC\u0017\"oH-\u0011\u0017\u0018>mW-\u0015Y\u00029x\u001bd\u001e\u0017\u001f?r\u001bn\u0015E\u0002kbSl\u0019Y\u0007S}NB\u0005Cx:TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NV<hOePY\u0003'm\u001bb\u0002\u0017\u0013&qOtPV\u001a\"`H\f!Ld\u0004_V*mRl\u0003\u0017\u0005`Wd\u0011DFTUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NV<hOePY\u0003'm\u001bb\u0002\u0017\u0013&qOtPT\u00139uRk\u0019T\u0017?d\u001bn\u0018V\u001f%#dUy\u0002NQ8!K\u007f\u0019A\u0017?d\u001bf\u0015NV&tHyPU\u0013kqIh\u0003R\u0018?\u0003kP~+TUl\u0012[\u0013kuT-\u0016^\u0018/!R`\u0000V\u0015?d_-\u0013R\u0004?h]d\u0013V\u0002.!Xe\u0011^\u0018q!\t!R~PR\u001b;uB#TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NZk5!Xb\u001eC\u0017\"oH-\u0011YV.lKy\t\u0017\u0015.sOd\u0016^\u0015*u^-\u0013_\u0017\"o\u001bh\u001eC\u00042!]b\u0002\u0017\u0017'hZ~P3TUl\u0012[\u0013kuT-\u0002R\u00029h^{\u0015\u0017\u001d.x\u001bh\u001eC\u00042!Vh\u0004V\u0012*uZ-\u0016X\u0004kJ^t\u0003C\u00199d\u001b\u0005`Wd\u0011D/GZd\u001cR\u0012kuT-\u0017R\u0002kuShP^\u001b;`Xy\u0015SV(dIy\u0019Q\u001f(`OhPT\u001e*hU~J\u0017";
      int var4 = "TU~\u0005G\u0006$sOh\u0014\u0017\u001d.x\u001by\tG\u0013khU-\u0013R\u0004?!^c\u0004E\u000fkhU-:s=kJ^t\u0003C\u00199d\u001b/BTx\u001cSV%nO-\u0011B\u0002$lZy\u0019T\u0017'mB-\u0013[\u0013*oN}P\\\u00132!Ld\u0004_V*mRl\u0003\u0017\u0016!\u0013~\u0015E\u0000.s\u001bc\u001fCV8uZ\u007f\u0004R\u0012b/\u000fj^t1T\u0015.rHK\u0019[\u0002.s\u0002;\u001b\u001fdUy\u0002NQ8!Za\u0019V\u0005klN~\u0004\u0017\u0018$u\u001bo\u0015\u0017\u0013&qOt*THd\u001ePV(tI\u007f\u0015Y\u0002kuS\u007f\u0015V\u0012kgT\u007fP\\\u00132rOb\u0002RV&tOl\u0004^\u0019%3J^t\u0003C\u00199d\u001bl\u001cE\u0013*eB-\u0013X\u0018?`Rc\u0003\u0017\u0017%!^c\u0004E\u000fkvRy\u0018\u0017\u0002#d\u001bl\u001c^\u00178!\u001c\u0003kP~\u0007S}NB\u0005Cx\u000fl^y\u0011S\u0017?`vl\u001eV\u0011.s,TU\u007f\u0015T\u0019=dIl\u0012[\u0013kj^tP^\u0018kb^\u007f\u0004\u0017\u0013%uItP^\u0018kJ^t\u0003C\u00199d\u001b)!Zk\u0004R\u0004kgZd\u001cB\u0004.!Zi\u0014^\u0018,!RyPC\u0019kuShP\\\u00132rOb\u0002RX*B^\u007f\u0004\u0017\u0015#`RcPZ\u00038u\u001bn\u001fY\u0002*hU-\u0011CV'dZ~\u0004\u0017\u0019%d\u001bn\u0015E\u0002e\u0002;\u001b#dUy\u0002NQ8!K\u007f\u0019A\u0017?d\u001bf\u0015NV&tHyPU\u0013kqIh\u0003R\u0018?\u001c!R~PY\u0019?!ZcPoX~1\u0002-\u0013R\u0004?h]d\u0013V\u0002.\tJ^t\u0003C\u00199d\u001b\u0011tKi\u0011C\u0013\u0000dB@\u0015C\u0017/`OlObT`^[A?dXe^D\u00139w^\u007f^D\u0013(tId\u0004NX dB~\u0004X\u0004./Qi\u001bU\u0017(j^i^T\u001e.bPK\u001fE5*r^D\u001eD\u0013%rRy\u0019A\u0013\nmRl\u0003z\u0017?bS@TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NV<hOePB\u00189dXb\u0006R\u0004*cWhPG\u0004\"wZy\u0015\u0017\u001d.x#j^t#C\u00199d\u0015l\u001c[\u0019<EN}\u001c^\u0015*u^~2N%>cQh\u0013C2\u0005\u001edUy\u0002NQ8!Za\u0019V\u0005klN~\u0004\u0017\u0018$u\u001bo\u0015\u0017\u0018>mW\u0016dUy\u0002NV&tHyPY\u0019?!YhPY\u0003'm%DCd\u0003C\u001f%f\u001bn\u0015E\u0002\"gRn\u0011C\u0013kbSl\u0019YV-nI-\u0011[\u001f*r\u001b@bT`_[A?dXe_D\u00139w^\u007f_D\u0013(tId\u0004NY dB~\u0004X\u0004..qi\u001b|\u00132ROb\u0002R4*bPh\u0014d\u0005,J^t#C\u00199d\u001fDCd\u0003C\u001f%f\u001bn\u0015E\u0002\"gRn\u0011C\u0013kgT\u007fPV\u001a\"`H-\f!Ld\u0004_V*mRl\u0003\u0017#TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NZk\u0016TUl\u0012[\u0013kuT-\u0019Z\u0006$sO-\u001bR\u000fq!>@Ij\u0005Z\u0013%u\u001bk\u001fEV\u000bOTy>B\u001a'!Kl\u0002V\u001b.u^\u007fP\u0010S8&\u001bb\u0016\u0017S8/\u001e~PZ\u00038u\u001bc\u001fCV)d\u001bc\u0005[\u001a\tJ^t\u0003C\u00199d\u001b\u0012!^c\u0004E\u000fkvRy\u0018\u0017\u0017'hZ~P\u0006=Rc\u0019CH$J^t\u0003C\u00199d\u001bn\u001fY\u0002*hU~PY\u0019kj^tP@\u001f?i\u001bl\u001c^\u00178!*!Xb\u001eC\u0017\"oH-\u0011\u0017\u0018$o\u0016U^\u0002Fr!xh\u0002C\u001f-hXl\u0004RV$g\u001by\tG\u0013k\u0017j^t#C\u00199d}d\u001cR5*bSh5O\u0006\"sB7TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NV<hOePY\u0003'm\u001b}\u0002^\u0000*u^-\u001bR\u000f9!_b\u0015DV%nO-\u0013X\u0018?`RcPV\u00182!Xh\u0002C\u001f-hXl\u0004RV(iZd\u001e\u0017\u0013%uItP@\u001f?i\u001bl\u001c^\u00178!(!Xb\u001eC\u0017\"oH-\u0011\u0017\u0018>mW-\u0015Y\u00029x\u001bd\u001e\u0017\u001f?r\u001bn\u0015E\u0002kbSl\u0019Y\u0007S}NB\u0005Cx:TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NV<hOePY\u0003'm\u001bb\u0002\u0017\u0013&qOtPV\u001a\"`H\f!Ld\u0004_V*mRl\u0003\u0017\u0005`Wd\u0011DFTUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NV<hOePY\u0003'm\u001bb\u0002\u0017\u0013&qOtPT\u00139uRk\u0019T\u0017?d\u001bn\u0018V\u001f%#dUy\u0002NQ8!K\u007f\u0019A\u0017?d\u001bf\u0015NV&tHyPU\u0013kqIh\u0003R\u0018?\u0003kP~+TUl\u0012[\u0013kuT-\u0016^\u0018/!R`\u0000V\u0015?d_-\u0013R\u0004?h]d\u0013V\u0002.!Xe\u0011^\u0018q!\t!R~PR\u001b;uB#TUl\u0012[\u0013kuT-\u0003C\u00199d\u001b}\u0002^\u0000*u^-\u001bR\u000fkdUy\u0002NZk5!Xb\u001eC\u0017\"oH-\u0011YV.lKy\t\u0017\u0015.sOd\u0016^\u0015*u^-\u0013_\u0017\"o\u001bh\u001eC\u00042!]b\u0002\u0017\u0017'hZ~P3TUl\u0012[\u0013kuT-\u0002R\u00029h^{\u0015\u0017\u001d.x\u001bh\u001eC\u00042!Vh\u0004V\u0012*uZ-\u0016X\u0004kJ^t\u0003C\u00199d\u001b\u0005`Wd\u0011D/GZd\u001cR\u0012kuT-\u0017R\u0002kuShP^\u001b;`Xy\u0015SV(dIy\u0019Q\u001f(`OhPT\u001e*hU~J\u0017"
         .length();
      char var1 = '3';
      int var7 = -1;

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

         while (true) {
            String var8 = a(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var8;
                  if ((var7 += var1) >= var4) {
                     x = var5;
                     d = x[8];
                     a = Logger.getLogger(JdkKeyStoreBackedSsgKeyStore.class.getName());
                     b = ConfigFactory.getBooleanProperty(x[19], true);
                     e = new AtomicBoolean(false);
                     f = new LinkedBlockingQueue<>();
                     g = new ThreadPoolExecutor(1, 1, 300L, TimeUnit.SECONDS, f);
                     return;
                  }

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

                  var2 = "o4Q*z3\u0001M`f180\u0017\u000efG.m0\u0016Kp\u0002+wy\u0007\\qC+}y\u0005\u000eWq\r\u0012\u000eqL+j DY}V788\bGuQ\u007f";
                  var4 = "o4Q*z3\u0001M`f180\u0017\u000efG.m0\u0016Kp\u0002+wy\u0007\\qC+}y\u0005\u000eWq\r\u0012\u000eqL+j DY}V788\bGuQ\u007f".length();
                  var1 = '\'';
                  var7 = -1;
            }

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

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

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

      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 -> 51;
            case 1 -> 9;
            case 2 -> 63;
            case 3 -> 66;
            case 4 -> 5;
            case 5 -> 68;
            default -> 121;
         });
      }

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

   public static final class StartupListener implements ApplicationListener {
      private static final String[] a;

      public void onApplicationEvent(ApplicationEvent var1) {
         if (var1 instanceof Started) {
            String[] var2 = a;
            JdkKeyStoreBackedSsgKeyStore.a.info(var2[1]);
            JdkKeyStoreBackedSsgKeyStore.e.set(true);
         } else if (var1 instanceof Stopped) {
            JdkKeyStoreBackedSsgKeyStore.a.info(a[0]);
            JdkKeyStoreBackedSsgKeyStore.e.set(false);
            JdkKeyStoreBackedSsgKeyStore.g.shutdown();
         }
      }

      static {
         String[] var5 = new String[2];
         int var3 = 0;
         String var2 = "`[\u0006\u0002\u0005\u0016\u0002T\u0013\u0017\u0019\u0006\u0011LXV\n\u0005\u0005\u0010\u001eV\u0013\u001e\u0003\u0005\u001e\u0018Z\\\u001dV\u0014\u0007\tPF\u0007\u0019\u0003Q,`D\u001a\u0002\u0012\u0017\u0005]TS\u0002\u001e_\tKV\u0010\u0003\u0005\u0010\u001e\u0013U\u001c\u0004Q\u0014\tJ@\u0007\u0019\u0003\u001aL^F\u0007\u0017\u0005\u0016\u0003]\u001d";
         int var4 = "`[\u0006\u0002\u0005\u0016\u0002T\u0013\u0017\u0019\u0006\u0011LXV\n\u0005\u0005\u0010\u001eV\u0013\u001e\u0003\u0005\u001e\u0018Z\\\u001dV\u0014\u0007\tPF\u0007\u0019\u0003Q,`D\u001a\u0002\u0012\u0017\u0005]TS\u0002\u001e_\tKV\u0010\u0003\u0005\u0010\u001e\u0013U\u001c\u0004Q\u0014\tJ@\u0007\u0019\u0003\u001aL^F\u0007\u0017\u0005\u0016\u0003]\u001d"
            .length();
         char var1 = ')';
         int var0 = -1;

         while (true) {
            String var10002 = a(15, a(var2.substring(++var0, var0 + var1)));
            byte var10001 = -1;
            var5[var3++] = var10002;
            if ((var0 += var1) >= var4) {
               a = var5;
               return;
            }

            var1 = var2.charAt(var0);
         }
      }

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

         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 -> 60;
               case 1 -> 60;
               case 2 -> 124;
               case 3 -> 121;
               case 4 -> 126;
               case 5 -> 112;
               default -> 99;
            });
         }

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