/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.gateway.common.audit.Audit
 *  com.l7tech.gateway.common.audit.AuditDetailMessage
 *  com.l7tech.gateway.common.audit.AuditFactory
 *  com.l7tech.gateway.common.audit.SystemMessages
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.util.Config
 *  com.l7tech.util.ValidatedConfig
 *  org.jetbrains.annotations.NotNull
 *  org.springframework.beans.BeansException
 *  org.springframework.context.ApplicationContext
 *  org.springframework.context.ApplicationContextAware
 *  org.springframework.context.ApplicationEvent
 *  org.springframework.context.event.ContextStartedEvent
 *  org.springframework.transaction.PlatformTransactionManager
 */
package com.l7tech.server.audit;

import com.l7tech.gateway.common.audit.Audit;
import com.l7tech.gateway.common.audit.AuditDetailMessage;
import com.l7tech.gateway.common.audit.AuditFactory;
import com.l7tech.gateway.common.audit.SystemMessages;
import com.l7tech.objectmodel.FindException;
import com.l7tech.server.MessageProcessor;
import com.l7tech.server.audit.ArchiveReceiver;
import com.l7tech.server.audit.AuditExporter;
import com.l7tech.server.audit.AuditRecordManager;
import com.l7tech.server.audit.au;
import com.l7tech.server.audit.j;
import com.l7tech.server.cluster.ClusterLock;
import com.l7tech.server.cluster.ClusterPropertyManager;
import com.l7tech.server.event.system.AuditArchiverEvent;
import com.l7tech.server.util.PostStartupApplicationListener;
import com.l7tech.util.Config;
import com.l7tech.util.ValidatedConfig;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.sql.SQLException;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.locks.Lock;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.event.ContextStartedEvent;
import org.springframework.transaction.PlatformTransactionManager;

/*
 * Exception performing whole class analysis ignored.
 */
public class AuditArchiver
implements ApplicationContextAware,
PostStartupApplicationListener,
PropertyChangeListener {
    private static final Logger a;
    private final ValidatedConfig b;
    private final Config c;
    private final ClusterPropertyManager d;
    private final PlatformTransactionManager e;
    private final AuditRecordManager f;
    private final Audit g;
    private final boolean h;
    private int i;
    private int j;
    private int k;
    private int l;
    private int m;
    private static final int n = 10000;
    public static final long MYSQL_STATS_UPDATE_SLEEP_WAIT = 15000L;
    private AuditManagementStrategy o;
    private Timer p;
    private Lock q;
    private ApplicationContext r;
    private long s;
    private long t;
    private TimerTask u;
    private ArchiveReceiver v;
    private static final String[] w;

    public AuditArchiver(@NotNull Config config, @NotNull ClusterPropertyManager clusterPropertyManager, @NotNull PlatformTransactionManager platformTransactionManager, @NotNull AuditRecordManager auditRecordManager, @NotNull ArchiveReceiver archiveReceiver, @NotNull AuditFactory auditFactory, boolean bl2) throws FindException {
        if (config == null) {
            AuditArchiver.a(0);
        }
        if (clusterPropertyManager == null) {
            AuditArchiver.a(1);
        }
        if (platformTransactionManager == null) {
            AuditArchiver.a(2);
        }
        if (auditRecordManager == null) {
            AuditArchiver.a(3);
        }
        if (archiveReceiver == null) {
            AuditArchiver.a(4);
        }
        if (auditFactory == null) {
            AuditArchiver.a(5);
        }
        this.o = AuditManagementStrategy.STOP;
        this.c = config;
        this.d = clusterPropertyManager;
        this.e = platformTransactionManager;
        this.f = auditRecordManager;
        this.v = archiveReceiver;
        this.g = auditFactory.newInstance((Object)this, a);
        this.h = bl2;
        this.s = this.c.getLongProperty(w[51], 120L);
        this.q = this.a();
        this.p = new Timer(true);
        this.b = this.a(config, a);
    }

    public boolean isEnabled() {
        return this.h;
    }

    private Lock a() {
        return new ClusterLock(this.d, this.e, w[3], this.s);
    }

    public void onApplicationEvent(ApplicationEvent applicationEvent) {
        block4: {
            try {
                try {
                    if (!this.h || !(applicationEvent instanceof ContextStartedEvent)) break block4;
                }
                catch (BeansException beansException) {
                    throw AuditArchiver.a((Exception)((Object)beansException));
                }
                this.c();
                a.info(w[50]);
            }
            catch (BeansException beansException) {
                throw AuditArchiver.a((Exception)((Object)beansException));
            }
        }
    }

    private void b() {
        block9: {
            block8: {
                try {
                    if (this.p == null) {
                        a.warning(w[27]);
                        return;
                    }
                }
                catch (BeansException beansException) {
                    throw AuditArchiver.a((Exception)((Object)beansException));
                }
                try {
                    if (this.u != null) {
                        this.u.cancel();
                    }
                }
                catch (BeansException beansException) {
                    throw AuditArchiver.a((Exception)((Object)beansException));
                }
                try {
                    if (this.t <= 0L) break block8;
                    a.info(w[33] + this.t / 1000L + w[21]);
                    this.u = new au(this);
                    this.p.schedule(this.u, 0L, this.t);
                    break block9;
                }
                catch (BeansException beansException) {
                    throw AuditArchiver.a((Exception)((Object)beansException));
                }
            }
            a.info(w[0]);
        }
    }

    private void c() {
        block8: {
            String[] stringArray = w;
            a.info(stringArray[18]);
            this.l = this.b.getIntProperty(stringArray[48], 50);
            this.i = this.b.getIntProperty(stringArray[38], 90);
            this.j = this.b.getIntProperty(stringArray[52], 75);
            this.k = this.b.getIntProperty(stringArray[44], 50);
            this.m = this.c.getIntProperty(stringArray[22], 100);
            this.o = AuditManagementStrategy.toValue(this.c.getProperty(stringArray[30], stringArray[9]));
            long l2 = this.c.getLongProperty(stringArray[15], 120L);
            try {
                if (l2 != this.s) {
                    a.info(stringArray[46] + l2 + stringArray[11]);
                    this.s = l2;
                    this.q = this.a();
                }
            }
            catch (BeansException beansException) {
                throw AuditArchiver.a((Exception)((Object)beansException));
            }
            long l3 = this.c.getLongProperty(w[8], 600L) * 1000L;
            if (l3 < 0L) {
                l3 = 0L;
            }
            try {
                try {
                    if (this.p == null || l3 == this.t) break block8;
                }
                catch (BeansException beansException) {
                    throw AuditArchiver.a((Exception)((Object)beansException));
                }
                this.t = l3;
                this.b();
            }
            catch (BeansException beansException) {
                throw AuditArchiver.a((Exception)((Object)beansException));
            }
        }
    }

    private void d() {
        String[] stringArray = w;
        a.info(stringArray[56]);
        int n2 = this.a(0L);
        try {
            if (n2 >= this.l) {
                this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_SOFT_LIMIT_REACHED, new String[]{String.valueOf(n2), String.valueOf(this.l)});
                this.getApplicationContext().publishEvent((ApplicationEvent)new AuditArchiverEvent(this));
            }
        }
        catch (BeansException beansException) {
            throw AuditArchiver.a((Exception)((Object)beansException));
        }
        try {
            if (n2 < this.j) {
                a.info(w[34]);
                return;
            }
        }
        catch (BeansException beansException) {
            throw AuditArchiver.a((Exception)((Object)beansException));
        }
        Thread thread = new Thread(new j(this));
        thread.start();
    }

    private void e() {
        try {
            if (MessageProcessor.SuspendStatus.INSTANCE.isSuspended()) {
                a.warning(w[24]);
                MessageProcessor.SuspendStatus.INSTANCE.resume();
                this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_MESSAGE_PROCESSING_RESTARTED);
                this.getApplicationContext().publishEvent((ApplicationEvent)new AuditArchiverEvent(this));
            }
        }
        catch (BeansException beansException) {
            throw AuditArchiver.a((Exception)((Object)beansException));
        }
    }

    private void a(String string) {
        try {
            if (!MessageProcessor.SuspendStatus.INSTANCE.isSuspended()) {
                a.severe(w[42] + string);
                MessageProcessor.SuspendStatus.INSTANCE.suspend(string);
                this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_MESSAGE_PROCESSING_SUSPENDED, new String[]{string});
                this.getApplicationContext().publishEvent((ApplicationEvent)new AuditArchiverEvent(this));
            }
        }
        catch (BeansException beansException) {
            throw AuditArchiver.a((Exception)((Object)beansException));
        }
    }

    /*
     * Exception decompiling
     */
    int a(long var1_1) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [4[TRYBLOCK]], but top level block is 8[SWITCH]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1055)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

    private long f() throws FindException {
        int n2;
        long l2 = this.f.getMaxTableSpace();
        if (l2 == -1L && (n2 = this.c.getIntProperty(w[55], -1)) != -1) {
            l2 = (long)n2 * 0x100000L;
        }
        return l2;
    }

    private void g() {
        try {
            if (this.p != null) {
                this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_ERROR, new String[]{w[28]});
                this.p.cancel();
                this.p = null;
            }
        }
        catch (BeansException beansException) {
            throw AuditArchiver.a((Exception)((Object)beansException));
        }
    }

    private void h() {
        this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_JOB_STARTED);
        while (true) {
            String[] stringArray;
            long l2 = Long.MIN_VALUE;
            long l3 = Long.MIN_VALUE;
            long l4 = 0L;
            while (this.k <= this.a(l4)) {
                int n2;
                long l5;
                long l6;
                try {
                    l6 = this.f.getMinMills(l3);
                }
                catch (Exception exception) {
                    String[] stringArray2 = new String[1];
                    stringArray = w;
                    stringArray2[0] = stringArray[6];
                    this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_ERROR, stringArray2, (Throwable)exception);
                    break;
                }
                if (l2 == Long.MIN_VALUE) {
                    l2 = l6;
                }
                try {
                    if (l6 == -1L) {
                        this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_ERROR, new String[]{w[25]});
                        break;
                    }
                }
                catch (Exception exception) {
                    throw AuditArchiver.a(exception);
                }
                try {
                    l5 = l6;
                    n2 = this.m > 10000 ? 10000 : this.m;
                }
                catch (Exception exception) {
                    throw AuditArchiver.a(exception);
                }
                long l7 = l5 + (long)n2;
                try {
                    AuditExporter.ExportedInfo exportedInfo;
                    if (a.isLoggable(Level.FINE)) {
                        long l8 = l7;
                        long l9 = l6;
                        stringArray = w;
                        a.fine(stringArray[41] + l9 + stringArray[5] + l8 + "]");
                    }
                    if ((exportedInfo = this.v.archiveRecords(l6, l7)) == null) break;
                    l3 = exportedInfo.getLatestTime();
                    l4 += exportedInfo.getTransferredBytes();
                }
                catch (Exception exception) {
                    String[] stringArray3 = new String[1];
                    stringArray = w;
                    stringArray3[0] = stringArray[16];
                    this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_ERROR, stringArray3, (Throwable)exception);
                    break;
                }
            }
            try {
                block24: {
                    block25: {
                        block23: {
                            try {
                                if (l2 == Long.MIN_VALUE && l3 == Long.MIN_VALUE) {
                                    break;
                                }
                            }
                            catch (BeansException beansException) {
                                throw AuditArchiver.a((Exception)((Object)beansException));
                            }
                            try {
                                if (l3 >= l2 && l3 != Long.MIN_VALUE) break block23;
                            }
                            catch (Exception exception) {
                                throw AuditArchiver.a(exception);
                            }
                            String[] stringArray4 = new String[1];
                            stringArray = w;
                            stringArray4[0] = stringArray[53];
                            this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_ERROR, stringArray4);
                            break;
                        }
                        try {
                            if (!this.v.flush()) break block24;
                            if (!a.isLoggable(Level.FINE)) break block25;
                        }
                        catch (Exception exception) {
                            throw AuditArchiver.a(exception);
                        }
                        long l10 = l3;
                        long l11 = l2;
                        stringArray = w;
                        a.fine(stringArray[43] + l11 + stringArray[58] + l10 + "]");
                    }
                    this.f.deleteRangeByTime(l2, l3);
                    this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_JOB_ARCHIVED, new String[]{Long.toString(l2), Long.toString(l3)});
                    Thread.sleep(15000L);
                    continue;
                }
                String[] stringArray5 = new String[1];
                stringArray = w;
                stringArray5[0] = stringArray[35];
                this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_ERROR, stringArray5);
            }
            catch (SQLException sQLException) {
                String[] stringArray6 = new String[1];
                stringArray = w;
                stringArray6[0] = stringArray[49];
                this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_ERROR, stringArray6, (Throwable)sQLException);
                continue;
            }
            catch (InterruptedException interruptedException) {
                a.warning(w[1]);
                continue;
            }
            break;
        }
        this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_JOB_COMPLETE);
        this.getApplicationContext().publishEvent((ApplicationEvent)new AuditArchiverEvent(this));
    }

    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.r = applicationContext;
    }

    public ApplicationContext getApplicationContext() {
        return this.r;
    }

    @Override
    public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
        try {
            if (this.h) {
                this.c();
            }
        }
        catch (BeansException beansException) {
            throw AuditArchiver.a((Exception)((Object)beansException));
        }
    }

    public void runNow() {
        block3: {
            block2: {
                try {
                    if (!this.h) break block2;
                    this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_IMMEDIATE_TRIGGER);
                    this.b();
                    this.getApplicationContext().publishEvent((ApplicationEvent)new AuditArchiverEvent(this));
                    break block3;
                }
                catch (BeansException beansException) {
                    throw AuditArchiver.a((Exception)((Object)beansException));
                }
            }
            this.g.logAndAudit((AuditDetailMessage)SystemMessages.AUDIT_ARCHIVER_ERROR, new String[]{w[31]});
        }
    }

    private ValidatedConfig a(Config config, Logger logger) {
        ValidatedConfig validatedConfig = new ValidatedConfig(config, logger);
        String[] stringArray = w;
        validatedConfig.setMinimumValue(stringArray[13], (Number)0);
        validatedConfig.setMinimumValue(stringArray[54], (Number)0);
        validatedConfig.setMinimumValue(stringArray[45], (Number)0);
        validatedConfig.setMaximumValue(stringArray[17], (Number)0);
        validatedConfig.setMaximumValue(stringArray[13], (Number)100);
        validatedConfig.setMaximumValue(stringArray[54], (Number)100);
        validatedConfig.setMaximumValue(stringArray[45], (Number)100);
        validatedConfig.setMaximumValue(stringArray[17], (Number)100);
        return validatedConfig;
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[60];
                var3_1 = 0;
                var2_2 = ">KZG[)(\r]VGYl\u001b_JWCJ{I\u001bWMOMe\f\u001b\u001046PJK]{\u001c\u000fJ[J\u000f~\u0001\u0016R[\u000eXh\u0000\u000bWPI\u000fo\u0006\r\u001esW|X%_MJO[zI\u000bQ\u001e[_m\b\u000b[\u0010\u0006\u001cQPHFn\u0018\u001eKZG['\b\r]VGYl\u001b6Pn\\@n\u001b\u001aMM16PHOC`\r_H_BZlI\u001b[XGAl\r_XQ\\\u000fd\b\u0007\u001eW@Af\r\u001d\u001eJOMe\f\fN_MJ3I\u0003_\u0004\u001e,:LLA])\u000e\u001aJJGAnI\u0013QIK\\}I\u001eKZG[)\u001b\u001a]Q\\K)\u0006\u001dT[M[)\u0000\u001b\u0010\u0002\u001eL\u0018\u001eKZG[H\u001b\u001cVWXJ{=\u0016S[\\\u007fl\u001b\u0016QZ\u0004,jq~'2_F\u000eFg\u0007\u0010Z\\\u000e[h\u000b\u0013[M^Nj\f_MWTJ)\u0007\u0010J\u001eJJo\u0000\u0011[Z\u0000\t_SW@Z}\f\f\u0010%\u001cQS\u0001C>\u001d\u001a]V\u0001\\l\u001b\t[L\u0001N|\r\u0016J\u0011oZm\u0000\u000b\u007fLMG`\u001f\u001aL\u001e\u001eKZG[H\u001b\u001cVWXJ{:\u0017KJJ@~\u0007+VLK\\a\u0006\u0013Z<>KZG[)\u001b\u001a]Q\\KzI\u001b_JOMh\u001a\u001a\u001eZG\\bI\nM_IJ)\f\u0007][KKl\r_[SK]n\f\u0011]G\u000eC`\u0004\u0016J\u001e\u0006\u0019\u001eKZG[H\u001b\u001cVWXJ{:\u000b_RK{`\u0004\u001aQKZ\u001e:LLA])\b\r]VGY`\u0007\u0018\u001e_[K`\u001d_L[M@{\r\f\u0010\u001d\u001eKZG[H\u001b\u001cVWXJ{>\u001eLPGAn=\u0017L[]Gf\u0005\u001b\u0018-[RANm\u0000\u0011Y\u001eM@g\u000f\u0016YK\\N}\u0000\u0010P\u0010!_]Q[CmI\u0011QJ\u000e]l\u001d\rW[XJ)\n\nLLKA}I\nM_IJ\u000e\u001eKZG[f\u001b9_]Z@{\u0010\t_M[M@g\r\f\u0010\u0016\u001eKZG[H\u001b\u001cVWXJ{+\u001eJ]F|`\u0013\u001a#V\u0010\u001eoZm\u0000\u000b\u001eLKLf\u001b\u001bM\u001eYFe\u0005_PQZ\u000fk\f_M_XJmH%-[MZN{\u001d\u0016PY\u000ehh\u001d\u001aI_W\u000fd\f\fM_IJ)\u0019\rQ]K\\z\u0000\u0011Y,:LLA])\u000e\u001aJJGAnI\u0013QIK\\}I\u001eKZG[)\u001b\u001a]Q\\K)\u0006\u001dT[M[)\u0000\u001b\u0010\u0004_\u0000\u0003\u000e)+WSK])\u0000\f\u001e]OAj\f\u0013R[J\u0014)\u001c\u0011_\\BJ)\u001d\u0010\u001eLK\\j\u0001\u001aZKBJ( <_PMJe\u0005\u0016PY\u000en|\r\u0016J\u001eo]j\u0001\u0016H[\\\u000f}\u0000\u0012[L\u0000 <KL\\Jg\u001d_Z_ZNk\b\f[\u001e]_h\n\u001a\u001eK]Nn\f_WM\u000e\u0017\u001eKZG[D\b\u0011_YKBl\u0007\u000bmJ\\N}\f\u0018G\u0017>KZG[)\b\r]VGYl\u001b_ZW]Nk\u0005\u001aZ\"/LQDJj\u001d\u001aZ\u001eJN}\b\u001d_MK\u000fz\u0019\u001e][\u000eZz\b\u0018[\u001eG\\)(Wl[\u0007|j\u0001\u001aZKBFg\u000e_\u007fKJF}I>L]FF\u007f\f\r\u001eJGBl\u001b_XQ\\\u000f<=[RAX)\u001a\u000b_LZph\u001b\u001cVWXJ)\u001d\u0017L[]Gf\u0005\u001b\u0012\u001e@@}I\fJ_\\[`\u0007\u0018\u001e_\\La\u0000\t[L\u000e[a\u001b\u001a_Z\u0000::LLA])\u000f\u0013KMFFg\u000e__LMG`\u001f\u001a\u001eLKLl\u0000\t[L\u0015\u000fG&+\u001eZKCl\u001d\u0016PY\u000eNg\u0010_L[M@{\r\f\u0010>>LY[Bl\u0007\u000b\u001eXA]))1QJ`Ze\u0005_N_\\Nd\f\u000b[L\u000e\b,\u001aX\u001eQH\u000f,\u001aQ\u001bM\u000eB|\u001a\u000b\u001ePA[)\u000b\u001a\u001eP[Ce\u0004_\u0000\u0003\u000e\u001e\u001eKZG[H\u001b\u001cVWXJ{:\u0017KJJ@~\u0007+VLK\\a\u0006\u0013Z\u0003\u001cNS\u0006CWPG[7&>L]FF\u007f\u0000\u0011Y\u001eOZm\u0000\u000b\u001eLKLf\u001b\u001bM\u001eYF}\u0001_JWCJ)\u0000\u0011\u001ee',KM^Jg\r\u0016PY\u000ehh\u001d\u001aI_W\u000fd\f\fM_IJ)\u0019\rQ]K\\z\u0000\u0011Y\u0004\u000e%;[RK[`\u0007\u0018\u001e_[K`\u001d_L[M@{\r\f\u001eIG[aI\u000bWSK\u000f`\u0007_e\u001a\u001eKZG[H\u001b\u001cVWXJ{:\u000bQNzG{\f\fVQBK\u001a\u001eKZG[H\u001b\u001cVWXJ{:\u000bQNzG{\f\fVQBK(,[JZFg\u000e_P[Y\u000fj\u0005\nMJK])\u0005\u0010]U\u000e\\}\b\u0013[\u001eZFd\f\u0010KJ\u0014\u000f\u0002\u000bS\u001d\u001eKZG[H\u001b\u001cVWXJ{>\u001eLPGAn=\u0017L[]Gf\u0005\u001b\u001d:LLA])\r\u001aR[ZFg\u000e__KJF}I\r[]A]m\u001aQ\u001b>KZG[)(\r]VGYl\u001b_WPG[`\b\u0013WDKK'\u0019\u001eKZG[H\u001b\u001cVWXJ{:\u000b_RK{`\u0004\u001aQKZ\u001b\u001eKZG[H\u001b\u001cVWXJ{:\u000b_LZ{a\u001b\u001aMVACm91Q\u001e\\Jj\u0006\rZM\u000eXl\u001b\u001a\u001eMOYl\r_\\G\u000e[a\f_]Q@I`\u000e\nL[J\u000fh\u001b\u001cVWXJ)\u001b\u001a][GYl\u001b^\u001b\u001eKZG[H\u001b\u001cVWXJ{:\u000b_LZ{a\u001b\u001aMVACm%\u001eKZG[H\u001b\u001cVWXJ{G\u001b\\\u0010JJo\b\nRJjFz\u0002+VLK\\a\u0006\u0013Z\u001e,J_\\[`\u0007\u0018\u001e\u007f[K`\u001d_\u007fLMG`\u001f\u001aL\u001eMGl\n\u0014\u0010\u0003\u001eLS";
                var4_3 = ">KZG[)(\r]VGYl\u001b_JWCJ{I\u001bWMOMe\f\u001b\u001046PJK]{\u001c\u000fJ[J\u000f~\u0001\u0016R[\u000eXh\u0000\u000bWPI\u000fo\u0006\r\u001esW|X%_MJO[zI\u000bQ\u001e[_m\b\u000b[\u0010\u0006\u001cQPHFn\u0018\u001eKZG['\b\r]VGYl\u001b6Pn\\@n\u001b\u001aMM16PHOC`\r_H_BZlI\u001b[XGAl\r_XQ\\\u000fd\b\u0007\u001eW@Af\r\u001d\u001eJOMe\f\fN_MJ3I\u0003_\u0004\u001e,:LLA])\u000e\u001aJJGAnI\u0013QIK\\}I\u001eKZG[)\u001b\u001a]Q\\K)\u0006\u001dT[M[)\u0000\u001b\u0010\u0002\u001eL\u0018\u001eKZG[H\u001b\u001cVWXJ{=\u0016S[\\\u007fl\u001b\u0016QZ\u0004,jq~'2_F\u000eFg\u0007\u0010Z\\\u000e[h\u000b\u0013[M^Nj\f_MWTJ)\u0007\u0010J\u001eJJo\u0000\u0011[Z\u0000\t_SW@Z}\f\f\u0010%\u001cQS\u0001C>\u001d\u001a]V\u0001\\l\u001b\t[L\u0001N|\r\u0016J\u0011oZm\u0000\u000b\u007fLMG`\u001f\u001aL\u001e\u001eKZG[H\u001b\u001cVWXJ{:\u0017KJJ@~\u0007+VLK\\a\u0006\u0013Z<>KZG[)\u001b\u001a]Q\\KzI\u001b_JOMh\u001a\u001a\u001eZG\\bI\nM_IJ)\f\u0007][KKl\r_[SK]n\f\u0011]G\u000eC`\u0004\u0016J\u001e\u0006\u0019\u001eKZG[H\u001b\u001cVWXJ{:\u000b_RK{`\u0004\u001aQKZ\u001e:LLA])\b\r]VGY`\u0007\u0018\u001e_[K`\u001d_L[M@{\r\f\u0010\u001d\u001eKZG[H\u001b\u001cVWXJ{>\u001eLPGAn=\u0017L[]Gf\u0005\u001b\u0018-[RANm\u0000\u0011Y\u001eM@g\u000f\u0016YK\\N}\u0000\u0010P\u0010!_]Q[CmI\u0011QJ\u000e]l\u001d\rW[XJ)\n\nLLKA}I\nM_IJ\u000e\u001eKZG[f\u001b9_]Z@{\u0010\t_M[M@g\r\f\u0010\u0016\u001eKZG[H\u001b\u001cVWXJ{+\u001eJ]F|`\u0013\u001a#V\u0010\u001eoZm\u0000\u000b\u001eLKLf\u001b\u001bM\u001eYFe\u0005_PQZ\u000fk\f_M_XJmH%-[MZN{\u001d\u0016PY\u000ehh\u001d\u001aI_W\u000fd\f\fM_IJ)\u0019\rQ]K\\z\u0000\u0011Y,:LLA])\u000e\u001aJJGAnI\u0013QIK\\}I\u001eKZG[)\u001b\u001a]Q\\K)\u0006\u001dT[M[)\u0000\u001b\u0010\u0004_\u0000\u0003\u000e)+WSK])\u0000\f\u001e]OAj\f\u0013R[J\u0014)\u001c\u0011_\\BJ)\u001d\u0010\u001eLK\\j\u0001\u001aZKBJ( <_PMJe\u0005\u0016PY\u000en|\r\u0016J\u001eo]j\u0001\u0016H[\\\u000f}\u0000\u0012[L\u0000 <KL\\Jg\u001d_Z_ZNk\b\f[\u001e]_h\n\u001a\u001eK]Nn\f_WM\u000e\u0017\u001eKZG[D\b\u0011_YKBl\u0007\u000bmJ\\N}\f\u0018G\u0017>KZG[)\b\r]VGYl\u001b_ZW]Nk\u0005\u001aZ\"/LQDJj\u001d\u001aZ\u001eJN}\b\u001d_MK\u000fz\u0019\u001e][\u000eZz\b\u0018[\u001eG\\)(Wl[\u0007|j\u0001\u001aZKBFg\u000e_\u007fKJF}I>L]FF\u007f\f\r\u001eJGBl\u001b_XQ\\\u000f<=[RAX)\u001a\u000b_LZph\u001b\u001cVWXJ)\u001d\u0017L[]Gf\u0005\u001b\u0012\u001e@@}I\fJ_\\[`\u0007\u0018\u001e_\\La\u0000\t[L\u000e[a\u001b\u001a_Z\u0000::LLA])\u000f\u0013KMFFg\u000e__LMG`\u001f\u001a\u001eLKLl\u0000\t[L\u0015\u000fG&+\u001eZKCl\u001d\u0016PY\u000eNg\u0010_L[M@{\r\f\u0010>>LY[Bl\u0007\u000b\u001eXA]))1QJ`Ze\u0005_N_\\Nd\f\u000b[L\u000e\b,\u001aX\u001eQH\u000f,\u001aQ\u001bM\u000eB|\u001a\u000b\u001ePA[)\u000b\u001a\u001eP[Ce\u0004_\u0000\u0003\u000e\u001e\u001eKZG[H\u001b\u001cVWXJ{:\u0017KJJ@~\u0007+VLK\\a\u0006\u0013Z\u0003\u001cNS\u0006CWPG[7&>L]FF\u007f\u0000\u0011Y\u001eOZm\u0000\u000b\u001eLKLf\u001b\u001bM\u001eYF}\u0001_JWCJ)\u0000\u0011\u001ee',KM^Jg\r\u0016PY\u000ehh\u001d\u001aI_W\u000fd\f\fM_IJ)\u0019\rQ]K\\z\u0000\u0011Y\u0004\u000e%;[RK[`\u0007\u0018\u001e_[K`\u001d_L[M@{\r\f\u001eIG[aI\u000bWSK\u000f`\u0007_e\u001a\u001eKZG[H\u001b\u001cVWXJ{:\u000bQNzG{\f\fVQBK\u001a\u001eKZG[H\u001b\u001cVWXJ{:\u000bQNzG{\f\fVQBK(,[JZFg\u000e_P[Y\u000fj\u0005\nMJK])\u0005\u0010]U\u000e\\}\b\u0013[\u001eZFd\f\u0010KJ\u0014\u000f\u0002\u000bS\u001d\u001eKZG[H\u001b\u001cVWXJ{>\u001eLPGAn=\u0017L[]Gf\u0005\u001b\u001d:LLA])\r\u001aR[ZFg\u000e__KJF}I\r[]A]m\u001aQ\u001b>KZG[)(\r]VGYl\u001b_WPG[`\b\u0013WDKK'\u0019\u001eKZG[H\u001b\u001cVWXJ{:\u000b_RK{`\u0004\u001aQKZ\u001b\u001eKZG[H\u001b\u001cVWXJ{:\u000b_LZ{a\u001b\u001aMVACm91Q\u001e\\Jj\u0006\rZM\u000eXl\u001b\u001a\u001eMOYl\r_\\G\u000e[a\f_]Q@I`\u000e\nL[J\u000fh\u001b\u001cVWXJ)\u001b\u001a][GYl\u001b^\u001b\u001eKZG[H\u001b\u001cVWXJ{:\u000b_LZ{a\u001b\u001aMVACm%\u001eKZG[H\u001b\u001cVWXJ{G\u001b\\\u0010JJo\b\nRJjFz\u0002+VLK\\a\u0006\u0013Z\u001e,J_\\[`\u0007\u0018\u001e\u007f[K`\u001d_\u007fLMG`\u001f\u001aL\u001eMGl\n\u0014\u0010\u0003\u001eLS".length();
                var1_4 = 30;
                var0_5 = -1;
lbl7:
                // 2 sources

                while (true) {
                    v0 = 3;
                    v1 = ++var0_5;
                    v2 = var2_2.substring(v1, v1 + var1_4);
                    v3 = -1;
                    break block9;
                    break;
                }
lbl13:
                // 1 sources

                while (true) {
                    var5[var3_1++] = AuditArchiver.a(v0, AuditArchiver.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\u0018CY<y\f\u001d\u0000\u001cn\\]\u001a\u0016\u001b\f=\u000e\\\u0018\r\b\n/]]Y\u001d\u0000\u001b%\u000eM\n\u0018\u000e\rnK@\u001a\u001c\f\f+J\u0018\u001c\u0014\f\u001a)KV\u001a\u0000I\u0004'CQ\rYA";
                    var4_3 = "\u0018CY<y\f\u001d\u0000\u001cn\\]\u001a\u0016\u001b\f=\u000e\\\u0018\r\b\n/]]Y\u001d\u0000\u001b%\u000eM\n\u0018\u000e\rnK@\u001a\u001c\f\f+J\u0018\u001c\u0014\f\u001a)KV\u001a\u0000I\u0004'CQ\rYA".length();
                    var1_4 = 3;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 68;
                        v4 = ++var0_5;
                        v2 = var2_2.substring(v4, v4 + var1_4);
                        v3 = 0;
                        break block9;
                        break;
                    }
                    break;
                }
lbl28:
                // 1 sources

                while (true) {
                    var5[var3_1++] = AuditArchiver.a(v0, AuditArchiver.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    break block10;
                    break;
                }
            }
            switch (v3) {
                default: {
                    ** continue;
                }
                ** case 0:
lbl39:
                // 1 sources

                ** continue;
            }
        }
        AuditArchiver.w = var5;
        AuditArchiver.a = Logger.getLogger(AuditArchiver.class.getName());
    }

    /*
     * Exception decompiling
     */
    private static /* synthetic */ void a(int var0) {
        /*
         * This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
         * 
         * org.benf.cfr.reader.util.ConfusedCFRException: Tried to end blocks [0[TRYBLOCK]], but top level block is 1[SWITCH]
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.processEndingBlocks(Op04StructuredStatement.java:435)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:484)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.createInitialStructuredBlock(Op03SimpleStatement.java:736)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:850)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:278)
         *     at org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:201)
         *     at org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:94)
         *     at org.benf.cfr.reader.entities.Method.analyse(Method.java:531)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:1050)
         *     at org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:942)
         *     at org.benf.cfr.reader.Driver.doJarVersionTypes(Driver.java:257)
         *     at org.benf.cfr.reader.Driver.doJar(Driver.java:139)
         *     at org.benf.cfr.reader.CfrDriverImpl.analyse(CfrDriverImpl.java:76)
         *     at org.benf.cfr.reader.Main.main(Main.java:54)
         */
        throw new IllegalStateException("Decompilation failed");
    }

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

    private static char[] b(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x6A);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String a(int n2, char[] cArray) {
        char[] cArray2;
        block11: {
            int n3;
            int n4;
            int n5;
            block10: {
                n5 = n2;
                cArray2 = cArray;
                n4 = cArray.length;
                n3 = 0;
                if (!true) break block10;
                n4 = n4;
                if (n4 <= n3) break block11;
            }
            do {
                n5 = n5;
                cArray2 = cArray2;
                int n6 = n3;
                cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                    case 0 -> 124;
                    case 1 -> 61;
                    case 2 -> 61;
                    case 3 -> 45;
                    case 4 -> 44;
                    case 5 -> 10;
                    default -> 106;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }

    private static final class AuditManagementStrategy
    extends Enum<AuditManagementStrategy> {
        public static final /* enum */ AuditManagementStrategy STOP;
        public static final /* enum */ AuditManagementStrategy BYPASS;
        public static final /* enum */ AuditManagementStrategy DELETE;
        private static final /* synthetic */ AuditManagementStrategy[] $VALUES;

        public static AuditManagementStrategy[] values() {
            return (AuditManagementStrategy[])$VALUES.clone();
        }

        public static AuditManagementStrategy valueOf(String string) {
            return Enum.valueOf(AuditManagementStrategy.class, string);
        }

        public static AuditManagementStrategy toValue(String string) {
            try {
                return AuditManagementStrategy.valueOf(string);
            }
            catch (IllegalArgumentException illegalArgumentException) {
                return STOP;
            }
        }

        private static /* synthetic */ AuditManagementStrategy[] $values() {
            return new AuditManagementStrategy[]{STOP, BYPASS, DELETE};
        }

        /*
         * Enabled aggressive block sorting
         */
        static {
            String[] stringArray = new String[3];
            int n2 = 0;
            String string = "s\u0004G*pm\u0004b\tX;\u0006u\u0018[.w{";
            int n3 = "s\u0004G*pm\u0004b\tX;\u0006u\u0018[.w{".length();
            int n4 = 6;
            int n5 = -1;
            while (true) {
                int n6 = ++n5;
                stringArray[n2++] = AuditManagementStrategy.a(91, AuditManagementStrategy.a(string.substring(n6, n6 + n4)));
                if ((n5 += n4) >= n3) {
                    STOP = new AuditManagementStrategy();
                    BYPASS = new AuditManagementStrategy();
                    DELETE = new AuditManagementStrategy();
                    $VALUES = AuditManagementStrategy.$values();
                    return;
                }
                n4 = string.charAt(n5);
            }
        }

        private static char[] a(String string) {
            char[] cArray = string.toCharArray();
            if (cArray.length < 2) {
                cArray = cArray;
                cArray[0] = (char)(cArray[0] ^ 0x2A);
            }
            return cArray;
        }

        /*
         * Handled impossible loop by duplicating code
         * Enabled aggressive block sorting
         */
        private static String a(int n2, char[] cArray) {
            char[] cArray2;
            block11: {
                int n3;
                int n4;
                int n5;
                block10: {
                    n5 = n2;
                    cArray2 = cArray;
                    n4 = cArray.length;
                    n3 = 0;
                    if (!true) break block10;
                    n4 = n4;
                    if (n4 <= n3) break block11;
                }
                do {
                    n5 = n5;
                    cArray2 = cArray2;
                    int n6 = n3;
                    cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                        case 0 -> 106;
                        case 1 -> 6;
                        case 2 -> 76;
                        case 3 -> 48;
                        case 4 -> 120;
                        case 5 -> 101;
                        default -> 42;
                    })));
                    ++n3;
                    n4 = n4;
                } while (n4 > n3);
            }
            return new String(cArray2).intern();
        }
    }
}

