package com.l7tech.server.audit;

import com.l7tech.gateway.common.AsyncAdminMethods.JobId;
import com.l7tech.gateway.common.AsyncAdminMethods.JobResult;
import com.l7tech.gateway.common.AsyncAdminMethods.JobStillActiveException;
import com.l7tech.gateway.common.AsyncAdminMethods.UnknownJobException;
import com.l7tech.gateway.common.audit.AdminMessages;
import com.l7tech.gateway.common.audit.AuditAdmin;
import com.l7tech.gateway.common.audit.AuditDetail;
import com.l7tech.gateway.common.audit.AuditPolicyException;
import com.l7tech.gateway.common.audit.AuditRecord;
import com.l7tech.gateway.common.audit.AuditRecordHeader;
import com.l7tech.gateway.common.audit.AuditSearchCriteria;
import com.l7tech.gateway.common.audit.AuditViewerPolicyNotAvailableException;
import com.l7tech.gateway.common.audit.MessageSummaryAuditRecord;
import com.l7tech.gateway.common.audit.AuditAdmin.DownloadChunk;
import com.l7tech.gateway.common.cluster.ClusterProperty;
import com.l7tech.gateway.common.jdbc.JdbcConnection;
import com.l7tech.gateway.common.uddi.UDDIPublishStatus;
import com.l7tech.gateway.common.uddi.UDDIServiceControlRuntime;
import com.l7tech.identity.fed.FederatedGroupMembership;
import com.l7tech.identity.internal.InternalGroupMembership;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.server.GatewayKeyAccessFilter;
import com.l7tech.server.PersistenceEventInterceptor;
import com.l7tech.server.ServerConfig;
import com.l7tech.server.admin.AsyncAdminMethodsImpl;
import com.l7tech.server.cluster.ClusterPropertyManager;
import com.l7tech.server.event.AdminInfo;
import com.l7tech.server.event.admin.AdminEvent;
import com.l7tech.server.event.admin.AuditViewGatewayAuditsData;
import com.l7tech.server.jdbc.JdbcConnectionManager;
import com.l7tech.server.security.rbac.SecurityFilter;
import com.l7tech.server.security.sharedkey.SharedKeyRecord;
import com.l7tech.server.sla.CounterRecord;
import com.l7tech.util.Background;
import com.l7tech.util.Config;
import com.l7tech.util.ConfigFactory;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.IOUtils;
import com.l7tech.util.OpaqueId;
import com.l7tech.util.Pair;
import com.l7tech.util.ResourceUtils;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.charset.Charset;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.FutureTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.collections.map.LRUMap;
import org.hibernate.SessionFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class AuditAdminImpl extends AsyncAdminMethodsImpl implements AuditAdmin, InitializingBean, ApplicationContextAware {
   private static final Logger e;
   private static final String f;
   private static final int g;
   private static final String h;
   private static final int i;
   private static final long j;
   private static final Collection<String> k;
   private final LRUMap l;
   private AuditDownloadManager m;
   private AuditRecordManager n;
   private AuditLookupPolicyEvaluator o;
   private SecurityFilter p;
   private Config q;
   private ClusterPropertyManager r;
   private AuditArchiver s;
   private ApplicationContext t;
   private AuditFilterPolicyManager u;
   private GatewayKeyAccessFilter v;
   private PersistenceEventInterceptor w;
   private SessionFactory x;
   private Auditor y;
   private static final String z;
   private static final String[] B;

   public AuditAdminImpl() {
      this.l = new LRUMap(ConfigFactory.getIntProperty(B[42], 100));
      Background.scheduleRepeated(new ap(this), i, j);
   }

   public void setAuditDownloadManager(AuditDownloadManager var1) {
      this.m = var1;
   }

   public void setAuditRecordManager(AuditRecordManager var1) {
      this.n = var1;
   }

   public void setAuditLookupPolicyEvaluator(AuditLookupPolicyEvaluator var1) {
      this.o = var1;
   }

   public void setSecurityFilter(SecurityFilter var1) {
      this.p = var1;
   }

   public void setServerConfig(Config var1) {
      this.q = var1;
   }

   public void setClusterPropertyManager(ClusterPropertyManager var1) {
      this.r = var1;
   }

   public void setAuditArchiver(AuditArchiver var1) {
      this.s = var1;
   }

   public void setPersistenceEventInterceptor(PersistenceEventInterceptor var1) {
      this.w = var1;
   }

   public void setSessionFactory(SessionFactory var1) {
      this.x = var1;
   }

   public void setApplicationContext(ApplicationContext var1) throws BeansException {
      this.t = var1;
      this.y = new Auditor(this, var1, e);
   }

   public AuditRecord findByPrimaryKey(String var1, boolean var2) throws FindException {
      if (var2) {
         try {
            Goid var3 = Goid.parseGoid(var1);
            return (AuditRecord)this.n.findByPrimaryKey(var3);
         } catch (NumberFormatException var4) {
            throw new FindException(B[54] + var1, var4);
         }
      } else {
         return this.o.findByGuid(var1);
      }
   }

   private void a(AuditSearchCriteria var1) {
      AdminInfo var2 = AdminInfo.find();
      boolean var3;
      synchronized (this.l) {
         i var5 = (i)this.l.get(var2.getIdentityHeader());
         if (var5 != null) {
            var3 = var5.isNewCriteria(var1);
         } else {
            this.l.put(var2.getIdentityHeader(), new i(this, var2, var1));
            var3 = true;
         }
      }

      if (var3) {
         Pair var8 = var1.getAuditQueryDetails();
         this.y.logAndAudit(AdminMessages.AUDIT_SEARCH_CRITERIA_FULL_DETAILS, (String)var8.right);
         AuditViewGatewayAuditsData var9 = new AuditViewGatewayAuditsData(this, (String)var8.left);
         this.t.publishEvent(var9);
      }
   }

   private void b() {
      synchronized (this.l) {
         Iterator var2 = this.l.entrySet().iterator();

         while (var2.hasNext()) {
            Entry var3 = (Entry)var2.next();
            i var4 = (i)var3.getValue();

            try {
               if (var4.isStale()) {
                  var2.remove();
               }
            } catch (NumberFormatException var6) {
               throw a(var6);
            }
         }
      }
   }

   public JobId<AuditRecordHeader[]> findHeaders(AuditSearchCriteria var1) throws FindException {
      FutureTask var2 = new FutureTask<>(AdminInfo.find(false).wrapCallable(new d(this, var1)));
      Background.scheduleOneShot(new ar(this, var2), 0L);
      return this.registerJob(var2, AuditRecordHeader[].class);
   }

   public String getFindHeadersJobStatus(JobId<AuditRecordHeader[]> var1) {
      return super.getJobStatus(var1);
   }

   public AuditRecordHeader[] getFindHeadersHeaderJobResult(JobId<AuditRecordHeader[]> var1) throws FindException, UnknownJobException, JobStillActiveException {
      JobResult var2 = super.getJobResult(var1);

      try {
         if (var2.result == null) {
            throw new FindException(var2.throwableMessage);
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      return (AuditRecordHeader[])var2.result;
   }

   public Map<String, Pair<byte[], byte[]>> getDigestsForAuditRecords(Collection<String> var1, boolean var2) throws FindException {
      try {
         if (var2) {
            return this.o.getDigestForAuditRecords(var1);
         }
      } catch (FindException var3) {
         throw a(var3);
      }

      return this.n.getDigestForAuditRecords(var1);
   }

   public JobId<Long> hasNewAudits(Date var1, Level var2) {
      FutureTask var3 = new FutureTask<>(AdminInfo.find(false).wrapCallable(new e(this, var1, var2)));
      Background.scheduleOneShot(new as(this, var3), 0L);
      return this.registerJob(var3, Long.class);
   }

   public JobResult<Long> getNewAuditsJobResult(JobId<Long> var1) throws JobStillActiveException, UnknownJobException {
      return super.getJobResult(var1);
   }

   public String getNewAuditsJobStatus(JobId<Long> var1) {
      return super.getJobStatus(var1);
   }

   public void deleteOldAuditRecords() throws DeleteException {
      this.n.deleteOldAuditRecords(-1L);
   }

   public void doAuditArchive() {
      try {
         if (this.s == null) {
            throw new NullPointerException(B[8]);
         }
      } catch (NumberFormatException var1) {
         throw a(var1);
      }

      this.s.runNow();
   }

   public boolean isAuditArchiveEnabled() {
      return this.s.isEnabled();
   }

   public ClusterProperty getFtpAuditArchiveConfig() {
      ClusterProperty var1 = null;

      try {
         String[] var6 = B;
         var1 = (ClusterProperty)this.r.findByUniqueName(var6[63]);
      } catch (FindException var4) {
         Logger var10000 = e;
         Level var10001 = Level.WARNING;
         String var10002 = var4.getMessage();
         String[] var3 = B;
         var10000.log(var10001, var3[20] + var10002, ExceptionUtils.getDebugException(var4));
      }

      try {
         if (var1 != null) {
            return var1;
         }
      } catch (FindException var5) {
         throw a(var5);
      }

      return new ClusterProperty(B[63], null);
   }

   public void setFtpAuditArchiveConfig(ClusterProperty param1) throws UpdateException {
      // $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 1
      // 01: ifnull 1b
      // 04: getstatic com/l7tech/server/audit/AuditAdminImpl.B [Ljava/lang/String;
      // 07: bipush 71
      // 09: aaload
      // 0a: aload 1
      // 0b: invokevirtual com/l7tech/gateway/common/cluster/ClusterProperty.getName ()Ljava/lang/String;
      // 0e: invokevirtual java/lang/String.equals (Ljava/lang/Object;)Z
      // 11: ifne 36
      // 14: goto 1b
      // 17: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 1a: athrow
      // 1b: new com/l7tech/objectmodel/UpdateException
      // 1e: dup
      // 1f: aload 1
      // 20: invokestatic java/lang/String.valueOf (Ljava/lang/Object;)Ljava/lang/String;
      // 23: getstatic com/l7tech/server/audit/AuditAdminImpl.B [Ljava/lang/String;
      // 26: bipush 0
      // 27: aaload
      // 28: swap
      // 29: 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" ]
      // 2e: invokespecial com/l7tech/objectmodel/UpdateException.<init> (Ljava/lang/String;)V
      // 31: athrow
      // 32: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 35: athrow
      // 36: aload 0
      // 37: getfield com/l7tech/server/audit/AuditAdminImpl.r Lcom/l7tech/server/cluster/ClusterPropertyManager;
      // 3a: getstatic com/l7tech/server/audit/AuditAdminImpl.B [Ljava/lang/String;
      // 3d: bipush 63
      // 3f: aaload
      // 40: invokeinterface com/l7tech/server/cluster/ClusterPropertyManager.findByUniqueName (Ljava/lang/String;)Lcom/l7tech/objectmodel/PersistentEntity; 2
      // 45: checkcast com/l7tech/gateway/common/cluster/ClusterProperty
      // 48: astore 2
      // 49: goto 4f
      // 4c: astore 3
      // 4d: aconst_null
      // 4e: astore 2
      // 4f: aload 2
      // 50: ifnull 6c
      // 53: aload 1
      // 54: aload 2
      // 55: invokevirtual com/l7tech/gateway/common/cluster/ClusterProperty.getGoid ()Lcom/l7tech/objectmodel/Goid;
      // 58: invokevirtual com/l7tech/gateway/common/cluster/ClusterProperty.setGoid (Lcom/l7tech/objectmodel/Goid;)V
      // 5b: aload 0
      // 5c: getfield com/l7tech/server/audit/AuditAdminImpl.r Lcom/l7tech/server/cluster/ClusterPropertyManager;
      // 5f: aload 1
      // 60: invokeinterface com/l7tech/server/cluster/ClusterPropertyManager.update (Lcom/l7tech/objectmodel/PersistentEntity;)V 2
      // 65: goto 84
      // 68: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6b: athrow
      // 6c: aload 0
      // 6d: getfield com/l7tech/server/audit/AuditAdminImpl.r Lcom/l7tech/server/cluster/ClusterPropertyManager;
      // 70: aload 1
      // 71: invokeinterface com/l7tech/server/cluster/ClusterPropertyManager.save (Lcom/l7tech/objectmodel/PersistentEntity;)Lcom/l7tech/objectmodel/Goid; 2
      // 76: pop
      // 77: goto 84
      // 7a: astore 3
      // 7b: new com/l7tech/objectmodel/UpdateException
      // 7e: dup
      // 7f: aload 3
      // 80: invokespecial com/l7tech/objectmodel/UpdateException.<init> (Ljava/lang/Throwable;)V
      // 83: athrow
      // 84: return
      // try (2 -> 23): 23 com/l7tech/objectmodel/FindException
      // try (0 -> 9): 10 com/l7tech/objectmodel/FindException
      // try (25 -> 33): 34 com/l7tech/objectmodel/FindException
      // try (37 -> 48): 48 com/l7tech/objectmodel/FindException
      // try (50 -> 55): 56 com/l7tech/objectmodel/SaveException
   }

   public void setAuditFilterPolicyManager(AuditFilterPolicyManager var1) {
      this.u = var1;
   }

   public void setKeyAccessFilter(GatewayKeyAccessFilter var1) {
      this.v = var1;
   }

   public void afterPropertiesSet() throws Exception {
      this.c();
   }

   private void c() {
      try {
         if (this.n == null) {
            throw new IllegalArgumentException(B[1]);
         }
      } catch (NumberFormatException var1) {
         throw a(var1);
      }
   }

   public OpaqueId downloadAllAudits(long var1, long var3, Goid[] var5, int var6) {
      try {
         return this.m.createDownloadContext(var1, var3, var5);
      } catch (IOException var8) {
         throw new RuntimeException(B[25], var8);
      }
   }

   public DownloadChunk downloadNextChunk(OpaqueId var1) {
      DownloadChunk var2 = null;
      byte[] var3 = this.m.nextDownloadChunk(var1);
      if (var3 != null) {
         long var4 = this.m.getEstimatedTotalAudits(var1);
         long var6 = this.m.getDownloadedAuditCount(var1);
         var2 = new DownloadChunk(var6, var4, var3);
      }

      return var2;
   }

   public Date getLastAcknowledgedAuditDate() {
      Date var1 = null;
      String var2 = null;

      try {
         String[] var8 = B;
         ClusterProperty var3 = (ClusterProperty)this.r.findByUniqueName(var8[21]);
         if (var3 != null) {
            var2 = var3.getValue();
            var1 = new Date(Long.parseLong(var2));
         }
      } catch (FindException var5) {
         Logger var10000 = e;
         Level var10001 = Level.WARNING;
         String var10002 = var5.getMessage();
         String[] var7 = B;
         var10000.log(var10001, var7[33] + var10002 + var7[13], ExceptionUtils.getDebugException(var5));
      } catch (NumberFormatException var6) {
         String[] var4 = B;
         e.log(Level.WARNING, var4[40] + var2 + var4[13], ExceptionUtils.getDebugException(var6));
      }

      return var1;
   }

   public Date markLastAcknowledgedAuditDate() {
      Date var1 = new Date();
      String var2 = Long.toString(var1.getTime());

      try {
         String[] var10 = B;
         ClusterProperty var3 = (ClusterProperty)this.r.findByUniqueName(var10[6]);
         if (var3 == null) {
            var3 = new ClusterProperty(var10[21], var2);
            this.r.save(var3);
         } else {
            var3.setValue(var2);
            this.r.update(var3);
         }
      } catch (FindException var5) {
         Logger var10000 = e;
         Level var10001 = Level.WARNING;
         String var10002 = var5.getMessage();
         String[] var9 = B;
         var10000.log(var10001, var9[47] + var10002 + var9[50], ExceptionUtils.getDebugException(var5));
      } catch (SaveException var6) {
         String[] var4 = B;
         e.log(Level.WARNING, var4[2], var6);
      } catch (UpdateException var7) {
         e.log(Level.WARNING, B[57], var7);
      }

      return var1;
   }

   public int getSystemLogRefresh() {
      int var1 = 0;
      byte var2 = 3;
      String[] var5 = B;
      String var3 = this.q.getProperty(var5[69]);
      if (var3 != null) {
         try {
            var1 = Integer.parseInt(var3);
         } catch (NumberFormatException var6) {
            var1 = var2;
            var5 = B;
            e.warning(var5[34] + var3 + var5[62] + var2 + var5[13]);
         }
      } else {
         var1 = var2;
      }

      return var1;
   }

   public Level serverMessageAuditThreshold() {
      String[] var1 = B;
      return this.a(var1[55], var1[3], DefaultAuditThresholds.DEFAULT_MESSAGE_THRESHOLD);
   }

   public Level serverDetailAuditThreshold() {
      String[] var1 = B;
      return this.a(var1[11], var1[12], DefaultAuditThresholds.DEFAULT_ASSOCIATED_LOGS_THRESHOLD);
   }

   private Level a(String var1, String var2, Level var3) {
      String var4 = this.q.getProperty(var1);
      Level var5 = null;
      if (var4 != null) {
         try {
            var5 = Level.parse(var4);
         } catch (IllegalArgumentException var11) {
            Logger var10000 = e;
            String var7 = var3.getName();
            String var8 = var4;
            String var9 = var2;
            String[] var10 = B;
            var10000.warning(var10[72] + var9 + var10[41] + var8 + var10[64] + var7 + var10[31]);
         }
      }

      if (var5 == null) {
         var5 = var3;
      }

      return var5;
   }

   public int serverMinimumPurgeAge() {
      String[] var4 = B;
      String var1 = this.q.getProperty(var4[51]);
      short var2 = 168;

      try {
         return Integer.valueOf(var1);
      } catch (NumberFormatException var5) {
         var4 = B;
         throw new RuntimeException(var4[66] + var1 + var4[60] + var2 + var4[19]);
      }
   }

   public boolean isSigningEnabled() throws FindException {
      String var1 = this.r.getProperty(B[39]);
      return Boolean.valueOf(var1);
   }

   public int getMaxDigestRecords() {
      return this.n.getAuditValidatedConfig().getIntProperty(B[37], 100);
   }

   public boolean isAuditViewerPolicyAvailable() {
      return this.u.isAuditViewerPolicyAvailable();
   }

   public String invokeAuditViewerPolicyForMessage(Goid var1, boolean var2) throws FindException, AuditViewerPolicyNotAvailableException {
      ArrayList var3 = new ArrayList();

      try {
         ArrayList var10000;
         Pair var10001;
         Pair var10002;
         Level var10003;
         String var10004;
         Object[] var10005;
         Object[] var10006;
         byte var10007;
         String var10008;
         label65: {
            try {
               var10000 = var3;
               var10001 = new Pair;
               var10002 = var10001;
               var10003 = Level.INFO;
               var10004 = B[35];
               var10005 = new Object[]{String.valueOf(var1), null};
               var10006 = var10005;
               var10007 = 1;
               if (var2) {
                  var10008 = B[4];
                  break label65;
               }
            } catch (FindException var12) {
               throw a(var12);
            }

            String[] var9 = B;
            var10008 = var9[30];
         }

         String[] var16 = B;
         var10006[var10007] = var10008 + var16[15];
         var10002./* $VF: Unable to resugar constructor */<init>(var10003, MessageFormat.format(var10004, var10005));
         var10000.add(var10001);
         AuditRecord var4 = (AuditRecord)this.n.findByPrimaryKey(var1);
         if (var4 == null) {
            String var15 = var16[16] + var1;
            this.a(var3, var15);
            return null;
         } else if (!(var4 instanceof MessageSummaryAuditRecord var5)) {
            String var14 = B[73] + var1;
            this.a(var3, var14);
            return null;
         } else {
            String var6;
            if (var2) {
               var6 = var5.getRequestXml();
            } else {
               var6 = var5.getResponseXml();
            }

            return this.a(var6, var2, var3);
         }
      } finally {
         this.a(var3);
      }
   }

   public String invokeAuditViewerPolicyForMessage(String var1, String var2, boolean var3) throws AuditViewerPolicyNotAvailableException {
      ArrayList var4 = new ArrayList();

      try {
         ArrayList var10000;
         Pair var10001;
         Pair var10002;
         Level var10003;
         String var10004;
         Object[] var10005;
         Object[] var10006;
         byte var10007;
         String var10008;
         label35: {
            try {
               var10000 = var4;
               var10001 = new Pair;
               var10002 = var10001;
               var10003 = Level.INFO;
               var10004 = B[10];
               var10005 = new Object[]{String.valueOf(var1), null};
               var10006 = var10005;
               var10007 = 1;
               if (var3) {
                  var10008 = B[29];
                  break label35;
               }
            } catch (AuditViewerPolicyNotAvailableException var10) {
               throw a(var10);
            }

            String[] var7 = B;
            var10008 = var7[7];
         }

         var10006[var10007] = var10008 + B[65];
         var10002./* $VF: Unable to resugar constructor */<init>(var10003, MessageFormat.format(var10004, var10005));
         var10000.add(var10001);
         return this.a(var2, var3, var4);
      } finally {
         this.a(var4);
      }
   }

   public String invokeAuditViewerPolicyForDetail(Goid var1, long var2) throws FindException, AuditViewerPolicyNotAvailableException {
      try {
         if (var2 < 0L) {
            throw new IllegalArgumentException(B[59]);
         }
      } catch (FindException var25) {
         throw a(var25);
      }

      ArrayList var4 = new ArrayList();

      try {
         String[] var17 = B;
         var4.add(new Pair(Level.INFO, MessageFormat.format(var17[67], String.valueOf(var1), var2 + 1L)));
         AuditRecord var5 = (AuditRecord)this.n.findByPrimaryKey(var1);
         if (var5 == null) {
            String var27 = var17[53] + var1;
            this.a(var4, var27);
            return null;
         } else if (!(var5 instanceof MessageSummaryAuditRecord var6)) {
            String var30 = String.valueOf(var1);
            var17 = B;
            String var26 = var17[74] + var30;
            this.a(var4, var26, Level.FINE);
            return null;
         } else {
            for (AuditDetail var9 : var6.getDetails()) {
               try {
                  if (!USER_DETAIL_MESSAGES.contains(var9.getMessageId()) || var9.getOrdinal() != var2) {
                     continue;
                  }
               } catch (FindException var23) {
                  throw a(var23);
               }

               String[] var10 = var9.getParams();

               label102: {
                  try {
                     if (var10 == null || var10[0] == null) {
                        break label102;
                     }
                  } catch (FindException var22) {
                     throw a(var22);
                  }

                  return this.a(var10[0], null, var4);
               }

               int var10000 = var9.getMessageId();
               long var14 = var2;
               int var16 = var10000;
               var17 = B;
               String var11 = var17[22] + var16 + var17[5] + var14;
               this.a(var4, var11);
               return null;
            }

            return null;
         }
      } finally {
         this.a(var4);
      }
   }

   public Collection<String> getAllEntityClassNames() {
      // $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: new java/util/ArrayList
      // 03: dup
      // 04: invokespecial java/util/ArrayList.<init> ()V
      // 07: astore 1
      // 08: aload 0
      // 09: getfield com/l7tech/server/audit/AuditAdminImpl.x Lorg/hibernate/SessionFactory;
      // 0c: invokeinterface org/hibernate/SessionFactory.getMetamodel ()Lorg/hibernate/Metamodel; 1
      // 11: invokeinterface org/hibernate/Metamodel.getEntities ()Ljava/util/Set; 1
      // 16: astore 2
      // 17: aload 0
      // 18: getfield com/l7tech/server/audit/AuditAdminImpl.w Lcom/l7tech/server/PersistenceEventInterceptor;
      // 1b: invokevirtual com/l7tech/server/PersistenceEventInterceptor.getIgnoredClassNames ()Ljava/util/Set;
      // 1e: astore 3
      // 1f: aload 0
      // 20: getfield com/l7tech/server/audit/AuditAdminImpl.w Lcom/l7tech/server/PersistenceEventInterceptor;
      // 23: invokevirtual com/l7tech/server/PersistenceEventInterceptor.getNoAuditClassNames ()Ljava/util/Set;
      // 26: astore 4
      // 28: aload 2
      // 29: invokeinterface java/util/Set.iterator ()Ljava/util/Iterator; 1
      // 2e: astore 6
      // 30: aload 6
      // 32: invokeinterface java/util/Iterator.hasNext ()Z 1
      // 37: ifeq d0
      // 3a: aload 6
      // 3c: invokeinterface java/util/Iterator.next ()Ljava/lang/Object; 1
      // 41: checkcast jakarta/persistence/metamodel/EntityType
      // 44: astore 7
      // 46: aload 7
      // 48: invokeinterface jakarta/persistence/metamodel/EntityType.getJavaType ()Ljava/lang/Class; 1
      // 4d: astore 8
      // 4f: aload 8
      // 51: invokevirtual java/lang/Class.getTypeName ()Ljava/lang/String;
      // 54: astore 5
      // 56: getstatic com/l7tech/server/audit/AuditAdminImpl.k Ljava/util/Collection;
      // 59: aload 5
      // 5b: invokeinterface java/util/Collection.contains (Ljava/lang/Object;)Z 2
      // 60: ifne cd
      // 63: aload 3
      // 64: ifnull cd
      // 67: goto 6e
      // 6a: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 6d: athrow
      // 6e: aload 3
      // 6f: aload 5
      // 71: invokeinterface java/util/Set.contains (Ljava/lang/Object;)Z 2
      // 76: ifne cd
      // 79: goto 80
      // 7c: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 7f: athrow
      // 80: aload 4
      // 82: ifnull cd
      // 85: goto 8c
      // 88: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 8b: athrow
      // 8c: aload 4
      // 8e: aload 5
      // 90: invokeinterface java/util/Set.contains (Ljava/lang/Object;)Z 2
      // 95: ifne cd
      // 98: goto 9f
      // 9b: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // 9e: athrow
      // 9f: aload 5
      // a1: ifnull cd
      // a4: goto ab
      // a7: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // aa: athrow
      // ab: aload 8
      // ad: invokestatic com/l7tech/objectmodel/EntityType.findTypeByEntity (Ljava/lang/Class;)Lcom/l7tech/objectmodel/EntityType;
      // b0: invokevirtual com/l7tech/objectmodel/EntityType.isDisplayedInGui ()Z
      // b3: ifeq cd
      // b6: goto bd
      // b9: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // bc: athrow
      // bd: aload 1
      // be: aload 5
      // c0: invokeinterface java/util/Collection.add (Ljava/lang/Object;)Z 2
      // c5: pop
      // c6: goto cd
      // c9: invokestatic com/l7tech/server/audit/AuditAdminImpl.a (Ljava/lang/Exception;)Ljava/lang/Exception;
      // cc: athrow
      // cd: goto 30
      // d0: aload 1
      // d1: areturn
      // try (33 -> 39): 40 java/lang/NumberFormatException
      // try (37 -> 46): 47 java/lang/NumberFormatException
      // try (42 -> 51): 52 java/lang/NumberFormatException
      // try (49 -> 58): 59 java/lang/NumberFormatException
      // try (54 -> 63): 64 java/lang/NumberFormatException
      // try (61 -> 70): 71 java/lang/NumberFormatException
      // try (66 -> 77): 78 java/lang/NumberFormatException
   }

   private String a(String var1, Boolean var2, List<Pair<Level, String>> var3) throws AuditViewerPolicyNotAvailableException {
      try {
         return this.v.doWithRestrictedKeyAccess(new f(this, var1, var2));
      } catch (AuditViewerPolicyNotAvailableException var6) {
         String var10 = ExceptionUtils.getMessage(var6);
         e.log(Level.FINE, var10, ExceptionUtils.getDebugException(var6));
         this.a(var3, var10);
         throw var6;
      } catch (AuditPolicyException var7) {
         String var9 = ExceptionUtils.getMessage(var7);
         e.log(Level.FINE, var9, ExceptionUtils.getDebugException(var7));
         this.a(var3, var9);
      } catch (Exception var8) {
         String var5 = B[52] + ExceptionUtils.getMessage(var8);
         e.log(Level.FINE, var5, ExceptionUtils.getDebugException(var8));
         this.a(var3, var5);
      }

      return null;
   }

   private void a(List<Pair<Level, String>> var1) {
      if (!var1.isEmpty()) {
         for (final Pair var3 : var1) {
            this.t.publishEvent(new AdminEvent(this, (String)var3.right) {
               static final long serialVersionUID = 4904759806579812943L;

               @Override
               public Level getMinimumLevel() {
                  return (Level)var3.left;
               }
            });
         }
      }
   }

   private void a(List<Pair<Level, String>> var1, String var2) {
      this.a(var1, var2, Level.INFO);
   }

   private void a(List<Pair<Level, String>> var1, String var2, Level var3) {
      var1.add(new Pair(var3, var2));
   }

   private ServerConfig d() {
      return ServerConfig.getInstance();
   }

   private String a(String var1) {
      String var2 = null;
      String[] var3 = B;
      if (var1.contains(var3[68])) {
         var2 = var3[45];
      } else {
         var3 = B;
         if (var1.contains(var3[14])) {
            var2 = var3[24];
         } else {
            var3 = B;
            if (var1.contains(var3[28])) {
               var2 = var3[46];
            } else {
               var3 = B;
               if (var1.contains(var3[56])) {
                  var2 = var3[43];
               }
            }
         }
      }

      return var2;
   }

   public String getExternalAuditsSchema(String var1, String var2, String var3) {
      String[] var15 = B;
      JdbcConnectionManager var4 = (JdbcConnectionManager)this.t.getBean(var15[44]);
      FileInputStream var5 = null;
      ByteArrayOutputStream var6 = null;

      try {
         JdbcConnection var7 = var4.getJdbcConnection(var1);
         String var8 = var7.getDriverClass().toLowerCase();
         String var9 = this.a(var8);
         if (var9 == null) {
            return var15[23] + var8;
         }

         ServerConfig var10000 = this.d();
         var15 = B;
         File var10 = var10000.getLocalDirectoryProperty(var15[32], false);
         File var11 = new File(var10, var15[27] + var9 + var15[36]);
         var5 = new FileInputStream(var11);
         var6 = new ByteArrayOutputStream(16384);
         IOUtils.copyStream(var5, var6);
         String var12 = var6.toString(Charset.defaultCharset().name());
         var12 = var12.replace(var15[17], var2);
         return var12.replace(var15[61], var3);
      } catch (FileNotFoundException var20) {
         var15 = B;
         e.warning(var15[48]);
      } catch (IOException var21) {
         var15 = B;
         e.warning(var15[70]);
      } catch (FindException var22) {
         e.warning(B[49] + var1);
      } finally {
         ResourceUtils.closeQuietly(new Closeable[]{var5, var6});
      }

      return null;
   }

   public JobId<String> testAuditSinkSchema(String var1, String var2, String var3) {
      FutureTask var4 = new FutureTask<>(AdminInfo.find(false).wrapCallable(new g(this, var1, var2, var3)));
      Background.scheduleOneShot(new at(this, var4), 0L);
      return this.registerJob(var4, String.class);
   }

   public JobId<String> createExternalAuditDatabaseTables(String var1, String var2, String var3, String var4, String var5) {
      FutureTask var6 = new FutureTask<>(AdminInfo.find(false).wrapCallable(new b(this, var1, var2, var3, var4, var5)));
      Background.scheduleOneShot(new aq(this, var6), 0L);
      return this.registerJob(var6, String.class);
   }

   static {
      String[] var5 = new String[75];
      int var3 = 0;
      String var2 = "Km\u000522#N\"`\u001f&->Op#\u0003!1:Opw\ns.8Etj\u00176:jLmqS\u0015\n\u001a\ncq\u0010;7<Op#\u0010<0,Cev\u00012*#El9S cv\u0017:*jXg`\u001c!:jGcm\u00124;8\nkpS!;;_kq\u00167>Gq\u0001<,jYcu\u001a=9jInv\u0000';8\nrq\u001c#;8^{#T2+.Cv-\u001205$Euo\u001679/\u0004jj\u0014;;9^Vj\u001e6yd\u0007of\u0000 ?-O\u0007pf\u0002&;9^\u000e\"t\u001a'6jEpg\u001a=?&\n\u001dcv\u0017:*dKah\u001d<)&Ofd\u0016}6#Mjf\u0000'\n#Gg\bpf\u0000#1$Yg9Lv\u001f?~\u000b_fj\u0007\u0012,)Bku\u0016!\u007fjicm\u001d<*jXwmS!;;_gp\u00076:jKp`\u001b:(/\nal\u001e>?$N,$,-\\01$Lkd\\6*)\u0005qr\u001f|;2^gq\u001d22\u000b_fj\u0007 p9[nECv\u0017:*j\\kf\u00046,jZmo\u001a0'jClu\u001c8;.\ndl\u0001s\u001f?Nkw!6=%Xf#Tt%zW%$]s\u0017$\\mh\u00167~,Ep#\bb#d\u001ccv\u0017:*\u000bYql\u0010:?>OfO\u001c4-\u001eBpf\u0000;1&N\u0006ff\u000727&\u0002%-\tqr\u001f ;8\\gq\b\"n\u0016 -+Mg.LlS2+.Cv#\u00016=%Xf#\u0015<+$N\"e\u001c!~\u000b_fj\u0007\u0001;)EpgS$7>B\"j\u0017s\ncv\u0017:*\u0015Gcj\u001d+al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]2+.CvG\u0012'?\tKak\u0016\u0017;&K{\u0016\"+\u001c=;j]gf\u0018z~(S\"g\u00165??Fv Gq\u0001<,jMgw\u0007:0-\nao\u0006 */X\"s\u0001<./XvzIs\u001dcv\u0017:*dKah\u001d<)&Ofd\u0016}6#Mjf\u0000'\n#Gg3LlS#?8Kof\u00076,jLmv\u001d7~,Ep#\u0012&:#^\"g\u0016'?#F\"q\u0016018N\"t\u001a'6jCf#3Vk\u001a ~.Kvb\u00112-/\nvz\u00036~#Y\"m\u001c'~9_rs\u001c!*/N,#S\u0017,#\\gqS02+Yq9\tqr\u001f ;8\\gq)KLS6,8Ep#\u0004;7&O\"s\u00016.+Xkm\u0014s*%\ng{\u0003<,>\ncv\u0017:*9,al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]2+.CvG\u0012'?\tKak\u0016\u0003;8Cmg$,-\\}peImm\u0015:9eOv`\\ /&\u0005g{\u00076,$KnB\u000677>Y]\u0006mq\u001202/\u0007pf\u0002&;9^\bpf\u0000#1$Yg\t\"j\u001d */Kf-\u0007qp\u0014\u001b1'OKGq\u0001<,jMgw\u0007:0-\nao\u0006 */X\"s\u0001<./XvzSt??Nkw]2=!Dmt\u001f6:-O,k\u001a46/YvW\u001a>;m\nof\u0000 ?-O\"j\u0000sy8Rq\u001c#;8^{#T2+.CvU\u001a6)/XPf\u0015!;9BQf\u0010<0.Y%#\u001b2-jClu\u0012?7.\ntb\u001f&;j\rECv\u0017:*j\\kf\u00046,jZmo\u001a0'jClu\u001c8;.\ndl\u0001s\u001f?Nkw!6=%Xf#Tt%zW%$]s\u0017$\\mh\u00167~,Ep#\bb#d\u0004,p\u0002?\"cv\u0017:*d\\co\u001a7?>OQj\u0014=?>_pf]>?2Xg`\u001c!:9.al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]>?2kwg\u001a'\r/Kp`\u001b\u0010,#^gq\u001a2\rcv\u0017:*dYkd\u001d:0-SGq\u0001<,jMgw\u0007:0-\nao\u0006 */X\"s\u0001<./XvzSt??Nkw]2=!Dmt\u001f6:-O,k\u001a46/YvW\u001a>;m\nkm\u000522#N\"o\u001c=9j\\co\u00066~m\u0012\"w\u001b!;9Bmo\u0017s(+FwfSt-al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]>?2kwg\u001a'\u001a+^c@\u001206/yky\u0016\u0003faA\u0015hg\u00110\u001d%Dlf\u0010'7%DOb\u001d29/X\u0005oz\u0000\"2\u0006mq\u001202/KGq\u0001<,jMgw\u0007:0-\nao\u0006 */X\"s\u0001<./XvzSt??Nkw]2=!Dmt\u001f6:-O,k\u001a46/YvW\u001a>;m\nof\u0000 ?-O\"j\u0000sy;Q`\u001b63+\ndj\u001f6~$Ev#\u0015<+$N8#]}q)Ele\u001a4q/^a,\u0000\"2eOzw\u0016!0+FCv\u0017:*9\u0004qr\u001f\u001aHg\u00110~)Elm\u00160*#El#\u001d<*jLmv\u001d7d\u0002%-\u0014cv\u0017:*\u001a_pd\u0016\u001e7$Cov\u001e\u00129/*G{\u00106.>CmmS#,%Igp\u0000:0-\ncv\u0017:*j\\kf\u00046,jZmo\u001a0'p\n.LlS2+.Cv#\u00016=%Xf#\u0015<+$N\"e\u001c!~\u000b_fj\u0007\u0001;)EpgS$7>B\"j\u0017s\fKm\u000522#N\"l\u001a7d\u0015cv\u0017:*\u0007Oqp\u00124;\u001eBpf\u0000;1&N\u0003faA@Gq\u0001<,j_rg\u0012'7$M\"`\u001f&->Op#\u0003!1:Opw\nsy+_fj\u0007}?)All\u0004?;.Mg-\u001b:9\"Oqw':3/\r,-al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]>?2kwg\u001a'\u001a+^c@\u001206/yky\u0016\u0014mq\u0017:0+F\"n\u0006 *jHg#Mn~z\u001f%#\u001a ~$Ev#\u0012s(+FkgS=+'Hgq]s\u000b9CldS\fcv\u0017:*\u0015Ngw\u0012:2\u0012%/S&-#De#\u001768+_nwSt\u0019cv\u0017:*dKp`\u001b:(/X,e\u0007#p)Ele\u001a4\u0014%-S\u00047&F\"v\u00006~.Odb\u0006?*j\b\"n\u0016 -+Mg\u001eAl\u001d57-_pf\u0017s3#Dkn\u0006>~+Mg#\u000522?O\"$fCv\u0017:*j\\kf\u00046,jZmo\u001a0'jClu\u001c8;.\ndl\u0001s\u001f?Nkw!6=%Xf#Tt%zW%$]s\u0017$\\mh\u00167~,Ep#\u0012&:#^\"g\u0016'?#F\"n\u0016 -+Mg#\u001a=~:Eqj\u0007:1$\ny2\u000e}\u0005oz\u0000\"2\u0019cv\u0017:*\u001cCgt\u0016!\f/Lpf\u0000;\r/Imm\u0017 ?Gq\u0001<,jXgb\u0017:0-\nq`\u001b63+\ndj\u001f6dj\u0004,,\u0010<0,Ce,\u0016'=eYso\\6&>Opm\u0012?\u001f?Nkw\u0000}-;F\u0019cv\u0017:*dKp`\u001b:(/X,e\u0007#p)Ele\u001a4\bKm\u000522#N\"";
      int var4 = "Km\u000522#N\"`\u001f&->Op#\u0003!1:Opw\ns.8Etj\u00176:jLmqS\u0015\n\u001a\ncq\u0010;7<Op#\u0010<0,Cev\u00012*#El9S cv\u0017:*jXg`\u001c!:jGcm\u00124;8\nkpS!;;_kq\u00167>Gq\u0001<,jYcu\u001a=9jInv\u0000';8\nrq\u001c#;8^{#T2+.Cv-\u001205$Euo\u001679/\u0004jj\u0014;;9^Vj\u001e6yd\u0007of\u0000 ?-O\u0007pf\u0002&;9^\u000e\"t\u001a'6jEpg\u001a=?&\n\u001dcv\u0017:*dKah\u001d<)&Ofd\u0016}6#Mjf\u0000'\n#Gg\bpf\u0000#1$Yg9Lv\u001f?~\u000b_fj\u0007\u0012,)Bku\u0016!\u007fjicm\u001d<*jXwmS!;;_gp\u00076:jKp`\u001b:(/\nal\u001e>?$N,$,-\\01$Lkd\\6*)\u0005qr\u001f|;2^gq\u001d22\u000b_fj\u0007 p9[nECv\u0017:*j\\kf\u00046,jZmo\u001a0'jClu\u001c8;.\ndl\u0001s\u001f?Nkw!6=%Xf#Tt%zW%$]s\u0017$\\mh\u00167~,Ep#\bb#d\u001ccv\u0017:*\u000bYql\u0010:?>OfO\u001c4-\u001eBpf\u0000;1&N\u0006ff\u000727&\u0002%-\tqr\u001f ;8\\gq\b\"n\u0016 -+Mg.LlS2+.Cv#\u00016=%Xf#\u0015<+$N\"e\u001c!~\u000b_fj\u0007\u0001;)EpgS$7>B\"j\u0017s\ncv\u0017:*\u0015Gcj\u001d+al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]2+.CvG\u0012'?\tKak\u0016\u0017;&K{\u0016\"+\u001c=;j]gf\u0018z~(S\"g\u00165??Fv Gq\u0001<,jMgw\u0007:0-\nao\u0006 */X\"s\u0001<./XvzIs\u001dcv\u0017:*dKah\u001d<)&Ofd\u0016}6#Mjf\u0000'\n#Gg3LlS#?8Kof\u00076,jLmv\u001d7~,Ep#\u0012&:#^\"g\u0016'?#F\"q\u0016018N\"t\u001a'6jCf#3Vk\u001a ~.Kvb\u00112-/\nvz\u00036~#Y\"m\u001c'~9_rs\u001c!*/N,#S\u0017,#\\gqS02+Yq9\tqr\u001f ;8\\gq)KLS6,8Ep#\u0004;7&O\"s\u00016.+Xkm\u0014s*%\ng{\u0003<,>\ncv\u0017:*9,al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]2+.CvG\u0012'?\tKak\u0016\u0003;8Cmg$,-\\}peImm\u0015:9eOv`\\ /&\u0005g{\u00076,$KnB\u000677>Y]\u0006mq\u001202/\u0007pf\u0002&;9^\bpf\u0000#1$Yg\t\"j\u001d */Kf-\u0007qp\u0014\u001b1'OKGq\u0001<,jMgw\u0007:0-\nao\u0006 */X\"s\u0001<./XvzSt??Nkw]2=!Dmt\u001f6:-O,k\u001a46/YvW\u001a>;m\nof\u0000 ?-O\"j\u0000sy8Rq\u001c#;8^{#T2+.CvU\u001a6)/XPf\u0015!;9BQf\u0010<0.Y%#\u001b2-jClu\u0012?7.\ntb\u001f&;j\rECv\u0017:*j\\kf\u00046,jZmo\u001a0'jClu\u001c8;.\ndl\u0001s\u001f?Nkw!6=%Xf#Tt%zW%$]s\u0017$\\mh\u00167~,Ep#\bb#d\u0004,p\u0002?\"cv\u0017:*d\\co\u001a7?>OQj\u0014=?>_pf]>?2Xg`\u001c!:9.al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]>?2kwg\u001a'\r/Kp`\u001b\u0010,#^gq\u001a2\rcv\u0017:*dYkd\u001d:0-SGq\u0001<,jMgw\u0007:0-\nao\u0006 */X\"s\u0001<./XvzSt??Nkw]2=!Dmt\u001f6:-O,k\u001a46/YvW\u001a>;m\nkm\u000522#N\"o\u001c=9j\\co\u00066~m\u0012\"w\u001b!;9Bmo\u0017s(+FwfSt-al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]>?2kwg\u001a'\u001a+^c@\u001206/yky\u0016\u0003faA\u0015hg\u00110\u001d%Dlf\u0010'7%DOb\u001d29/X\u0005oz\u0000\"2\u0006mq\u001202/KGq\u0001<,jMgw\u0007:0-\nao\u0006 */X\"s\u0001<./XvzSt??Nkw]2=!Dmt\u001f6:-O,k\u001a46/YvW\u001a>;m\nof\u0000 ?-O\"j\u0000sy;Q`\u001b63+\ndj\u001f6~$Ev#\u0015<+$N8#]}q)Ele\u001a4q/^a,\u0000\"2eOzw\u0016!0+FCv\u0017:*9\u0004qr\u001f\u001aHg\u00110~)Elm\u00160*#El#\u001d<*jLmv\u001d7d\u0002%-\u0014cv\u0017:*\u001a_pd\u0016\u001e7$Cov\u001e\u00129/*G{\u00106.>CmmS#,%Igp\u0000:0-\ncv\u0017:*j\\kf\u00046,jZmo\u001a0'p\n.LlS2+.Cv#\u00016=%Xf#\u0015<+$N\"e\u001c!~\u000b_fj\u0007\u0001;)EpgS$7>B\"j\u0017s\fKm\u000522#N\"l\u001a7d\u0015cv\u0017:*\u0007Oqp\u00124;\u001eBpf\u0000;1&N\u0003faA@Gq\u0001<,j_rg\u0012'7$M\"`\u001f&->Op#\u0003!1:Opw\nsy+_fj\u0007}?)All\u0004?;.Mg-\u001b:9\"Oqw':3/\r,-al\u001e}2}^g`\u001b}-/Xtf\u0001}??Nkw]>?2kwg\u001a'\u001a+^c@\u001206/yky\u0016\u0014mq\u0017:0+F\"n\u0006 *jHg#Mn~z\u001f%#\u001a ~$Ev#\u0012s(+FkgS=+'Hgq]s\u000b9CldS\fcv\u0017:*\u0015Ngw\u0012:2\u0012%/S&-#De#\u001768+_nwSt\u0019cv\u0017:*dKp`\u001b:(/X,e\u0007#p)Ele\u001a4\u0014%-S\u00047&F\"v\u00006~.Odb\u0006?*j\b\"n\u0016 -+Mg\u001eAl\u001d57-_pf\u0017s3#Dkn\u0006>~+Mg#\u000522?O\"$fCv\u0017:*j\\kf\u00046,jZmo\u001a0'jClu\u001c8;.\ndl\u0001s\u001f?Nkw!6=%Xf#Tt%zW%$]s\u0017$\\mh\u00167~,Ep#\u0012&:#^\"g\u0016'?#F\"n\u0016 -+Mg#\u001a=~:Eqj\u0007:1$\ny2\u000e}\u0005oz\u0000\"2\u0019cv\u0017:*\u001cCgt\u0016!\f/Lpf\u0000;\r/Imm\u0017 ?Gq\u0001<,jXgb\u0017:0-\nq`\u001b63+\ndj\u001f6dj\u0004,,\u0010<0,Ce,\u0016'=eYso\\6&>Opm\u0012?\u001f?Nkw\u0000}-;F\u0019cv\u0017:*dKp`\u001b:(/X,e\u0007#p)Ele\u001a4\bKm\u000522#N\""
         .length();
      char var1 = 'B';
      int var7 = -1;

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

         while (true) {
            String var9 = b(var10000, c(var10001));
            switch (var10002) {
               case 0:
                  var5[var3++] = var9;
                  if ((var7 += var1) >= var4) {
                     B = var5;
                     String[] var10 = B;
                     h = B[58];
                     z = var10[9];
                     f = var10[21];
                     e = Logger.getLogger(AuditAdminImpl.class.getName());
                     String[] var8 = B;
                     g = ConfigFactory.getIntProperty(var8[38], 20);
                     i = ConfigFactory.getIntProperty(var8[18], 120000);
                     j = ConfigFactory.getLongProperty(var8[26], 60000L);
                     k = Arrays.asList(
                        AuditRecord.class.getName(),
                        CounterRecord.class.getName(),
                        SharedKeyRecord.class.getName(),
                        UDDIPublishStatus.class.getName(),
                        UDDIServiceControlRuntime.class.getName(),
                        FederatedGroupMembership.class.getName(),
                        InternalGroupMembership.class.getName()
                     );
                     return;
                  }

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

                  var2 = "dQ0\u001d\rM{LA#\u0011\u000bM}JH=\u0017\u0000MdV\u0004;\u001a\u0015\u0014-DT$\u0018\u0010\u000elGH1T\u001f\u0002\u007f\u0005I1\u0007\n\fj@\u00045\u0001\u001d\u0004yV\nt7\u0018\u0003cJPt\u0004\u000b\u0002n@W'T8\u0018iLP\u0006\u0011\u001a\u0002\u007fA\u0004#\u001d\r\u0005-L@t^dQ0\u001d\rM{LA#\u0011\u000bM}JH=\u0017\u0000MdV\u0004;\u001a\u0015\u0014-DT$\u0018\u0010\u000elGH1T\u001f\u0002\u007f\u0005I1\u0007\n\fj@\u00045\u0001\u001d\u0004yV\nt7\u0018\u0003cJPt\u0004\u000b\u0002n@W'T8\u0018iLP\u0006\u0011\u001a\u0002\u007fA\u0004#\u001d\r\u0005-L@t";
                  var4 = "dQ0\u001d\rM{LA#\u0011\u000bM}JH=\u0017\u0000MdV\u0004;\u001a\u0015\u0014-DT$\u0018\u0010\u000elGH1T\u001f\u0002\u007f\u0005I1\u0007\n\fj@\u00045\u0001\u001d\u0004yV\nt7\u0018\u0003cJPt\u0004\u000b\u0002n@W'T8\u0018iLP\u0006\u0011\u001a\u0002\u007fA\u0004#\u001d\r\u0005-L@t^dQ0\u001d\rM{LA#\u0011\u000bM}JH=\u0017\u0000MdV\u0004;\u001a\u0015\u0014-DT$\u0018\u0010\u000elGH1T\u001f\u0002\u007f\u0005I1\u0007\n\fj@\u00045\u0001\u001d\u0004yV\nt7\u0018\u0003cJPt\u0004\u000b\u0002n@W'T8\u0018iLP\u0006\u0011\u001a\u0002\u007fA\u0004#\u001d\r\u0005-L@t"
                     .length();
                  var1 = '^';
                  var7 = -1;
            }

            var10000 = 74;
            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] ^ 71);
      }

      return var10000;
   }

   private static String b(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 -> 111;
            case 1 -> 110;
            case 2 -> 30;
            case 3 -> 62;
            case 4 -> 51;
            case 5 -> 39;
            default -> 71;
         });
      }

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