/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.identity.PersistentGroup
 *  com.l7tech.identity.PersistentUser
 *  com.l7tech.identity.User
 *  com.l7tech.identity.cert.ClientCertManager
 *  com.l7tech.objectmodel.DeleteException
 *  com.l7tech.objectmodel.DuplicateObjectException
 *  com.l7tech.objectmodel.EntityHeader
 *  com.l7tech.objectmodel.EntityHeaderSet
 *  com.l7tech.objectmodel.EntityManager$UniqueType
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.objectmodel.IdentityHeader
 *  com.l7tech.objectmodel.ObjectModelException
 *  com.l7tech.objectmodel.ObjectNotFoundException
 *  com.l7tech.objectmodel.PersistentEntity
 *  com.l7tech.objectmodel.SaveException
 *  com.l7tech.objectmodel.StaleUpdateException
 *  com.l7tech.objectmodel.UpdateException
 *  com.l7tech.objectmodel.imp.PersistentEntityUtil
 *  com.l7tech.util.ExceptionUtils
 *  jakarta.persistence.TypedQuery
 *  jakarta.persistence.criteria.CriteriaBuilder
 *  jakarta.persistence.criteria.Predicate
 *  jakarta.persistence.criteria.Root
 *  org.hibernate.HibernateException
 *  org.jetbrains.annotations.Nullable
 *  org.springframework.dao.DataAccessException
 *  org.springframework.orm.hibernate5.HibernateCallback
 *  org.springframework.transaction.annotation.Propagation
 *  org.springframework.transaction.annotation.Transactional
 */
package com.l7tech.server.identity;

import com.l7tech.identity.PersistentGroup;
import com.l7tech.identity.PersistentUser;
import com.l7tech.identity.User;
import com.l7tech.identity.cert.ClientCertManager;
import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.DuplicateObjectException;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityHeaderSet;
import com.l7tech.objectmodel.EntityManager;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.IdentityHeader;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.objectmodel.ObjectNotFoundException;
import com.l7tech.objectmodel.PersistentEntity;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.StaleUpdateException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.objectmodel.imp.PersistentEntityUtil;
import com.l7tech.server.HibernateEntityManager;
import com.l7tech.server.identity.PersistentGroupManager;
import com.l7tech.server.identity.PersistentIdentityProvider;
import com.l7tech.server.identity.PersistentUserManager;
import com.l7tech.server.identity.n;
import com.l7tech.server.identity.o;
import com.l7tech.server.identity.p;
import com.l7tech.server.identity.u;
import com.l7tech.server.identity.v;
import com.l7tech.server.logon.LogonInfoManager;
import com.l7tech.util.ExceptionUtils;
import jakarta.persistence.TypedQuery;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.Predicate;
import jakarta.persistence.criteria.Root;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.hibernate.HibernateException;
import org.jetbrains.annotations.Nullable;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate5.HibernateCallback;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

public abstract class PersistentUserManagerImpl<UT extends PersistentUser, GT extends PersistentGroup, UMT extends PersistentUserManager<UT>, GMT extends PersistentGroupManager<UT, GT>>
extends HibernateEntityManager<UT, IdentityHeader>
implements PersistentUserManager<UT> {
    private static final Logger m;
    private final String n;
    private final String o;
    protected PersistentIdentityProvider<UT, GT, UMT, GMT> identityProvider;
    private final ClientCertManager p;
    private LogonInfoManager q;
    private static final String[] v;

    protected PersistentUserManagerImpl(ClientCertManager clientCertManager, LogonInfoManager logonInfoManager) {
        String[] stringArray = v;
        this.n = stringArray[24] + this.getImpClass().getName() + stringArray[26];
        this.o = stringArray[10] + this.getImpClass().getName() + stringArray[15];
        this.p = clientCertManager;
        this.q = logonInfoManager;
    }

    public UT findByPrimaryKey(String string) throws FindException {
        try {
            if (string == null) {
                m.fine(v[1]);
                return null;
            }
        }
        catch (FindException findException) {
            throw PersistentUserManagerImpl.a((Exception)((Object)findException));
        }
        try {
            PersistentUser persistentUser = (PersistentUser)this.findByPrimaryKey(this.getImpClass(), Goid.parseGoid((String)string));
            if (persistentUser == null) {
                return null;
            }
            persistentUser.setProviderId(this.getProviderGoid());
            return (UT)persistentUser;
        }
        catch (IllegalArgumentException illegalArgumentException) {
            String[] stringArray = v;
            m.fine(stringArray[3] + string + stringArray[0]);
            return null;
        }
    }

    public UT findByLogin(String string) throws FindException {
        try {
            PersistentUser persistentUser = (PersistentUser)this.getHibernateTemplate().execute((HibernateCallback)new u(this, string));
            try {
                if (persistentUser != null) {
                    persistentUser.setProviderId(this.getProviderGoid());
                }
            }
            catch (Exception exception) {
                throw PersistentUserManagerImpl.a(exception);
            }
            return (UT)persistentUser;
        }
        catch (Exception exception) {
            m.log(Level.SEVERE, null, exception);
            throw new FindException(exception.toString(), (Throwable)exception);
        }
    }

    public EntityHeaderSet<IdentityHeader> search(String string) throws FindException {
        try {
            return (EntityHeaderSet)this.getHibernateTemplate().execute((HibernateCallback)new v(this, string));
        }
        catch (Exception exception) {
            String[] stringArray = v;
            String string2 = stringArray[7] + this.getInterfaceClass().getName() + stringArray[20];
            m.log(Level.SEVERE, string2, exception);
            throw new FindException(string2, (Throwable)exception);
        }
    }

    protected Goid getProviderGoid() {
        return this.identityProvider.getConfig().getGoid();
    }

    @Override
    public void delete(Goid goid) throws DeleteException, FindException {
        this.findAndDelete(goid);
    }

    @Override
    public void delete(UT UT) throws DeleteException {
        PersistentUser persistentUser = this.cast((User)UT);
        try {
            UT UT2 = this.findByPrimaryKey(persistentUser.getId());
            try {
                if (UT2 == null) {
                    throw new ObjectNotFoundException(v[6] + UT.getName());
                }
            }
            catch (DeleteException deleteException) {
                throw PersistentUserManagerImpl.a((Exception)((Object)deleteException));
            }
            this.preDelete(UT2);
            PersistentGroupManager persistentGroupManager = (PersistentGroupManager)this.identityProvider.getGroupManager();
            if (persistentGroupManager != null) {
                Set set = persistentGroupManager.getGroupHeaders((User)persistentUser);
                for (EntityHeader entityHeader : set) {
                    PersistentGroup persistentGroup = (PersistentGroup)persistentGroupManager.findByPrimaryKey(entityHeader.getStrId());
                    persistentGroupManager.deleteMembership(persistentGroup, UT);
                }
            }
            this.revokeCert(persistentUser);
            this.a((User)persistentUser);
            this.getHibernateTemplate().execute((HibernateCallback)new n(this, persistentUser));
            this.postDelete(UT);
        }
        catch (DeleteException deleteException) {
            throw deleteException;
        }
        catch (ObjectModelException objectModelException) {
            m.log(Level.SEVERE, null, objectModelException);
            throw new DeleteException(objectModelException.toString(), (Throwable)objectModelException);
        }
        catch (HibernateException hibernateException) {
            m.log(Level.SEVERE, hibernateException.getMessage(), hibernateException);
            throw new DeleteException(hibernateException.toString(), (Throwable)hibernateException);
        }
    }

    public void deleteAll(Goid goid) throws DeleteException {
        try {
            this.getHibernateTemplate().execute((HibernateCallback)new o(this, goid));
        }
        catch (Exception exception) {
            m.log(Level.SEVERE, exception.getMessage(), exception);
            throw new DeleteException(exception.getMessage(), (Throwable)exception);
        }
        this.postDelete(null);
    }

    @Override
    public void delete(String string) throws DeleteException {
        try {
            this.getHibernateTemplate().execute((HibernateCallback)new p(this, string));
        }
        catch (Exception exception) {
            m.log(Level.SEVERE, exception.getMessage(), exception);
            throw new DeleteException(exception.getMessage(), (Throwable)exception);
        }
        this.postDelete(null);
    }

    @Override
    public Goid save(UT UT) throws SaveException {
        String string = this.save(UT, null);
        return Goid.parseGoid((String)string);
    }

    public String save(UT UT, Set<IdentityHeader> set) throws SaveException {
        return this.save(null, UT, set);
    }

    public String save(@Nullable Goid goid, UT UT, Set<IdentityHeader> set) throws SaveException {
        PersistentUser persistentUser = this.cast((User)UT);
        persistentUser.setProviderId(this.getProviderGoid());
        try {
            String string;
            block20: {
                this.preSave(persistentUser);
                if (goid != null) {
                    try {
                        string = (PersistentUser)this.findByPrimaryKey(UT.getGoid());
                    }
                    catch (FindException findException) {
                        string = null;
                    }
                    try {
                        if (string != null) {
                            throw new DuplicateObjectException(v[25] + String.valueOf(goid) + v[4]);
                        }
                    }
                    catch (FindException findException) {
                        throw PersistentUserManagerImpl.a((Exception)((Object)findException));
                    }
                    boolean bl2 = PersistentEntityUtil.preserveId((PersistentEntity)persistentUser);
                    try {
                        if (!bl2) {
                            throw new SaveException(v[16] + persistentUser.getClass().getSimpleName());
                        }
                    }
                    catch (FindException findException) {
                        throw PersistentUserManagerImpl.a((Exception)((Object)findException));
                    }
                    persistentUser.setGoid(goid);
                }
                string = this.getHibernateTemplate().save((Object)persistentUser).toString();
                try {
                    if (goid == null || goid.toString().equals(string)) break block20;
                }
                catch (FindException findException) {
                    throw PersistentUserManagerImpl.a((Exception)((Object)findException));
                }
                String string2 = persistentUser.getClass().getSimpleName();
                String string3 = string;
                String string4 = String.valueOf(goid);
                String[] stringArray = v;
                throw new SaveException(stringArray[30] + string4 + stringArray[11] + string3 + stringArray[22] + string2);
            }
            if (set != null) {
                try {
                    PersistentGroupManager persistentGroupManager = (PersistentGroupManager)this.identityProvider.getGroupManager();
                    try {
                        if (persistentGroupManager != null) {
                            persistentGroupManager.setGroupHeaders((User)UT, set);
                        }
                    }
                    catch (FindException findException) {
                        throw PersistentUserManagerImpl.a((Exception)((Object)findException));
                    }
                }
                catch (FindException findException) {
                    m.log(Level.SEVERE, findException.getMessage(), findException);
                    throw new SaveException(findException.getMessage(), (Throwable)findException);
                }
                catch (UpdateException updateException) {
                    m.log(Level.SEVERE, updateException.getMessage(), updateException);
                    throw new SaveException(updateException.getMessage(), (Throwable)updateException);
                }
            }
            return string;
        }
        catch (DataAccessException dataAccessException) {
            m.log(Level.SEVERE, null, dataAccessException);
            throw new SaveException(dataAccessException.toString(), (Throwable)dataAccessException);
        }
    }

    @Override
    public void update(UT UT) throws UpdateException {
        this.update(UT, null);
    }

    public void update(UT UT, Set<IdentityHeader> set) throws UpdateException {
        PersistentUser persistentUser = this.cast((User)UT);
        try {
            if (!persistentUser.getProviderId().equals((Object)this.getProviderGoid())) {
                throw new UpdateException(v[18]);
            }
        }
        catch (DataAccessException dataAccessException) {
            throw PersistentUserManagerImpl.a((Exception)((Object)dataAccessException));
        }
        try {
            UT UT2 = this.findByPrimaryKey(UT.getId());
            try {
                if (UT2 == null) {
                    m.warning(v[14] + UT.getName() + v[13]);
                    throw new FindException(v[19] + UT.getName());
                }
            }
            catch (DataAccessException dataAccessException) {
                throw PersistentUserManagerImpl.a((Exception)((Object)dataAccessException));
            }
            if (UT2.getVersion() != persistentUser.getVersion()) {
                String[] stringArray = v;
                String string = stringArray[8];
                m.info(string);
                throw new StaleUpdateException(string);
            }
            try {
                this.checkUpdate(UT2, persistentUser);
                if (set != null) {
                    ((PersistentGroupManager)this.identityProvider.getGroupManager()).setGroupHeaders(UT.getId(), set);
                }
            }
            catch (DataAccessException dataAccessException) {
                throw PersistentUserManagerImpl.a((Exception)((Object)dataAccessException));
            }
            UT2.copyFrom((User)persistentUser);
            this.preUpdate(UT2);
            this.getHibernateTemplate().update(UT2);
            this.postUpdate(UT2);
        }
        catch (DataAccessException dataAccessException) {
            String[] stringArray = v;
            String string = stringArray[5] + ExceptionUtils.getMessage((Throwable)dataAccessException);
            m.log(Level.SEVERE, string, dataAccessException);
            throw new UpdateException(string, (Throwable)dataAccessException);
        }
        catch (UpdateException updateException) {
            throw updateException;
        }
        catch (ObjectModelException objectModelException) {
            throw new UpdateException(v[27] + ExceptionUtils.getMessage((Throwable)objectModelException), (Throwable)objectModelException);
        }
    }

    public synchronized void setIdentityProvider(PersistentIdentityProvider<UT, GT, UMT, GMT> persistentIdentityProvider) {
        try {
            if (this.identityProvider != null) {
                throw new IllegalStateException(v[28]);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw PersistentUserManagerImpl.a(illegalArgumentException);
        }
        this.identityProvider = persistentIdentityProvider;
    }

    @Override
    public EntityType getEntityType() {
        return EntityType.USER;
    }

    @Override
    protected IdentityHeader newHeader(UT UT) {
        return new IdentityHeader(this.getProviderGoid(), UT.getGoid(), EntityType.USER, UT.getLogin(), null, UT.getName(), UT.getVersion());
    }

    @Transactional(propagation=Propagation.SUPPORTS)
    public final IdentityHeader userToHeader(UT UT) {
        return this.newHeader(UT);
    }

    protected void initDao() throws Exception {
        try {
            super.initDao();
            if (this.q == null) {
                throw new IllegalArgumentException(v[9]);
            }
        }
        catch (Exception exception) {
            throw PersistentUserManagerImpl.a(exception);
        }
    }

    protected void preSave(UT UT) throws SaveException {
    }

    protected void checkUpdate(UT UT, UT UT2) throws ObjectModelException {
    }

    protected void preDelete(UT UT) throws DeleteException {
    }

    protected void postDelete(UT UT) throws DeleteException {
    }

    protected void preUpdate(UT UT) throws UpdateException {
    }

    protected void postUpdate(UT UT) throws UpdateException {
    }

    /*
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     */
    protected void revokeCert(UT UT) throws ObjectNotFoundException {
        try {
            if (this.p == null) return;
            try {
                this.p.revokeUserCert(UT);
                return;
            }
            catch (UpdateException updateException) {
                String[] stringArray = v;
                m.log(Level.FINE, stringArray[29] + UT.getLogin() + stringArray[17], updateException);
                return;
            }
        }
        catch (ObjectNotFoundException objectNotFoundException) {
            throw PersistentUserManagerImpl.a((Exception)((Object)objectNotFoundException));
        }
    }

    private void a(User user) {
        try {
            this.q.delete(user.getProviderId(), user.getLogin());
        }
        catch (DeleteException deleteException) {
            String[] stringArray = v;
            m.log(Level.FINE, stringArray[2] + user.getLogin() + stringArray[12]);
        }
    }

    @Override
    protected Collection<Map<String, Object>> getUniqueConstraints(UT UT) {
        HashMap<String, Object> hashMap = new HashMap<String, Object>();
        String[] stringArray = v;
        hashMap.put(stringArray[21], UT.getProviderId());
        hashMap.put(stringArray[23], UT.getName());
        return Arrays.asList(hashMap);
    }

    @Override
    protected EntityManager.UniqueType getUniqueType() {
        return EntityManager.UniqueType.OTHER;
    }

    protected abstract String getNameFieldname();

    static /* synthetic */ Predicate access$000(PersistentUserManagerImpl persistentUserManagerImpl, Predicate predicate, CriteriaBuilder criteriaBuilder, Root root) {
        return persistentUserManagerImpl.addFindAllPredicate(predicate, criteriaBuilder, root);
    }

    static /* synthetic */ PersistentEntity access$100(PersistentUserManagerImpl persistentUserManagerImpl, TypedQuery typedQuery) {
        return persistentUserManagerImpl.getSingleResult(typedQuery);
    }

    static /* synthetic */ Predicate access$200(PersistentUserManagerImpl persistentUserManagerImpl, Predicate predicate, CriteriaBuilder criteriaBuilder, Root root) {
        return persistentUserManagerImpl.addFindAllPredicate(predicate, criteriaBuilder, root);
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[31];
                var3_1 = 0;
                var2_2 = "(j&i-HQ4mB}-KT\u0004mYj=\u0006V\u0017x~j \u0006B\u001f`z/*SY\u001a4s}#\b\u0012L+SY\u00124|`0\u0006Q\u0013xw{!\u0006\u0012*i-HQ4mB}-KT\u0004mYj=\u0006V\u0017x~j \u0006B\u001f`z/-HC\u0017x{kdGG\u001145\n(dVG\u0013gwa0\b\u0015J6TZ\u00044g\u007f GA\u001fzu/1UP\u0004.2\u0005Z7CGV\u001aJ6TZ\u00044eg-JPVgwn6E]\u001fzu/\"IGV\u0010y!TF\u001f{|/)OF\u001bufl,\"[,C\u0015:{u`*\u0006|\u0018r}/\tG[\u0017sw}dOFVfw~1OG\u0013p\u0013I\u0016ixVaaj6\u0006|84QC\u0005ufV\u0006/1UP\u00124\u0014(dJZ\u0011{|/-HS\u00194`j'IG\u0012:\u000e/-U\u0015\u0018{f/\"I@\u0018p<\t[,C\u0015\u0003gw}d\u0018/\u0013np$Q2z7CGXs}f \u0006\bV.u`-B[L%H[\u0019`2|%PPVu|/!HA\u001f`k/3OA\u001e4s/7VP\u0015}tf'\u0006|2:2X%U\u0015\u0003zsm(C\u0015\u0002{2\u007f6CF\u0013fdjdR]\u00134wa0OA\u000f4[Kd@Z\u00044wa0OA\u000f.2'/4CG\u001eub|dR]\u001fg2z7CGV|skdHZVqjf7R\\\u0018s2l!TA,L%H\u0012\u00024g\u007f GA\u00134g|!TFVr``)\u0006TVp{i\"CG\u0013zf/4TZ\u0000}vj6'L+SY\u0012z5{d@\\\u0018p2`6OR\u001fzscdPP\u0004g{`*\u0006Z\u00104g|!T\u0015\u000b/-HF\u0002u|l!U\u001b\n\u007f6IC\u001fpw}\rB\n!dc[\u0002}fv~\u0006\u0004a%KP\u0013I\u0016ixVaaj6\u0006|84QC\u0005ufV.L%H[\u0019`2|%PPV`zf7\u0006@\u0005q`!dcM\u001fgff*A\u0015\u0003gw}dQ\\\u0002|2f \u0006\u0012$/\u0013np$Q2z7CGXd``2OQ\u0013f[kd\u001b\u0015Ld``2OQ\u0013f[k\u0015J6TZ\u00044g\u007f GA\u001fzu/1UP\u0004.2\u001ff C[\u0002}fv\u0014TZ\u0000}vj6\u0006\\\u00054sc6CT\u0012m2|!R";
                var4_3 = "(j&i-HQ4mB}-KT\u0004mYj=\u0006V\u0017x~j \u0006B\u001f`z/*SY\u001a4s}#\b\u0012L+SY\u00124|`0\u0006Q\u0013xw{!\u0006\u0012*i-HQ4mB}-KT\u0004mYj=\u0006V\u0017x~j \u0006B\u001f`z/-HC\u0017x{kdGG\u001145\n(dVG\u0013gwa0\b\u0015J6TZ\u00044g\u007f GA\u001fzu/1UP\u0004.2\u0005Z7CGV\u001aJ6TZ\u00044eg-JPVgwn6E]\u001fzu/\"IGV\u0010y!TF\u001f{|/)OF\u001bufl,\"[,C\u0015:{u`*\u0006|\u0018r}/\tG[\u0017sw}dOFVfw~1OG\u0013p\u0013I\u0016ixVaaj6\u0006|84QC\u0005ufV\u0006/1UP\u00124\u0014(dJZ\u0011{|/-HS\u00194`j'IG\u0012:\u000e/-U\u0015\u0018{f/\"I@\u0018p<\t[,C\u0015\u0003gw}d\u0018/\u0013np$Q2z7CGXs}f \u0006\bV.u`-B[L%H[\u0019`2|%PPVu|/!HA\u001f`k/3OA\u001e4s/7VP\u0015}tf'\u0006|2:2X%U\u0015\u0003zsm(C\u0015\u0002{2\u007f6CF\u0013fdjdR]\u00134wa0OA\u000f4[Kd@Z\u00044wa0OA\u000f.2'/4CG\u001eub|dR]\u001fg2z7CGV|skdHZVqjf7R\\\u0018s2l!TA,L%H\u0012\u00024g\u007f GA\u00134g|!TFVr``)\u0006TVp{i\"CG\u0013zf/4TZ\u0000}vj6'L+SY\u0012z5{d@\\\u0018p2`6OR\u001fzscdPP\u0004g{`*\u0006Z\u00104g|!T\u0015\u000b/-HF\u0002u|l!U\u001b\n\u007f6IC\u001fpw}\rB\n!dc[\u0002}fv~\u0006\u0004a%KP\u0013I\u0016ixVaaj6\u0006|84QC\u0005ufV.L%H[\u0019`2|%PPV`zf7\u0006@\u0005q`!dcM\u001fgff*A\u0015\u0003gw}dQ\\\u0002|2f \u0006\u0012$/\u0013np$Q2z7CGXd``2OQ\u0013f[kd\u001b\u0015Ld``2OQ\u0013f[k\u0015J6TZ\u00044g\u007f GA\u001fzu/1UP\u0004.2\u001ff C[\u0002}fv\u0014TZ\u0000}vj6\u0006\\\u00054sc6CT\u0012m2|!R".length();
                var1_4 = 2;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = PersistentUserManagerImpl.b(v0, PersistentUserManagerImpl.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\u0011V.$oI\u0001\u001dM{:n\u001f\u0000\u0019\\{+n\u001b\u001bR_4:+\u001c\u001c\u0017K{]7K)'yI\u001c\u0013O2&lI\n\u001cM2<rI\u0018\u001bM3hjI\u001c\u0002\\8!m\u0000\fRp\u001ff+=\u0007\u0017\u0019()}\fO\u001f\\/ d\rO\u0001X--oI\u0018\u001bM3hjI\u000b\u001b_=-y\f\u0001\u0006\u00192,%I*\nI>+\u007f\f\u000bH\u0019";
                    var4_3 = "\u0011V.$oI\u0001\u001dM{:n\u001f\u0000\u0019\\{+n\u001b\u001bR_4:+\u001c\u001c\u0017K{]7K)'yI\u001c\u0013O2&lI\n\u001cM2<rI\u0018\u001bM3hjI\u001c\u0002\\8!m\u0000\fRp\u001ff+=\u0007\u0017\u0019()}\fO\u001f\\/ d\rO\u0001X--oI\u0018\u001bM3hjI\u000b\u001b_=-y\f\u0001\u0006\u00192,%I*\nI>+\u007f\f\u000bH\u0019".length();
                    var1_4 = 31;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 70;
                        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++] = PersistentUserManagerImpl.b(v0, PersistentUserManagerImpl.a(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;
            }
        }
        PersistentUserManagerImpl.v = var5;
        PersistentUserManagerImpl.m = Logger.getLogger(PersistentUserManagerImpl.class.getName());
    }

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

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

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String b(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 -> 52;
                    case 1 -> 127;
                    case 2 -> 29;
                    case 3 -> 14;
                    case 4 -> 77;
                    case 5 -> 47;
                    default -> 41;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

