/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.identity.BadCredentialsException
 *  com.l7tech.identity.ldap.LdapUrlBasedIdentityProviderConfig
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.util.ConfigFactory
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 */
package com.l7tech.server.identity.ldap;

import com.l7tech.identity.BadCredentialsException;
import com.l7tech.identity.ldap.LdapUrlBasedIdentityProviderConfig;
import com.l7tech.objectmodel.Goid;
import com.l7tech.server.identity.ldap.LdapRuntimeConfig;
import com.l7tech.server.identity.ldap.LdapSslCustomizerSupport;
import com.l7tech.server.identity.ldap.LdapUrlProvider;
import com.l7tech.server.identity.ldap.UnsynchronizedNamingProperties;
import com.l7tech.util.ConfigFactory;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Hashtable;
import java.util.Map;
import java.util.Properties;
import java.util.logging.Logger;
import java.util.regex.Pattern;
import javax.naming.CompositeName;
import javax.naming.InvalidNameException;
import javax.naming.Name;
import javax.naming.NamingException;
import javax.naming.PartialResultException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public final class LdapUtils {
    public static final Pattern LDAP_URL_QUERY_PATTERN;
    public static final boolean LDAP_USES_UNSYNC_NAMING;
    public static final boolean LDAP_PARSE_NAMES;
    public static final String LDAP_ENV_PREFIX;
    public static final Map<String, String> LDAP_ENV_OVERRIDES;
    public static final String LDAPS_SCHEME;
    public static final String ENV_PROP_LDAP_VERSION;
    public static final String ENV_PROP_LDAP_CONNECT_POOL;
    public static final String ENV_PROP_LDAP_CONNECT_TIMEOUT;
    public static final String ENV_PROP_LDAP_READ_TIMEOUT;
    public static final String ENV_PROP_LDAP_FACTORY_SOCKET;
    public static final String ENV_VALUE_INITIAL_CONTEXT_FACTORY;
    public static final String ENV_VALUE_LDAP_VERSION = "3";
    public static final String ENV_VALUE_REFERRAL;
    public static final String ENV_VALUE_SECURITY_PROTOCOL;
    private static final int a;
    private static final String b;
    static final String c;
    static final String d;
    static final String e;
    private static final Logger f;
    private static final String[] g;

    private LdapUtils() {
    }

    public static Name name(String string) throws InvalidNameException {
        try {
            if (LDAP_PARSE_NAMES) {
                return new CompositeName(string);
            }
        }
        catch (InvalidNameException invalidNameException) {
            throw LdapUtils.a(invalidNameException);
        }
        return new CompositeName().add(string);
    }

    /*
     * Loose catch block
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    static boolean a(Attribute attribute, String string) {
        block14: {
            if (string == null) return true;
            try {
                if (!"".equals(string)) break block14;
                return true;
                catch (NamingException namingException) {
                    throw LdapUtils.a(namingException);
                }
            }
            catch (NamingException namingException) {
                throw LdapUtils.a(namingException);
            }
        }
        try {
            if (attribute == null) {
                return false;
            }
        }
        catch (NamingException namingException) {
            throw LdapUtils.a(namingException);
        }
        boolean bl2 = ConfigFactory.getBooleanProperty((String)g[17], (boolean)true);
        for (int i2 = 0; i2 < attribute.size(); ++i2) {
            try {
                Object object;
                block15: {
                    object = attribute.get(i2);
                    if (object == null) continue;
                    try {
                        if (!bl2) break block15;
                        if (!string.equalsIgnoreCase(object.toString())) continue;
                        return true;
                    }
                    catch (NamingException namingException) {
                        throw LdapUtils.a(namingException);
                    }
                }
                try {
                    if (!string.equals(object.toString())) continue;
                    return true;
                }
                catch (SecurityException securityException) {
                    throw LdapUtils.a(securityException);
                }
            }
            catch (NamingException namingException) {
                // empty catch block
            }
        }
        return false;
    }

    static Object a(Attributes attributes, String string) throws NamingException {
        block4: {
            Attribute attribute = attributes.get(string);
            try {
                try {
                    if (attribute == null || attribute.size() <= 0) break block4;
                }
                catch (NamingException namingException) {
                    throw LdapUtils.a(namingException);
                }
                return attribute.get(0);
            }
            catch (NamingException namingException) {
                throw LdapUtils.a(namingException);
            }
        }
        return null;
    }

    /*
     * Exception decompiling
     */
    public static String filterEscape(String 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: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");
    }

    /*
     * Exception decompiling
     */
    public static String filterMatchEscape(String 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: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");
    }

    public static Properties newEnvironment() {
        try {
            if (LDAP_USES_UNSYNC_NAMING) {
                return new UnsynchronizedNamingProperties();
            }
        }
        catch (SecurityException securityException) {
            throw LdapUtils.a(securityException);
        }
        return new Properties();
    }

    public static void lock(Hashtable hashtable) {
        if (hashtable instanceof UnsynchronizedNamingProperties) {
            UnsynchronizedNamingProperties unsynchronizedNamingProperties = (UnsynchronizedNamingProperties)hashtable;
            unsynchronizedNamingProperties.lock();
        }
    }

    public static DirContext getLdapContext(String string, String string2, String string3, long l2, long l3) throws NamingException {
        return LdapUtils.getLdapContext(string, true, null, null, string2, string3, l2, l3, null, true);
    }

    /*
     * Loose catch block
     */
    public static DirContext getLdapContext(String string, boolean bl2, @Nullable Goid goid, @Nullable String string2, String string3, String string4, long l2, long l3, @Nullable String string5, boolean bl3) throws NamingException {
        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
        try {
            Properties properties;
            block16: {
                Thread.currentThread().setContextClassLoader(LdapSslCustomizerSupport.getSSLSocketFactoryClassLoader());
                String string6 = new URI(string).getScheme();
                properties = LdapUtils.newEnvironment();
                try {
                    ((Hashtable)properties).put(g[55], ENV_VALUE_LDAP_VERSION);
                    ((Hashtable)properties).put(g[7], g[35]);
                    ((Hashtable)properties).put(g[15], string);
                    if (bl3) {
                        ((Hashtable)properties).put(g[63], g[57]);
                    }
                }
                catch (URISyntaxException uRISyntaxException) {
                    throw LdapUtils.a(uRISyntaxException);
                }
                String[] stringArray = g;
                ((Hashtable)properties).put(stringArray[40], Long.toString(l2));
                ((Hashtable)properties).put(stringArray[9], Long.toString(l3));
                if (null == string5) {
                    string5 = ConfigFactory.getProperty((String)stringArray[20], (String)stringArray[0]);
                }
                try {
                    ((Hashtable)properties).put(g[29], string5);
                    if (g[36].equalsIgnoreCase(string6)) {
                        ((Hashtable)properties).put(g[45], LdapSslCustomizerSupport.getSSLSocketFactoryClassname(bl2, goid, string2));
                        ((Hashtable)properties).put(g[16], g[34]);
                    }
                }
                catch (URISyntaxException uRISyntaxException) {
                    throw LdapUtils.a(uRISyntaxException);
                }
                if (string3 == null) break block16;
                try {
                    block17: {
                        if (string3.length() <= 0) break block16;
                        break block17;
                        catch (URISyntaxException uRISyntaxException) {
                            throw LdapUtils.a(uRISyntaxException);
                        }
                    }
                    ((Hashtable)properties).put(g[59], g[42]);
                    ((Hashtable)properties).put(g[22], string3);
                    ((Hashtable)properties).put(g[61], string4);
                }
                catch (URISyntaxException uRISyntaxException) {
                    throw LdapUtils.a(uRISyntaxException);
                }
            }
            ((Hashtable)properties).putAll(LDAP_ENV_OVERRIDES);
            LdapUtils.lock(properties);
            InitialDirContext initialDirContext = new InitialDirContext(properties);
            return initialDirContext;
        }
        catch (URISyntaxException uRISyntaxException) {
            NamingException namingException = new NamingException(g[27] + string);
            namingException.setRootCause(uRISyntaxException);
            throw namingException;
        }
        finally {
            Thread.currentThread().setContextClassLoader(classLoader);
        }
    }

    /*
     * Exception decompiling
     */
    public static boolean authenticateBasic(LdapUrlProvider var0, LdapUrlBasedIdentityProviderConfig var1_1, LdapRuntimeConfig var2_2, Logger var3_3, String var4_4, String var5_5) throws BadCredentialsException {
        /*
         * 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 [8[CATCHBLOCK]], but top level block is 4[TRYBLOCK]
         *     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");
    }

    public static void handlePartialResultException(@NotNull NamingException namingException) throws NamingException {
        block7: {
            try {
                if (namingException == null) {
                    LdapUtils.a(0);
                }
            }
            catch (NamingException namingException2) {
                throw LdapUtils.a(namingException2);
            }
            try {
                try {
                    if (!(namingException instanceof PartialResultException) || !LdapUtils.isIgnorePartialResultException()) break block7;
                }
                catch (NamingException namingException3) {
                    throw LdapUtils.a(namingException3);
                }
                f.fine(g[13]);
                return;
            }
            catch (NamingException namingException4) {
                throw LdapUtils.a(namingException4);
            }
        }
        throw namingException;
    }

    public static boolean isIgnorePartialResultException() {
        return ConfigFactory.getBooleanProperty((String)g[5], (boolean)true);
    }

    /*
     * Exception decompiling
     */
    private static Map<String, String> a() {
        /*
         * 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: Started 2 blocks at once
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.getStartingBlocks(Op04StructuredStatement.java:412)
         *     at org.benf.cfr.reader.bytecode.analysis.opgraph.Op04StructuredStatement.buildNestedBlocks(Op04StructuredStatement.java:487)
         *     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");
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[66];
                var3_1 = 0;
                var2_2 = "\u0015_Z5Fv\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007q\u001d\u001c\\!\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007u\u001b\u001eUY,]!4UX<[`\u001eS^W4@o\u0015SVW0Et\u0000\u0016\u0010P6[!\u0007\u0000UDc\t)\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001e[8QS\u0013\u001dWS\u0010]d\u0000\u0012D_6Gr \u001fTW)`f\u001c\u001cBS\tHs\u0006\u001aQZ\u000bLr\u0007\u001fDs!Jd\u0002\u0007YY7\u0003/\u0005U\u001b\u0019Q@8\u0007o\u0013\u001eYX>\u0007g\u0013\u0010DY+P/\u001b\u001dYB0Hm#\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eC7Zx\u001c\u0010~W4@o\u0015\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFw[d\u0013\u0017\u001eB0Dd\u001d\u0006D!\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eF8[r\u0017=Q[<Z\u001b\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eS7_/\u0003/\u0002\u000e3:WX6[h\u001c\u0014\u0010f8[u\u001b\u0012\\d<Zt\u001e\u0007uN:Lq\u0006\u001a_Xy\u0001h\u0015\u001d_D<M!\u0000\u0016VS+[`\u001eL\u0019)\u0010_[vE6\u0006\u0016S^vZd\u0000\u0005UDv@e\u0017\u001dD_-P.\u001e\u0017QFvee\u0013\u0003eB0Er\u0018\u0019Q@8\u0007o\u0013\u001eYX>\u0007q\u0000\u001cF_=Ls\\\u0006BZ\u001d\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0003BY-Fb\u001d\u001f\u001d\u001fTW)j`\u0001\u0016yX*Lo\u0001\u001aD_/LB\u001d\u001e@W+@r\u001d\u001d\u0003/\u0005U\u0006&CS+\u0013!\f\u001fTW){d\u0014\u0016BD8E\u0005\u001fTW)Z\u001e\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0003B_7Jh\u0002\u0012\\\u001b\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eS7_/\u0003\u0000CZ\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFw[d\u0013\u0017\u001eB0Dd\u001d\u0006D\u001f\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018?Hb\u0006\u001cBOwZn\u0011\u0018UB\u00120QX7FuR\u0003QD*L!\u0007\u0001\\\fy\u0003/\u0002\u000f\u0014\u0019Q@8\u0007o\u0013\u001eYX>\u0007s\u0017\u0015UD+Hm \u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwee\u0013\u0003sB!o`\u0011\u0007_D (SQC-Ad\u001c\u0007YU8]d\u0016SCC:Jd\u0001\u0000VC5ExR\u001a^\u0016)[n\u0004\u001aTS+\t\u0003/\u0002W8SBS?\\r\u0017\u0017\u0010W,]i\u0017\u001dD_:Hu\u001b\u001c^\u0016;Lb\u0013\u0006CSyLl\u0002\u0007I\u0016)Hr\u0001\u0004_D=\tq\u0000\u001cF_=Le\\\u0003\u0000CZ \u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwee\u0013\u0003sB!o`\u0011\u0007_D \u0005\u001fTW)Z$?_W=LeR?tw\t\td\u001c\u0005YD6Gl\u0017\u001dD\u00166_d\u0000\u0001YR<Z!HS\u001d&CS+\tg\u0013\u001a\\S=\tu\u001dSQC-Ad\u001c\u0007YU8]dHS\rSYXyYs\u001d\u0005YR<[!!\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007u\u001b\u001eUY,]\u0007HBW7NdO\u0006\u0000Y[)Ed\rSYXyYs\u001d\u0005YR<[!+0_C5M!\u001c\u001cD\u0016<Zu\u0013\u0011\\_*A!\u0011\u001c^B<QuR\u0006C_7N!>7qfy|S>S\u001f\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018?Hb\u0006\u001cBOwZn\u0011\u0018UB\u0003/\u0002\u000f\u0003/\u0000\u0006:#UD4@r\u0001\u001a_XyMd\u001c\u001aURy^i\u0017\u001d\u0010Z6He\u001b\u001dW\u0016\u0015m@\"SUX/@s\u001d\u001d]S7]!\u001d\u0005UD+@e\u0017\u0000\u001e\u0016\u0006CS+jd\u0000\u0007YP0J`\u0006\u0016\u000bT0G`\u0000\n\u0012\u0006CS+hb\u0011\u001cEX-jn\u001c\u0007BY540_C5M!\u001c\u001cD\u0016<Zu\u0013\u0011\\_*A!\u0011\u001c^B<QuR\u001c^\u00168GxR\u001cV\u0016-AdR\u001fTW)\tt\u0000\u001fC\u0018\u0006\u0015_Z5Fv\u0006&CS+\u0013!\u000e\u0012SU6\\o\u00066HF0[d\u0001\u0018\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018/Ls\u0001\u001a_X\u0003/\u0000\u0006\u0004\u0007BC<\u0003/\u0002\u000e#\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0012EB1Lo\u0006\u001aSW-@n\u001c\u001c\u001bQX=Ed\"\u0012BB0Hm \u0016CC5]D\n\u0010UF-@n\u001c \u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0010BS=Lo\u0006\u001aQZ*\u000e-l\tqr_.Lm\u001dp\u0007+V\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007q\u001d\u001c\\";
                var4_3 = "\u0015_Z5Fv\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007q\u001d\u001c\\!\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007u\u001b\u001eUY,]!4UX<[`\u001eS^W4@o\u0015SVW0Et\u0000\u0016\u0010P6[!\u0007\u0000UDc\t)\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001e[8QS\u0013\u001dWS\u0010]d\u0000\u0012D_6Gr \u001fTW)`f\u001c\u001cBS\tHs\u0006\u001aQZ\u000bLr\u0007\u001fDs!Jd\u0002\u0007YY7\u0003/\u0005U\u001b\u0019Q@8\u0007o\u0013\u001eYX>\u0007g\u0013\u0010DY+P/\u001b\u001dYB0Hm#\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eC7Zx\u001c\u0010~W4@o\u0015\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFw[d\u0013\u0017\u001eB0Dd\u001d\u0006D!\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eF8[r\u0017=Q[<Z\u001b\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eS7_/\u0003/\u0002\u000e3:WX6[h\u001c\u0014\u0010f8[u\u001b\u0012\\d<Zt\u001e\u0007uN:Lq\u0006\u001a_Xy\u0001h\u0015\u001d_D<M!\u0000\u0016VS+[`\u001eL\u0019)\u0010_[vE6\u0006\u0016S^vZd\u0000\u0005UDv@e\u0017\u001dD_-P.\u001e\u0017QFvee\u0013\u0003eB0Er\u0018\u0019Q@8\u0007o\u0013\u001eYX>\u0007q\u0000\u001cF_=Ls\\\u0006BZ\u001d\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0003BY-Fb\u001d\u001f\u001d\u001fTW)j`\u0001\u0016yX*Lo\u0001\u001aD_/LB\u001d\u001e@W+@r\u001d\u001d\u0003/\u0005U\u0006&CS+\u0013!\f\u001fTW){d\u0014\u0016BD8E\u0005\u001fTW)Z\u001e\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0003B_7Jh\u0002\u0012\\\u001b\u0010_[wE6\u0006\u0016S^wZd\u0000\u0005UDwEe\u0013\u0003\u001eS7_/\u0003\u0000CZ\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFw[d\u0013\u0017\u001eB0Dd\u001d\u0006D\u001f\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018?Hb\u0006\u001cBOwZn\u0011\u0018UB\u00120QX7FuR\u0003QD*L!\u0007\u0001\\\fy\u0003/\u0002\u000f\u0014\u0019Q@8\u0007o\u0013\u001eYX>\u0007s\u0017\u0015UD+Hm \u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwee\u0013\u0003sB!o`\u0011\u0007_D (SQC-Ad\u001c\u0007YU8]d\u0016SCC:Jd\u0001\u0000VC5ExR\u001a^\u0016)[n\u0004\u001aTS+\t\u0003/\u0002W8SBS?\\r\u0017\u0017\u0010W,]i\u0017\u001dD_:Hu\u001b\u001c^\u0016;Lb\u0013\u0006CSyLl\u0002\u0007I\u0016)Hr\u0001\u0004_D=\tq\u0000\u001cF_=Le\\\u0003\u0000CZ \u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwee\u0013\u0003sB!o`\u0011\u0007_D \u0005\u001fTW)Z$?_W=LeR?tw\t\td\u001c\u0005YD6Gl\u0017\u001dD\u00166_d\u0000\u0001YR<Z!HS\u001d&CS+\tg\u0013\u001a\\S=\tu\u001dSQC-Ad\u001c\u0007YU8]dHS\rSYXyYs\u001d\u0005YR<[!!\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007u\u001b\u001eUY,]\u0007HBW7NdO\u0006\u0000Y[)Ed\rSYXyYs\u001d\u0005YR<[!+0_C5M!\u001c\u001cD\u0016<Zu\u0013\u0011\\_*A!\u0011\u001c^B<QuR\u0006C_7N!>7qfy|S>S\u001f\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018?Hb\u0006\u001cBOwZn\u0011\u0018UB\u0003/\u0002\u000f\u0003/\u0000\u0006:#UD4@r\u0001\u001a_XyMd\u001c\u001aURy^i\u0017\u001d\u0010Z6He\u001b\u001dW\u0016\u0015m@\"SUX/@s\u001d\u001d]S7]!\u001d\u0005UD+@e\u0017\u0000\u001e\u0016\u0006CS+jd\u0000\u0007YP0J`\u0006\u0016\u000bT0G`\u0000\n\u0012\u0006CS+hb\u0011\u001cEX-jn\u001c\u0007BY540_C5M!\u001c\u001cD\u0016<Zu\u0013\u0011\\_*A!\u0011\u001c^B<QuR\u001c^\u00168GxR\u001cV\u0016-AdR\u001fTW)\tt\u0000\u001fC\u0018\u0006\u0015_Z5Fv\u0006&CS+\u0013!\u000e\u0012SU6\\o\u00066HF0[d\u0001\u0018\u0019Q@8\u0007o\u0013\u001eYX>\u0007m\u0016\u0012@\u0018/Ls\u0001\u001a_X\u0003/\u0000\u0006\u0004\u0007BC<\u0003/\u0002\u000e#\u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0012EB1Lo\u0006\u001aSW-@n\u001c\u001c\u001bQX=Ed\"\u0012BB0Hm \u0016CC5]D\n\u0010UF-@n\u001c \u0019Q@8\u0007o\u0013\u001eYX>\u0007r\u0017\u0010ED0]x\\\u0010BS=Lo\u0006\u001aQZ*\u000e-l\tqr_.Lm\u001dp\u0007+V\u001e\u0010_[wZt\u001c]ZX=@/\u001e\u0017QFwJn\u001c\u001dUU-\u0007q\u001d\u001c\\".length();
                var1_4 = 6;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = LdapUtils.a(v0, LdapUtils.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\u0019iz\u0007oO7,;{\u001dp\n\u0019\u0016ti<wF5xk|\u0000cG<,~oR%\u000f*\u007f;r\u0014\"\u000f*v>nRo_*,;s\u001dv\n;=;s\u0007nF\u00182zk\u0013,D85rs\u0015,F=9k3\u0004gX*1ts";
                    var4_3 = "\u0019iz\u0007oO7,;{\u001dp\n\u0019\u0016ti<wF5xk|\u0000cG<,~oR%\u000f*\u007f;r\u0014\"\u000f*v>nRo_*,;s\u001dv\n;=;s\u0007nF\u00182zk\u0013,D85rs\u0015,F=9k3\u0004gX*1ts".length();
                    var1_4 = 62;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 28;
                        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++] = LdapUtils.a(v0, LdapUtils.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;
            }
        }
        LdapUtils.g = var5;
        LdapUtils.ENV_PROP_LDAP_VERSION = LdapUtils.g[65];
        LdapUtils.ENV_PROP_LDAP_FACTORY_SOCKET = LdapUtils.g[26];
        LdapUtils.ENV_PROP_LDAP_CONNECT_TIMEOUT = LdapUtils.g[2];
        LdapUtils.d = LdapUtils.g[54];
        LdapUtils.e = LdapUtils.g[49];
        LdapUtils.LDAP_ENV_PREFIX = LdapUtils.g[11];
        LdapUtils.ENV_VALUE_INITIAL_CONTEXT_FACTORY = LdapUtils.g[30];
        LdapUtils.c = LdapUtils.g[50];
        LdapUtils.LDAPS_SCHEME = LdapUtils.g[21];
        LdapUtils.ENV_VALUE_SECURITY_PROTOCOL = LdapUtils.g[24];
        LdapUtils.ENV_PROP_LDAP_READ_TIMEOUT = LdapUtils.g[25];
        LdapUtils.ENV_VALUE_REFERRAL = LdapUtils.g[52];
        LdapUtils.b = LdapUtils.g[41];
        LdapUtils.ENV_PROP_LDAP_CONNECT_POOL = LdapUtils.g[1];
        var0_6 = LdapUtils.g;
        LdapUtils.LDAP_URL_QUERY_PATTERN = Pattern.compile(var0_6[62]);
        LdapUtils.LDAP_USES_UNSYNC_NAMING = ConfigFactory.getBooleanProperty((String)var0_6[8], (boolean)false);
        LdapUtils.LDAP_PARSE_NAMES = ConfigFactory.getBooleanProperty((String)var0_6[10], (boolean)false);
        LdapUtils.a = ConfigFactory.getIntProperty((String)var0_6[4], (int)1000);
        LdapUtils.f = Logger.getLogger(LdapUtils.class.getName());
        LdapUtils.LDAP_ENV_OVERRIDES = LdapUtils.a();
    }

    private static /* synthetic */ void a(int n2) {
        String[] stringArray = g;
        throw new IllegalArgumentException(String.format(stringArray[64], "e", stringArray[14], stringArray[60]));
    }

    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] ^ 0x45);
        }
        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 -> 68;
                    case 1 -> 7;
                    case 2 -> 1;
                    case 3 -> 110;
                    case 4 -> 30;
                    case 5 -> 54;
                    default -> 69;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

