/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.XmlUtil
 *  com.l7tech.common.protocol.SecureSpanConstants
 *  com.l7tech.common.protocol.SecureSpanConstants$HttpQueryParameters
 *  com.l7tech.gateway.common.LicenseException
 *  com.l7tech.gateway.common.audit.AuditFactory
 *  com.l7tech.gateway.common.service.PublishedService
 *  com.l7tech.gateway.common.service.ServiceDocument
 *  com.l7tech.gateway.common.transport.SsgConnector$Endpoint
 *  com.l7tech.identity.BadCredentialsException
 *  com.l7tech.identity.IssuedCertNotPresentedException
 *  com.l7tech.identity.MissingCredentialsException
 *  com.l7tech.identity.User
 *  com.l7tech.objectmodel.FindException
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.policy.Policy
 *  com.l7tech.policy.PolicyPathBuilder
 *  com.l7tech.policy.PolicyPathBuilderFactory
 *  com.l7tech.policy.assertion.Assertion
 *  com.l7tech.policy.assertion.CustomAssertionHolder
 *  com.l7tech.policy.assertion.PolicyAssertionException
 *  com.l7tech.policy.assertion.SslAssertion
 *  com.l7tech.policy.assertion.WsspAssertion
 *  com.l7tech.policy.assertion.composite.CompositeAssertion
 *  com.l7tech.policy.assertion.identity.IdentityAssertion
 *  com.l7tech.policy.assertion.xmlsec.WssVersionAssertion
 *  com.l7tech.policy.wsp.WspReader
 *  com.l7tech.policy.wsp.WspWriter
 *  com.l7tech.policy.wssp.WsspWriter
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.Functions
 *  com.l7tech.util.Functions$Unary
 *  com.l7tech.util.Functions$UnaryVoid
 *  com.l7tech.util.InetAddressUtil
 *  com.l7tech.util.Pair
 *  com.l7tech.util.SoapConstants
 *  com.l7tech.wsdl.WsdlUtil
 *  jakarta.servlet.ServletConfig
 *  jakarta.servlet.ServletContext
 *  jakarta.servlet.ServletException
 *  jakarta.servlet.ServletOutputStream
 *  jakarta.servlet.http.HttpServletRequest
 *  jakarta.servlet.http.HttpServletResponse
 *  org.springframework.web.context.WebApplicationContext
 *  org.springframework.web.context.support.WebApplicationContextUtils
 */
package com.l7tech.server;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.common.protocol.SecureSpanConstants;
import com.l7tech.gateway.common.LicenseException;
import com.l7tech.gateway.common.audit.AuditFactory;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.gateway.common.service.ServiceDocument;
import com.l7tech.gateway.common.transport.SsgConnector;
import com.l7tech.identity.BadCredentialsException;
import com.l7tech.identity.IssuedCertNotPresentedException;
import com.l7tech.identity.MissingCredentialsException;
import com.l7tech.identity.User;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.policy.Policy;
import com.l7tech.policy.PolicyPathBuilder;
import com.l7tech.policy.PolicyPathBuilderFactory;
import com.l7tech.policy.assertion.Assertion;
import com.l7tech.policy.assertion.CustomAssertionHolder;
import com.l7tech.policy.assertion.PolicyAssertionException;
import com.l7tech.policy.assertion.SslAssertion;
import com.l7tech.policy.assertion.WsspAssertion;
import com.l7tech.policy.assertion.composite.CompositeAssertion;
import com.l7tech.policy.assertion.identity.IdentityAssertion;
import com.l7tech.policy.assertion.xmlsec.WssVersionAssertion;
import com.l7tech.policy.wsp.WspReader;
import com.l7tech.policy.wsp.WspWriter;
import com.l7tech.policy.wssp.WsspWriter;
import com.l7tech.server.AuthenticatableHttpServlet;
import com.l7tech.server.bb;
import com.l7tech.server.bc;
import com.l7tech.server.bd;
import com.l7tech.server.be;
import com.l7tech.server.bf;
import com.l7tech.server.identity.AuthenticationResult;
import com.l7tech.server.policy.filter.FilterManager;
import com.l7tech.server.policy.filter.FilteringException;
import com.l7tech.server.policy.filter.IdentityRule;
import com.l7tech.server.service.ServiceDocumentManager;
import com.l7tech.server.service.resolution.ServiceResolutionException;
import com.l7tech.server.service.resolution.SoapActionResolver;
import com.l7tech.server.service.resolution.UrnResolver;
import com.l7tech.server.transport.ListenerException;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.Functions;
import com.l7tech.util.InetAddressUtil;
import com.l7tech.util.Pair;
import com.l7tech.util.SoapConstants;
import com.l7tech.wsdl.WsdlUtil;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.io.StringReader;
import java.net.InetAddress;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.logging.Level;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

public class WsdlProxyServlet
extends AuthenticatableHttpServlet {
    private static final String PARAM_ANONYMOUS;
    private static final String PROPERTY_WSSP_ATTACH;
    private static final String PROPERTY_CLEARTEXT;
    private static final String PROPERTY_WSDL_IMPORT_PROXY;
    private FilterManager wsspFilterManager;
    private FilterManager clientPolicyFilterManager;
    private SoapActionResolver sactionResolver;
    private UrnResolver nsResolver;
    private ServiceDocumentManager serviceDocumentManager;
    private PolicyPathBuilder policyPathBuilder;
    static final long serialVersionUID = -8663703807062391208L;
    private static final String[] b;

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        super.init(servletConfig);
        WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext((ServletContext)this.getServletContext());
        String[] stringArray = b;
        this.clientPolicyFilterManager = (FilterManager)webApplicationContext.getBean(stringArray[37], FilterManager.class);
        this.wsspFilterManager = (FilterManager)webApplicationContext.getBean(stringArray[60], FilterManager.class);
        this.serviceDocumentManager = (ServiceDocumentManager)webApplicationContext.getBean(stringArray[59], ServiceDocumentManager.class);
        AuditFactory auditFactory = (AuditFactory)webApplicationContext.getBean(stringArray[31], AuditFactory.class);
        PolicyPathBuilderFactory policyPathBuilderFactory = (PolicyPathBuilderFactory)webApplicationContext.getBean(stringArray[77], PolicyPathBuilderFactory.class);
        this.policyPathBuilder = policyPathBuilderFactory.makePathBuilder();
        this.sactionResolver = new SoapActionResolver(auditFactory);
        this.nsResolver = new UrnResolver(auditFactory);
    }

    @Override
    protected String getFeature() {
        return b[50];
    }

    @Override
    protected SsgConnector.Endpoint getRequiredEndpoint() {
        return SsgConnector.Endpoint.WSDLPROXY;
    }

    @Override
    protected boolean isCleartextAllowed() {
        return this.config.getBooleanProperty(b[56], false);
    }

    protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        block22: {
            PublishedService publishedService;
            block23: {
                block21: {
                    String[] stringArray = b;
                    httpServletResponse.setContentType(stringArray[48]);
                    try {
                        publishedService = this.getRequestedService(httpServletRequest);
                    }
                    catch (FindException findException) {
                        stringArray = b;
                        this.logger.log(Level.INFO, stringArray[95] + findException.getMessage() + ")", ExceptionUtils.getDebugException((Throwable)findException));
                        this.sendBackError(httpServletResponse, 404, stringArray[74]);
                        return;
                    }
                    catch (AmbiguousServiceException ambiguousServiceException) {
                        stringArray = b;
                        this.logger.log(Level.INFO, stringArray[23] + ExceptionUtils.getMessage((Throwable)ambiguousServiceException));
                        this.sendBackError(httpServletResponse, 300, stringArray[54]);
                        return;
                    }
                    AuthenticationResult[] authenticationResultArray = null;
                    if (this.credentialsPermittedForTransport(httpServletRequest)) {
                        try {
                            authenticationResultArray = publishedService != null ? this.authenticateRequestBasic(httpServletRequest, publishedService) : this.authenticateRequestBasic(httpServletRequest);
                        }
                        catch (BadCredentialsException | IssuedCertNotPresentedException throwable) {
                            stringArray = b;
                            this.logger.log(Level.INFO, stringArray[5] + ExceptionUtils.getMessage((Throwable)throwable), ExceptionUtils.getDebugException((Throwable)throwable));
                            httpServletResponse.setStatus(403);
                            httpServletResponse.getOutputStream().print(stringArray[6]);
                            httpServletResponse.flushBuffer();
                            return;
                        }
                        catch (MissingCredentialsException missingCredentialsException) {
                            stringArray = b;
                            this.logger.log(Level.INFO, stringArray[78]);
                            authenticationResultArray = null;
                        }
                        catch (LicenseException licenseException) {
                            stringArray = b;
                            this.logger.log(Level.WARNING, stringArray[63], licenseException);
                            httpServletResponse.setStatus(503);
                            httpServletResponse.getOutputStream().print(stringArray[16]);
                            httpServletResponse.flushBuffer();
                            return;
                        }
                        catch (ListenerException listenerException) {
                            stringArray = b;
                            this.logger.log(Level.WARNING, stringArray[29], listenerException);
                            httpServletResponse.setStatus(503);
                            httpServletResponse.getOutputStream().print(stringArray[93]);
                            httpServletResponse.flushBuffer();
                            return;
                        }
                    }
                    try {
                        try {
                            try {
                                if (authenticationResultArray == null || authenticationResultArray.length <= 0) break block21;
                            }
                            catch (FindException findException) {
                                throw WsdlProxyServlet.a((Exception)((Object)findException));
                            }
                            if (!this.credentialsPermittedForTransport(httpServletRequest)) break block21;
                        }
                        catch (FindException findException) {
                            throw WsdlProxyServlet.a((Exception)((Object)findException));
                        }
                        this.doAuthenticated(httpServletRequest, httpServletResponse, publishedService, authenticationResultArray);
                        break block22;
                    }
                    catch (FindException findException) {
                        throw WsdlProxyServlet.a((Exception)((Object)findException));
                    }
                }
                try {
                    try {
                        try {
                            if (!this.credentialsPermittedForTransport(httpServletRequest) || httpServletRequest.getParameter(b[7]) == null) break block23;
                        }
                        catch (FindException findException) {
                            throw WsdlProxyServlet.a((Exception)((Object)findException));
                        }
                        if (Boolean.valueOf(httpServletRequest.getParameter(b[89])).booleanValue()) break block23;
                    }
                    catch (FindException findException) {
                        throw WsdlProxyServlet.a((Exception)((Object)findException));
                    }
                    this.doHttpBasicChallenge(httpServletResponse);
                    break block22;
                }
                catch (FindException findException) {
                    throw WsdlProxyServlet.a((Exception)((Object)findException));
                }
            }
            this.doAnonymous(httpServletRequest, httpServletResponse, publishedService);
        }
    }

    private boolean credentialsPermittedForTransport(HttpServletRequest httpServletRequest) {
        boolean bl2;
        block5: {
            block4: {
                try {
                    try {
                        if (!httpServletRequest.isSecure() && !this.isCleartextAllowed()) break block4;
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw WsdlProxyServlet.a(illegalArgumentException);
                    }
                    bl2 = true;
                    break block5;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw WsdlProxyServlet.a(illegalArgumentException);
                }
            }
            bl2 = false;
        }
        return bl2;
    }

    /*
     * Loose catch block
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    private PublishedService getRequestedService(HttpServletRequest httpServletRequest) throws AmbiguousServiceException, FindException {
        Collection<PublishedService> collection;
        String string;
        String string2;
        String string3;
        block27: {
            block30: {
                block28: {
                    PublishedService publishedService;
                    String string4;
                    boolean bl2;
                    block29: {
                        PublishedService publishedService2;
                        bl2 = this.systemAllowsDisabledServiceDownloads(httpServletRequest);
                        string4 = httpServletRequest.getParameter(SecureSpanConstants.HttpQueryParameters.PARAM_SERVICEOID);
                        if (string4 == null) break block28;
                        Goid goid = null;
                        Long l2 = null;
                        try {
                            goid = Goid.parseGoid((String)string4);
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            try {
                                l2 = Long.parseLong(string4);
                            }
                            catch (NumberFormatException numberFormatException) {
                                String[] stringArray = b;
                                throw new FindException(stringArray[65] + string4, (Throwable)illegalArgumentException);
                            }
                        }
                        try {
                            publishedService2 = goid != null ? this.resolveService(goid) : this.resolveService(l2);
                        }
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw WsdlProxyServlet.a(illegalArgumentException);
                        }
                        publishedService = publishedService2;
                        if (publishedService == null) throw new FindException(b[75] + string4 + b[9]);
                        if (!publishedService.isDisabled()) return publishedService;
                        break block29;
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw WsdlProxyServlet.a(illegalArgumentException);
                        }
                    }
                    try {
                        if (bl2) return publishedService;
                        throw new FindException(b[75] + string4 + b[9]);
                        catch (IllegalArgumentException illegalArgumentException) {
                            throw WsdlProxyServlet.a(illegalArgumentException);
                        }
                    }
                    catch (IllegalArgumentException illegalArgumentException) {
                        throw WsdlProxyServlet.a(illegalArgumentException);
                    }
                }
                string3 = httpServletRequest.getParameter(SecureSpanConstants.HttpQueryParameters.PARAM_URI);
                string2 = httpServletRequest.getParameter(SecureSpanConstants.HttpQueryParameters.PARAM_NS);
                string = httpServletRequest.getParameter(SecureSpanConstants.HttpQueryParameters.PARAM_SACTION);
                if (string3 != null) break block27;
                if (string2 != null) break block27;
                break block30;
                catch (IllegalArgumentException illegalArgumentException) {
                    throw WsdlProxyServlet.a(illegalArgumentException);
                }
            }
            try {
                if (string != null) break block27;
                return null;
                catch (IllegalArgumentException illegalArgumentException) {
                    throw WsdlProxyServlet.a(illegalArgumentException);
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw WsdlProxyServlet.a(illegalArgumentException);
            }
        }
        try {
            collection = this.serviceCache.resolve(string3, string, string2);
        }
        catch (ServiceResolutionException serviceResolutionException) {
            String[] stringArray = b;
            throw new FindException(stringArray[67], (Throwable)serviceResolutionException);
        }
        collection = this.removeDisabledServices(collection);
        try {
            if (collection.size() == 1) {
                return collection.iterator().next();
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw WsdlProxyServlet.a(illegalArgumentException);
        }
        try {
            if (collection.isEmpty()) {
                throw new FindException(b[2]);
            }
        }
        catch (IllegalArgumentException illegalArgumentException) {
            throw WsdlProxyServlet.a(illegalArgumentException);
        }
        StringBuilder stringBuilder = new StringBuilder();
        for (PublishedService publishedService : collection) {
            stringBuilder.append(publishedService.getName()).append(" ");
        }
        String[] stringArray = b;
        this.logger.info(stringArray[52] + stringBuilder.toString());
        throw new AmbiguousServiceException(stringArray[27] + stringBuilder.toString());
    }

    private Collection<PublishedService> removeDisabledServices(Collection<PublishedService> collection) {
        ArrayList<PublishedService> arrayList = new ArrayList<PublishedService>();
        for (PublishedService publishedService : collection) {
            try {
                if (publishedService.isDisabled()) continue;
                arrayList.add(publishedService);
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw WsdlProxyServlet.a(illegalArgumentException);
            }
        }
        return arrayList;
    }

    private void doAnonymous(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, PublishedService publishedService) throws IOException {
        this.doAuthenticated(httpServletRequest, httpServletResponse, publishedService, null);
    }

    /*
     * Unable to fully structure code
     */
    private void doAuthenticated(HttpServletRequest var1_1, HttpServletResponse var2_2, PublishedService var3_3, AuthenticationResult[] var4_4) throws IOException {
        block46: {
            block38: {
                block41: {
                    block40: {
                        block36: {
                            block32: {
                                block35: {
                                    block43: {
                                        block44: {
                                            block34: {
                                                block33: {
                                                    if (var3_3 == null) break block32;
                                                    try {
                                                        block42: {
                                                            if (var3_3.isSoap()) break block33;
                                                            break block42;
                                                            catch (FindException v0) {
                                                                throw WsdlProxyServlet.a((Exception)v0);
                                                            }
                                                        }
                                                        var2_2.sendError(404, WsdlProxyServlet.b[70]);
                                                        return;
                                                    }
                                                    catch (FindException v1) {
                                                        throw WsdlProxyServlet.a((Exception)v1);
                                                    }
                                                }
                                                try {
                                                    if (!this.systemAllowsAnonymousDownloads(var1_1)) break block34;
                                                    break block35;
                                                }
                                                catch (FindException v2) {
                                                    throw WsdlProxyServlet.a((Exception)v2);
                                                }
                                            }
                                            if (var4_4 == null) ** GOTO lbl27
                                            if (var4_4.length >= 1) break block43;
                                            break block44;
                                            catch (FindException v3) {
                                                throw WsdlProxyServlet.a((Exception)v3);
                                            }
                                        }
                                        try {
                                            block45: {
                                                if (this.policyAllowAnonymous(var3_3.getPolicy())) break block35;
                                                break block45;
                                                catch (FindException v4) {
                                                    throw WsdlProxyServlet.a((Exception)v4);
                                                }
                                            }
                                            this.logger.info(WsdlProxyServlet.b[81]);
                                            var2_2.sendError(401, WsdlProxyServlet.b[94]);
                                            return;
                                        }
                                        catch (FindException v5) {
                                            throw WsdlProxyServlet.a((Exception)v5);
                                        }
                                    }
                                    var5_5 = false;
                                    if (!this.policyAllowAnonymous(var3_3.getPolicy())) {
                                        var6_7 = null;
                                        for (AuthenticationResult var10_14 : var4_4) {
                                            var6_7 = var10_14.getUser();
                                            if (!this.userCanSeeThisService(var6_7, var3_3)) continue;
                                            var5_5 = true;
                                        }
                                        try {
                                            if (!var5_5) {
                                                this.logger.info(WsdlProxyServlet.b[13] + String.valueOf(var6_7) + " " + var3_3.getPolicy().getXml());
                                                var2_2.sendError(401, WsdlProxyServlet.b[0]);
                                                return;
                                            }
                                        }
                                        catch (FindException v6) {
                                            throw WsdlProxyServlet.a((Exception)v6);
                                        }
                                    }
                                }
                                this.outputServiceDescription(var1_1, var2_2, var3_3, var4_4);
                                var11_15 = WsdlProxyServlet.b;
                                this.logger.info(var11_15[3] + String.valueOf(var3_3.getGoid()));
                                break block46;
                            }
                            try {
                                block37: {
                                    if (this.systemAllowsAnonymousDownloads(var1_1)) {
                                        var5_6 = this.listAllServices();
                                        break block36;
                                    }
                                    try {
                                        if (var4_4 != null && var4_4.length >= 1) break block37;
                                    }
                                    catch (FindException v7) {
                                        throw WsdlProxyServlet.a((Exception)v7);
                                    }
                                    var5_6 = this.listAnonymouslyViewableServices();
                                    break block36;
                                }
                                var5_6 = this.listAnonymouslyViewableAndProtectedServices(var4_4);
                            }
                            catch (FindException var6_8) {
                                var11_16 = WsdlProxyServlet.b;
                                this.logger.log(Level.SEVERE, var11_16[18], var6_8);
                                var2_2.sendError(500, var6_8.getMessage());
                                return;
                            }
                        }
                        var6_9 = var5_6.allowed();
                        try {
                            try {
                                try {
                                    block39: {
                                        try {
                                            try {
                                                if (var6_9.size() >= 1) break block38;
                                                if (var4_4 == null) break block39;
                                            }
                                            catch (FindException v8) {
                                                throw WsdlProxyServlet.a((Exception)v8);
                                            }
                                            if (var4_4.length >= 1) break block40;
                                        }
                                        catch (FindException v9) {
                                            throw WsdlProxyServlet.a((Exception)v9);
                                        }
                                    }
                                    if (!var5_6.anyServices()) break block40;
                                }
                                catch (FindException v10) {
                                    throw WsdlProxyServlet.a((Exception)v10);
                                }
                                if (!this.credentialsPermittedForTransport(var1_1)) break block40;
                            }
                            catch (FindException v11) {
                                throw WsdlProxyServlet.a((Exception)v11);
                            }
                            this.sendAuthChallenge(var2_2);
                            break block41;
                        }
                        catch (FindException v12) {
                            throw WsdlProxyServlet.a((Exception)v12);
                        }
                    }
                    var11_17 = WsdlProxyServlet.b;
                    var7_11 = var11_17[96] + this.styleURL() + var11_17[10];
                    var2_2.setContentType(XmlUtil.TEXT_XML + var11_17[90]);
                    var2_2.getOutputStream().println(var7_11);
                }
                return;
            }
            this.outputServiceDescriptions(var1_1, var2_2, var6_9);
            this.logger.info(WsdlProxyServlet.b[73]);
        }
    }

    private boolean systemAllowsAnonymousDownloads(HttpServletRequest httpServletRequest) {
        String[] stringArray = b;
        String string = this.config.getProperty(stringArray[46]);
        StringTokenizer stringTokenizer = new StringTokenizer(string);
        String string2 = httpServletRequest.getRemoteAddr();
        while (stringTokenizer.hasMoreTokens()) {
            String string3 = stringTokenizer.nextToken();
            try {
                if (!InetAddressUtil.patternMatchesAddress((String)string3, (InetAddress)InetAddressUtil.getAddress((String)string2))) continue;
                this.logger.fine(b[12] + string2 + b[32] + string3);
                return true;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw WsdlProxyServlet.a(illegalArgumentException);
            }
        }
        stringArray = b;
        this.logger.finest(stringArray[92] + string2 + stringArray[20] + string);
        return false;
    }

    private boolean systemAllowsDisabledServiceDownloads(HttpServletRequest httpServletRequest) {
        boolean bl2 = false;
        String[] stringArray = b;
        String string = this.config.getProperty(stringArray[72]);
        if (stringArray[45].equalsIgnoreCase(string)) {
            bl2 = true;
        } else if (b[87].equalsIgnoreCase(string)) {
            bl2 = this.systemAllowsAnonymousDownloads(httpServletRequest);
        }
        return bl2;
    }

    private void sendAuthChallenge(HttpServletResponse httpServletResponse) throws IOException {
        httpServletResponse.setStatus(401);
        String[] stringArray = b;
        this.logger.fine(stringArray[64]);
        httpServletResponse.setHeader(stringArray[35], stringArray[36]);
        httpServletResponse.getOutputStream().close();
    }

    private String styleURL() {
        return b[28];
    }

    private void rewriteReferences(PublishedService publishedService, Document document, Collection<ServiceDocument> collection, String string, Functions.UnaryVoid<Exception> unaryVoid) {
        HashMap<String, Pair> hashMap = new HashMap<String, Pair>();
        for (ServiceDocument serviceDocument : collection) {
            hashMap.put(serviceDocument.getUri(), new Pair((Object)serviceDocument.getId(), (Object)serviceDocument.getContents()));
        }
        WsdlUtil.rewriteReferences((String)publishedService.getId(), (String)publishedService.getWsdlUrl(), (Document)document, hashMap, (String)string, unaryVoid, (boolean)true);
    }

    /*
     * Loose catch block
     */
    private void addSecurityPolicy(Document document, PublishedService publishedService) {
        block14: {
            try {
                if (!this.config.getBooleanProperty(b[44], true)) {
                    this.logger.fine(b[4]);
                    return;
                }
            }
            catch (InterruptedException interruptedException) {
                throw WsdlProxyServlet.a(interruptedException);
            }
            try {
                block12: {
                    Assertion assertion;
                    boolean bl2;
                    WsspAssertion wsspAssertion;
                    block13: {
                        Assertion assertion2 = this.policyPathBuilder.inlineIncludes(this.wspReader.parsePermissively(publishedService.getPolicy().getXml(), WspReader.OMIT_DISABLED), null, false);
                        if (assertion2 == null) {
                            return;
                        }
                        Assertion assertion3 = Policy.simplify((Assertion)assertion2, (boolean)false);
                        wsspAssertion = (WsspAssertion)Assertion.find((Assertion)assertion3, WsspAssertion.class, (boolean)true);
                        if (wsspAssertion == null) {
                            String[] stringArray = b;
                            this.logger.fine(stringArray[49]);
                            return;
                        }
                        XmlUtil.stripNamespace((Node)document.getDocumentElement(), (String)SoapConstants.WSP_NAMESPACE2);
                        bl2 = Assertion.contains((Assertion)assertion3, WssVersionAssertion.class);
                        assertion = this.wsspFilterManager.applyAllFilters(null, assertion3);
                        if (assertion == null) break block12;
                        try {
                            block15: {
                                if (!this.logger.isLoggable(Level.FINEST)) break block13;
                                break block15;
                                catch (InterruptedException interruptedException) {
                                    throw WsdlProxyServlet.a(interruptedException);
                                }
                            }
                            this.logger.log(Level.FINEST, b[14] + WspWriter.getPolicyXml((Assertion)assertion));
                        }
                        catch (InterruptedException interruptedException) {
                            throw WsdlProxyServlet.a(interruptedException);
                        }
                    }
                    WsspWriter.decorate((Document)document, (Assertion)assertion, (boolean)bl2, (String)wsspAssertion.getBasePolicyXml(), (String)wsspAssertion.getInputPolicyXml(), (String)wsspAssertion.getOutputPolicyXml());
                    break block14;
                }
                String[] stringArray = b;
                this.logger.info(stringArray[51]);
            }
            catch (PolicyAssertionException | FilteringException | IOException | InterruptedException | SAXException throwable) {
                String[] stringArray = b;
                this.logger.log(Level.WARNING, stringArray[68] + ExceptionUtils.getMessage((Throwable)throwable), ExceptionUtils.getDebugException((Throwable)throwable));
            }
            catch (Exception exception) {
                this.logger.log(Level.WARNING, b[24] + ExceptionUtils.getMessage((Throwable)exception), exception);
            }
        }
    }

    private boolean proxyRequired(PublishedService publishedService) {
        boolean bl2;
        block2: {
            bl2 = false;
            try {
                if (publishedService.getWsdlUrl() == null || !publishedService.getWsdlUrl().startsWith(b[42])) break block2;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw WsdlProxyServlet.a(illegalArgumentException);
            }
            bl2 = true;
        }
        return bl2;
    }

    /*
     * Unable to fully structure code
     * Could not resolve type clashes
     */
    private void outputServiceDescription(HttpServletRequest var1_1, HttpServletResponse var2_2, PublishedService var3_3, AuthenticationResult[] var4_4) throws IOException {
        block95: {
            block79: {
                block77: {
                    block78: {
                        block93: {
                            block69: {
                                block71: {
                                    block70: {
                                        block68: {
                                            block84: {
                                                block83: {
                                                    block82: {
                                                        block67: {
                                                            block66: {
                                                                block65: {
                                                                    block64: {
                                                                        block80: {
                                                                            if (var3_3.isInternal()) ** GOTO lbl14
                                                                            if (this.proxyRequired(var3_3)) ** GOTO lbl14
                                                                            break block80;
                                                                            catch (SAXException v0) {
                                                                                throw WsdlProxyServlet.a(v0);
                                                                            }
                                                                        }
                                                                        try {
                                                                            block81: {
                                                                                if (!this.config.getBooleanProperty(WsdlProxyServlet.b[40], false)) break block64;
                                                                                break block81;
                                                                                catch (SAXException v1) {
                                                                                    throw WsdlProxyServlet.a(v1);
                                                                                }
                                                                            }
                                                                            v2 = true;
                                                                            break block65;
                                                                        }
                                                                        catch (SAXException v3) {
                                                                            throw WsdlProxyServlet.a(v3);
                                                                        }
                                                                    }
                                                                    v2 = false;
                                                                }
                                                                var5_5 = v2;
                                                                var7_6 = null;
                                                                var8_7 = null;
                                                                try {
                                                                    try {
                                                                        v4 /* !! */  = var5_5 != false ? this.serviceDocumentManager.findByServiceIdAndType(var3_3.getGoid(), WsdlProxyServlet.b[55]) : Collections.emptyList();
                                                                    }
                                                                    catch (SAXException v5) {
                                                                        throw WsdlProxyServlet.a(v5);
                                                                    }
                                                                    var6_8 = v4 /* !! */ ;
                                                                    var9_9 = var1_1.getParameter(SecureSpanConstants.HttpQueryParameters.PARAM_SERVICEDOCOID);
                                                                    if (var9_9 != null) {
                                                                        for (ServiceDocument var11_14 : var6_8) {
                                                                            if (!var9_9.equals(var11_14 /* !! */ .getId())) continue;
                                                                            var8_7 = this.parse(var11_14 /* !! */ .getUri(), var11_14 /* !! */ .getContents());
                                                                        }
                                                                        if (var8_7 == null) {
                                                                            var26_15 = WsdlProxyServlet.b;
                                                                            this.logger.log(Level.WARNING, var26_15[19] + var9_9 + var26_15[97] + String.valueOf(var3_3.getGoid()) + var26_15[38]);
                                                                            var2_2.sendError(404, var26_15[98]);
                                                                            return;
                                                                        }
                                                                    } else {
                                                                        var7_6 = var3_3.getGoid();
                                                                        var8_7 = this.parse(var3_3.getWsdlUrl(), var3_3.getWsdlXml());
                                                                    }
                                                                }
                                                                catch (FindException | SAXException var9_10) {
                                                                    var26_16 = WsdlProxyServlet.b;
                                                                    this.logger.log(Level.WARNING, var26_16[71], var9_10);
                                                                    var2_2.sendError(404, var26_16[98]);
                                                                    return;
                                                                }
                                                                var9_11 = var1_1.isSecure();
                                                                var10_13 = var1_1.getServerPort();
                                                                try {
                                                                    if (!var9_11) break block66;
                                                                    v6 = WsdlProxyServlet.b[79];
                                                                    break block67;
                                                                }
                                                                catch (SAXException v7) {
                                                                    throw WsdlProxyServlet.a(v7);
                                                                }
                                                            }
                                                            var26_17 = WsdlProxyServlet.b;
                                                            v6 = var26_17[15];
                                                        }
                                                        var11_14 /* !! */  = v6;
                                                        var26_17 = WsdlProxyServlet.b;
                                                        var12_18 = this.config.getIntProperty(var26_17[30], 8080);
                                                        var13_19 = this.config.getIntProperty(var26_17[99], 8443);
                                                        if (!var26_17[15].equals(var11_14 /* !! */ )) ** GOTO lbl81
                                                        if (var10_13 == 80) break block68;
                                                        break block82;
                                                        catch (SAXException v8) {
                                                            throw WsdlProxyServlet.a(v8);
                                                        }
                                                    }
                                                    if (var10_13 == var12_18) break block68;
                                                    break block83;
                                                    catch (SAXException v9) {
                                                        throw WsdlProxyServlet.a(v9);
                                                    }
                                                }
                                                if (!WsdlProxyServlet.b[79].equals(var11_14 /* !! */ )) break block69;
                                                break block84;
                                                catch (SAXException v10) {
                                                    throw WsdlProxyServlet.a(v10);
                                                }
                                            }
                                            try {
                                                block85: {
                                                    if (var10_13 == 443) break block68;
                                                    break block85;
                                                    catch (SAXException v11) {
                                                        throw WsdlProxyServlet.a(v11);
                                                    }
                                                }
                                                if (var10_13 != var13_19) break block69;
                                            }
                                            catch (SAXException v12) {
                                                throw WsdlProxyServlet.a(v12);
                                            }
                                        }
                                        var14_20 = null;
                                        try {
                                            if (var4_4 == null || var4_4.length != 1) break block70;
                                        }
                                        catch (SAXException v13) {
                                            throw WsdlProxyServlet.a(v13);
                                        }
                                        var14_20 = var4_4[0].getUser();
                                    }
                                    if (var4_4 == null) break block71;
                                    try {
                                        block86: {
                                            if (var4_4.length <= 1) break block71;
                                            break block86;
                                            catch (SAXException v14) {
                                                throw WsdlProxyServlet.a(v14);
                                            }
                                        }
                                        this.logger.warning(WsdlProxyServlet.b[76]);
                                    }
                                    catch (SAXException v15) {
                                        throw WsdlProxyServlet.a(v15);
                                    }
                                }
                                try {
                                    block76: {
                                        block75: {
                                            block91: {
                                                block90: {
                                                    block72: {
                                                        block74: {
                                                            block73: {
                                                                block88: {
                                                                    block87: {
                                                                        var15_21 /* !! */  = this.parsePolicy(var3_3.getPolicy().getXml());
                                                                        var16_23 = this.clientPolicyFilterManager.applyAllFilters((User)var14_20, var15_21 /* !! */ );
                                                                        var17_24 /* !! */  = (SslAssertion)WsdlProxyServlet.getFirstChild((Assertion)var16_23, SslAssertion.class);
                                                                        if (var9_11) break block72;
                                                                        if (var17_24 /* !! */  == null) break block72;
                                                                        break block87;
                                                                        catch (SAXException v16) {
                                                                            throw WsdlProxyServlet.a(v16);
                                                                        }
                                                                    }
                                                                    if (var17_24 /* !! */ .getOption() != SslAssertion.REQUIRED) break block72;
                                                                    break block88;
                                                                    catch (SAXException v17) {
                                                                        throw WsdlProxyServlet.a(v17);
                                                                    }
                                                                }
                                                                try {
                                                                    block89: {
                                                                        if (var10_13 != 80) break block73;
                                                                        break block89;
                                                                        catch (SAXException v18) {
                                                                            throw WsdlProxyServlet.a(v18);
                                                                        }
                                                                    }
                                                                    v19 = 443;
                                                                    break block74;
                                                                }
                                                                catch (SAXException v20) {
                                                                    throw WsdlProxyServlet.a(v20);
                                                                }
                                                            }
                                                            v19 = var13_19;
                                                        }
                                                        var10_13 = v19;
                                                        var26_17 = WsdlProxyServlet.b;
                                                        var11_14 /* !! */  = var26_17[79];
                                                        break block69;
                                                    }
                                                    if (!var9_11) break block69;
                                                    if (var17_24 /* !! */  == null) break block69;
                                                    break block90;
                                                    catch (SAXException v21) {
                                                        throw WsdlProxyServlet.a(v21);
                                                    }
                                                }
                                                if (var17_24 /* !! */ .getOption() != SslAssertion.FORBIDDEN) break block69;
                                                break block91;
                                                catch (SAXException v22) {
                                                    throw WsdlProxyServlet.a(v22);
                                                }
                                            }
                                            try {
                                                block92: {
                                                    if (var10_13 != 443) break block75;
                                                    break block92;
                                                    catch (SAXException v23) {
                                                        throw WsdlProxyServlet.a(v23);
                                                    }
                                                }
                                                v24 = 80;
                                                break block76;
                                            }
                                            catch (SAXException v25) {
                                                throw WsdlProxyServlet.a(v25);
                                            }
                                        }
                                        v24 = var12_18;
                                    }
                                    var10_13 = v24;
                                    var26_17 = WsdlProxyServlet.b;
                                    var11_14 /* !! */  = var26_17[15];
                                }
                                catch (Exception var15_22) {
                                    var26_17 = WsdlProxyServlet.b;
                                    this.logger.log(Level.WARNING, var26_17[58], var15_22);
                                }
                            }
                            var14_20 = "";
                            if (!WsdlProxyServlet.b[79].equals(var11_14 /* !! */ )) ** GOTO lbl199
                            if (var10_13 == 443) break block77;
                            break block93;
                            catch (SAXException v26) {
                                throw WsdlProxyServlet.a(v26);
                            }
                        }
                        try {
                            block94: {
                                if (!WsdlProxyServlet.b[15].equals(var11_14 /* !! */ )) break block78;
                                break block94;
                                catch (SAXException v27) {
                                    throw WsdlProxyServlet.a(v27);
                                }
                            }
                            if (var10_13 == 80) break block77;
                        }
                        catch (SAXException v28) {
                            throw WsdlProxyServlet.a(v28);
                        }
                    }
                    var14_20 = ":" + var10_13;
                }
                var16_23 = var3_3.getRoutingUri();
                try {
                    if (var16_23 != null && var16_23.length() >= 1) break block79;
                }
                catch (SAXException v29) {
                    throw WsdlProxyServlet.a(v29);
                }
                var19_25 = Goid.toString((Goid)var3_3.getGoid());
                var20_26 = SecureSpanConstants.SERVICE_FILE;
                var21_27 = var14_20;
                var22_28 = InetAddressUtil.getHostForUrl((String)var1_1.getServerName());
                var26_17 = WsdlProxyServlet.b;
                var15_21 /* !! */  = new URL((String)var11_14 /* !! */  + var26_17[21] + var22_28 + (String)var21_27 + var20_26 + var19_25);
                break block95;
            }
            var23_29 = var16_23;
            var24_30 = var14_20;
            var25_31 = InetAddressUtil.getHostForUrl((String)var1_1.getServerName());
            var26_17 = WsdlProxyServlet.b;
            var15_21 /* !! */  = new URL((String)var11_14 /* !! */  + var26_17[21] + var25_31 + (String)var24_30 + var23_29);
        }
        var17_24 /* !! */  = var1_1.getServletPath();
        try {
            var17_24 /* !! */  = new URI(var1_1.getRequestURL().toString()).resolve(var1_1.getServletPath()).toString();
        }
        catch (Exception var18_32) {
            var26_17 = WsdlProxyServlet.b;
            this.logger.warning(var26_17[39] + ExceptionUtils.getMessage((Throwable)var18_32) + var26_17[38]);
        }
        try {
            this.rewriteReferences(var3_3, var8_7, var6_8, (String)var17_24 /* !! */ , new bb(this, var3_3));
            v30 = var8_7;
            v31 /* !! */  = var15_21 /* !! */ ;
            v32 = null == var7_6 ? null : var7_6.toString();
        }
        catch (SAXException v33) {
            throw WsdlProxyServlet.a(v33);
        }
        WsdlUtil.addOrUpdateEndpoints((Document)v30, (URL)v31 /* !! */ , (String)v32);
        this.addSecurityPolicy(var8_7, var3_3);
        var26_17 = WsdlProxyServlet.b;
        var2_2.setContentType(XmlUtil.TEXT_XML + var26_17[61]);
        try {
            XmlUtil.nodeToOutputStream((Node)var8_7, (OutputStream)var2_2.getOutputStream());
        }
        catch (IOException var18_33) {
            this.logger.log(Level.SEVERE, WsdlProxyServlet.b[26], var18_33);
            throw new IOException(var18_33.getMessage());
        }
    }

    private Document parse(String string, String string2) throws IOException, SAXException {
        InputSource inputSource = new InputSource();
        inputSource.setSystemId(string);
        inputSource.setCharacterStream(new StringReader(string2));
        return XmlUtil.parse((InputSource)inputSource, (boolean)false);
    }

    private void outputServiceDescriptions(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Collection<PublishedService> collection) throws IOException {
        String string = httpServletRequest.getRequestURI();
        String[] stringArray = b;
        string = string.replaceAll(stringArray[83], stringArray[11]);
        String string2 = this.createWSILDoc(httpServletRequest, collection, httpServletRequest.getServerName(), httpServletRequest.getServerPort(), string);
        httpServletResponse.setContentType(XmlUtil.TEXT_XML + stringArray[61]);
        ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();
        servletOutputStream.print(string2);
        servletOutputStream.close();
    }

    private bf listAllServices() throws FindException {
        List list = Functions.grep(this.serviceCache.getCachedServices(), (Functions.Unary)new bc(this));
        return new bd(this, list);
    }

    private bf listAnonymouslyViewableServices() throws IOException, FindException {
        return this.listAnonymouslyViewableAndProtectedServices(null);
    }

    private bf listAnonymouslyViewableAndProtectedServices(AuthenticationResult[] authenticationResultArray) throws IOException, FindException {
        Collection<PublishedService> collection = this.serviceCache.getCachedServices();
        ArrayList<PublishedService> arrayList = new ArrayList<PublishedService>();
        for (PublishedService publishedService : collection) {
            try {
                if (publishedService.isDisabled()) {
                    continue;
                }
            }
            catch (IOException iOException) {
                throw WsdlProxyServlet.a(iOException);
            }
            try {
                if (this.policyAllowAnonymous(publishedService.getPolicy())) {
                    arrayList.add(publishedService);
                    continue;
                }
            }
            catch (IOException iOException) {
                throw WsdlProxyServlet.a(iOException);
            }
            if (authenticationResultArray == null) continue;
            for (AuthenticationResult authenticationResult : authenticationResultArray) {
                User user = authenticationResult.getUser();
                try {
                    if (!this.userCanSeeThisService(user, publishedService)) continue;
                    arrayList.add(publishedService);
                }
                catch (IOException iOException) {
                    throw WsdlProxyServlet.a(iOException);
                }
            }
        }
        return new be(this, arrayList, collection);
    }

    private boolean userCanSeeThisService(User user, PublishedService publishedService) throws IOException {
        Assertion assertion = this.parsePolicy(publishedService.getPolicy().getXml());
        return this.checkForIdPotential(assertion, user);
    }

    private boolean checkForIdPotential(Assertion assertion, User user) {
        if (assertion instanceof IdentityAssertion) {
            try {
                if (IdentityRule.canUserPassIDAssertion((IdentityAssertion)assertion, user, this.identityProviderFactory)) {
                    return true;
                }
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw WsdlProxyServlet.a(illegalArgumentException);
            }
            catch (FilteringException filteringException) {
                this.logger.log(Level.SEVERE, b[84], filteringException);
            }
            return false;
        }
        if (assertion instanceof CustomAssertionHolder) {
            CustomAssertionHolder customAssertionHolder = (CustomAssertionHolder)assertion;
            return customAssertionHolder.isCustomCredentialSource();
        }
        if (assertion instanceof CompositeAssertion) {
            CompositeAssertion compositeAssertion = (CompositeAssertion)assertion;
            for (Assertion assertion2 : compositeAssertion.getChildren()) {
                try {
                    if (!this.checkForIdPotential(assertion2, user)) continue;
                    return true;
                }
                catch (FilteringException filteringException) {
                    throw WsdlProxyServlet.a(filteringException);
                }
            }
            return false;
        }
        return false;
    }

    private String resModeQueryString(PublishedService publishedService) throws ServiceResolutionException {
        Object object2;
        String string = publishedService.getRoutingUri();
        if (string == null) {
            string = "";
        }
        String string2 = "";
        Set set = this.nsResolver.getDistinctParameters(publishedService);
        for (Object object2 : set) {
            if (object2 != null) {
                string2 = object2;
            }
            try {
                try {
                    if (object2 == null || ((String)object2).length() <= 0) continue;
                    break;
                }
                catch (ServiceResolutionException serviceResolutionException) {
                    throw WsdlProxyServlet.a(serviceResolutionException);
                }
            }
            catch (ServiceResolutionException serviceResolutionException) {
                throw WsdlProxyServlet.a(serviceResolutionException);
            }
        }
        Object object3 = "";
        object2 = this.sactionResolver.getDistinctParameters(publishedService);
        Iterator iterator = object2.iterator();
        while (iterator.hasNext()) {
            String string3 = (String)iterator.next();
            if (string3 != null) {
                object3 = string3;
            }
            try {
                try {
                    if (string3 == null || string3.length() <= 0) continue;
                    break;
                }
                catch (ServiceResolutionException serviceResolutionException) {
                    throw WsdlProxyServlet.a(serviceResolutionException);
                }
            }
            catch (ServiceResolutionException serviceResolutionException) {
                throw WsdlProxyServlet.a(serviceResolutionException);
            }
        }
        String string4 = string2;
        String string5 = SecureSpanConstants.HttpQueryParameters.PARAM_NS;
        Object object4 = object3;
        String string6 = SecureSpanConstants.HttpQueryParameters.PARAM_SACTION;
        String string7 = string;
        String[] stringArray = b;
        return SecureSpanConstants.HttpQueryParameters.PARAM_URI + "=" + string7 + stringArray[41] + string6 + "=" + (String)object4 + stringArray[17] + string5 + "=" + string4;
    }

    private boolean isResModeRequested(HttpServletRequest httpServletRequest) {
        block4: {
            String string = httpServletRequest.getParameter(SecureSpanConstants.HttpQueryParameters.PARAM_MODE);
            try {
                try {
                    if (string == null || !string.toLowerCase().startsWith(b[80])) break block4;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw WsdlProxyServlet.a(illegalArgumentException);
                }
                return true;
            }
            catch (IllegalArgumentException illegalArgumentException) {
                throw WsdlProxyServlet.a(illegalArgumentException);
            }
        }
        return false;
    }

    private String createWSILDoc(HttpServletRequest httpServletRequest, Collection<PublishedService> collection, String string, int n2, String string2) {
        String[] stringArray;
        String string3;
        boolean bl2;
        block6: {
            block5: {
                bl2 = this.isResModeRequested(httpServletRequest);
                try {
                    if (!httpServletRequest.isSecure()) break block5;
                    string3 = b[33];
                    break block6;
                }
                catch (ServiceResolutionException serviceResolutionException) {
                    throw WsdlProxyServlet.a(serviceResolutionException);
                }
            }
            stringArray = b;
            string3 = stringArray[8];
        }
        String string4 = string3;
        stringArray = b;
        StringBuilder stringBuilder = new StringBuilder(stringArray[47] + this.styleURL() + stringArray[1]);
        for (PublishedService publishedService : collection) {
            if (!publishedService.isSoap()) continue;
            try {
                Object object = bl2 ? this.resModeQueryString(publishedService) : SecureSpanConstants.HttpQueryParameters.PARAM_SERVICEOID + "=" + Goid.toString((Goid)publishedService.getGoid());
                stringArray = b;
                stringBuilder.append(stringArray[22]);
                stringBuilder.append(stringArray[62]).append(publishedService.getName()).append(stringArray[57]);
                stringBuilder.append(stringArray[34]);
                stringBuilder.append(stringArray[25]);
                stringBuilder.append(string4).append(stringArray[88]).append(InetAddressUtil.getHostForUrl((String)string)).append(":").append(n2).append(string2).append("?").append((String)object);
                stringBuilder.append(stringArray[66]);
                stringBuilder.append(stringArray[82]);
            }
            catch (ServiceResolutionException serviceResolutionException) {
                stringArray = b;
                this.logger.log(Level.WARNING, stringArray[69] + String.valueOf(publishedService.getGoid()) + stringArray[91], serviceResolutionException);
            }
        }
        stringBuilder.append(b[53]);
        return stringBuilder.toString();
    }

    protected void sendBackError(HttpServletResponse httpServletResponse, int n2, String string) throws IOException {
        httpServletResponse.setStatus(n2);
        httpServletResponse.getOutputStream().print(string);
        httpServletResponse.getOutputStream().close();
    }

    private static Assertion getFirstChild(Assertion assertion, Class clazz) {
        Assertion assertion2 = null;
        if (clazz.isInstance(assertion)) {
            assertion2 = assertion;
        } else if (assertion instanceof CompositeAssertion) {
            CompositeAssertion compositeAssertion = (CompositeAssertion)assertion;
            List list = compositeAssertion.getChildren();
            for (Assertion assertion3 : list) {
                assertion2 = WsdlProxyServlet.getFirstChild(assertion3, clazz);
                try {
                    if (assertion2 == null) continue;
                    break;
                }
                catch (IllegalArgumentException illegalArgumentException) {
                    throw WsdlProxyServlet.a(illegalArgumentException);
                }
            }
        }
        return assertion2;
    }

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

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[100];
                var3_1 = 0;
                var2_2 = "4,\u0000/D\u0018\u000f2!\u00019OL\u0005!(\u0016|EWL.+\u0011|FJ\r.0E%NML!'\u00069RKL4+E(IQ\u001f`7\u0000.WQ\u000f%d\u00019R[\u001e)4\u00115NVBKb{[V\u001dQ\u000234\u0000?UQ\u0003.d\u001d1MV\u001f}f\r(UHVok\u0016?I]\u0001!7K$LT\u001f/%\u0015rNJ\u000bo3\u0016s\u0013\b\\qkTl\u000eQ\u000234\u0000?UQ\u0003.kGb+*\u0010%\u0017=L]\u0018%6\u0016|EQ\b`*\n(\u0001J\t3+\t*D\u0018\u0018/d\u00042X\u0018\u001f%6\u00135B]B\"\u0012!\u0011)SV\t$d\u00019R[\u001e)4\u00115NVL&+\u0017|R]\u001e6-\u00069\r\u0018)\u0017\u0017H\u000fD[\u00192-\u0011%qW\u0000)'\u001c|E]\u000f/6\u0004(HW\u0002`*\n(\u0001]\u0002!&\t9E\u0016*\u0017\u0017!\u0010\u0001H\u001e/<\u001c|S]\u001d5!\u0016(\u0001Y\u00194,\u00002UQ\u000f!0\f3O\u0018\n!-\t9E\u0002L\u0015\u00011\u00114DV\u0018)'\u0004(HW\u0002`\"\u00045M]\b\u0004!*\n2\u0004(0\u0011,\u001d` \f8\u0001V\u00034d\u00179RW\u00006!E=OAL3!\u0017*H[\tnMb{[V\u001dQ\u000234\u0000?UQ\u0003.d\u001d1MV\u001f}f\r(UHVok\u0016?I]\u0001!7K$LT\u001f/%\u0015rNJ\u000bo3\u0016s\u0013\b\\qkTl\u000eQ\u000234\u0000?UQ\u0003.kG|\u000e\u0006f\u000477\u00010\n2!\b3U]L)4E*57\u0000.\u0001\\\t.-\u00008\u0001Y\u000f#!\u0016/\u0001L\u0003`7\u0000.WQ\u000f%d\u00019R[\u001e)4\u00115NVL\u001c\u0005\"\u00039BL\u00056!E,NT\u0005#=E:NJL57\u0000.\u001b\u0018f\u0004(0\u0011,1\u0007%\u00119VY\u0015`\u00136\u0018m\u0018\u001c2+\u001d%\u0001K\t22\f?D\u0018\u0002/0E9OY\u000e,!\u0001|CAL,-\u00069OK\t\u0005f%\b,\u001a\u0014#%\u000b2NLL,-\u0016(\u0001K\t22\f?DK(\u0003%\u000b2NLL&-\u000b8\u0001Q\u00010+\u0017(D\\L$+\u0006)L]\u00024d\u00125UPL/-\u0001|\u0006*`3\u0004/\u0001V\u00034d\u0004)UP\u00032-\u001f9E\u0018\u000e9d\u00042X\u0018\u001c!7\u0016(IJ\u00035#\r|HVL\u0003zkJ\u000bIx\u00169SN\u0005#![V\u001b\u0013!\u0017*H[\t`6\u0000-T]\u001f4d\u00041CQ\u000b5+\u0010/\u001b\u0018\u001e\u0003+\u00100E\u0018\u0002/0E=E\\L0+\t5BAL4+E\u000br| zd\n,+\u0006=UQ\u0003.yG\u0014%6\u00173S\u0018\u000350\u0015)UQ\u0002'd\u0012/ET \u0014+\n|LY\u00029d\u00169SN\u0005#!\u0016|GQ\u0018`0\r9\u0001U\u0003, _|\u0013o7\u0016;\u000eO\u001f)(W$IL\u0001,j\u001d1M1\u0013!\u0017*H[\t`*\n(\u0001H\t2)\f(U]\b`+\u000b|UP\u00053d\u00153SL@`6\u0000(TJ\u0002)*\u0002|\u0014\b\\\b(0\u0011,qW\u001e4\f!1\u00015U~\r#0\n.X%`3\u0004/\u0001Y\u00194,\n.HB\t$d\u0007%\u0001H\r37\u00114SW\u0019',E*@T\u0019%d\u0005(0\u0011,RFIMY8DK\u000f2-\u0015(HW\u0002`6\u0000:DJ\t.'\u00008oY\u0001%7\u0015=B]Qb,\u0011(Q\u0002Co7\u00064DU\r3j\u001d1MK\u0003!4K3S_C77\u00010\u000e\u001aL\u0010\u0017\u00132q`M\u0018(!\u000b(H[\r4!\u000e\u0002%\u00165B\u0018\u001e%%\t1\u001c\u001aN\u00130+\t5BA*)(\u00119Su\r.%\u00029S\u0002gj1\u0015*\u0004>M]L4+E8DL\t2)\f2D\u0018\r\"7\n0TL\t`\u00117\u0010\u0001^\u00032d\u0012/ETL06\n$X\u0018K\u001677\u00010hU\u001c/6\u0011\fSW\u00149\u0001\u000b=CT\t$\u0005f%\b,\u001a\u0005&-\t9\u001b 77\u00010qJ\u00038=K=MT\u00037\r\u000b/D[\u00192!-(UH.!7\f?\u0016#+\brM\u000f\u0018%'\rrR]\u001e6!\u0017rVK\u001f0\u0003!(\t\u00140%\u0016/UP\u001e/1\u00024eW\u001b.(\n=EKN|{\u001d1M\u0018\u001a%6\u00165NVQbuKl\u0003\u0018\t.'\n8HV\u000b}f0\bg\u0015Tb{[V\u001d\u0007\u0014-(H/UA\u0000%7\r9DLL4=\u00159\u001c\u001a\u0018%<\u0011sYK\u0000bd\r.D^Qb\u00194!\u001d(\u000eH\u0000!-\u000bg\u0001[\u0004!6\u00169U\u00059\u0014\u0002Hd7\u000e+E\u000brk<`\u0005\u0016/DJ\u0018)+\u000b|HVL0+\t5BA@`*\n(\u0001Y\b$-\u000b;\u0001H\u0003,-\u0006%\u0001L\u0003`\u00136\u0018m\u0016\u00113!\u0017*H[\tz\u0013\u00168Mh\u001e/<\u001c\u0011\u000e+E,NT\u0005#=E(N\u0018\r$ D\u00183!\u0017*H[\t`5\u00109SAL4+\n|VQ\b%~E\r|k\f2RH\t#0\f3O\u0006\u0019\u0013!\u0017*H[\t`6\u0000-T]\u001f4d\u00041CQ\u000b5+\u0010/\u000b\u0017\u0017!\u0010\fq!\u0010\u000b7\b 77\u00010qJ\u00038=K=MT\u00037\r\u000b/D[\u00192!-(UH.!7\f?\f|k\u0004>RL\u001e!'\u0011b+;\u0003+\u00100E\u0018\u0002/0E8DL\t2)\f2D\u0018\u0005&d-\buhC\b\u00101\fr\u0018\u00053d\u00179PM\u00052!\u0001|GW\u001e`!\u000b8QW\u0005.0K\u00163!\u0017*H[\t\u0004+\u0006)L]\u00024\t\u00042@_\t2\u001677\u0016,NT\u0005#=#5ML\t2\t\u00042@_\t2\u000f{d\u00064@J\u001f%0X)U^Ax\fIMY=CK\u00182%\u0006(\u001f$\u0013!\u0017*H[\t`-\u0016|TV\u0000)'\u00002R]\bld\u00179UM\u001e.-\u000b;\u0001\r\\p%3!\u000b8HV\u000b`&\u0004?J\u0018\r50\r9OL\u0005#%\u00115NVL#,\u00040M]\u0002'!\u001d#%\u000b2NLL0%\u0017/D\u0018\u001f%6\u00135B]L) E:SW\u0001`\u0004bk[V\u0018\u00056\u00173S\u0018\u001e%7\n0WQ\u0002'd\u00169SN\u0005#!K\u001e\u0003+\u00100E\u0018\u0002/0E=E\\L0+\t5BAL4+E\u000br| zd%\u0003+\u00100E\u0018\u0002/0E,SW\u000f%7\u0016|R]\u001e6-\u00069\u0001O\u00054,E;NQ\b`c\u00133!\u0017*H[\t`,\u0004/\u0001V\u0003`3\u00168M\u0011#%\u000b2NLL0%\u0017/D\u0018\u001b3 \t 3!\u0017*H[\tn \f/@Z\u0000% 69SN\u0005#!!3VV\u0000/%\u0001/,\u0012!\u0011)SV\t$d\t5RLL/\"E/DJ\u001a)'\u0000|E]\u001f#6\f,UQ\u0003.d\u0011=S_\t47\u0019\t*\u0013=MQ\b`7\u0000.WQ\u000f%d\u00179PM\t30\u00008\u000b\u0013!\u0017*H[\t`-\u0001|L\u0003%\u000b2NLL$!\u00119SU\u0005.!E5G\u0018$\u0014\u00105\u000f\u0001Q\u001f`6\u0000-TQ\u001e% E:NJL%\"\u00039BL\u00056!E,NT\u0005#=EtLM\u00004-\u00150D\u0018\u00193!\u0017/\b\u0016\u00180+\t5BA<!0\r\u001eTQ\u0000$!\u0017\u001a@[\u0018/6\u001cP\u00036\u00008DV\u0018)%\t/\u0001\\\u0003`*\n(\u0001Y\u00194,\u00002UQ\u000f!0\u0000|@_\r)*\u0016(\u0001Y\u00029d\n:\u0001L\u0004%d\u0015.NN\u0005$!\u0017/\r\u0018\r37\u00101HV\u000b`%\u000b3OA\u0001/1\u0016\u0005(0\u0011,R\u00032!\u0016)57\u0000.\u0001\\\t.-\u00008\u0001Y\u000f#!\u0016/\u0001L\u0003`7\u0000.WQ\u000f%d\u00019R[\u001e)4\u00115NV\fIxJ/DJ\u001a)'\u0000b+\u000477\f0\u001d#%\u000b2NLL#,\u0000?J\u0018\n/6E5E\u0018\r37\u0000.UQ\u0003.\u0016#+\brM\u000f\u0018%'\rrR]\u001e6!\u0017rVK\u001f0\u001677\u00010hU\u001c/6\u0011\fSW\u00149\u0001\u000b=CT\t$\u000b0%\u0016/UP\u001e/1\u00024\u0003zkJ\u0004!*\n2\u000f{d\u00064@J\u001f%0X)U^Ax\u0002gj\n2!\b3U]L)4E5\u0007%\u00119VY\u0015`\u00136\u0018m\u0018\u001c2+\u001d%\u0001K\t22\f?D\u0018\u0002/0E,DJ\u0001)0\u00119E\u0018\u0003.d\u00114HKL0+\u0017(G9+\u0010|O]\t$d\u00113\u0001H\u001e/2\f8D\u0018\u001a!(\f8\u0001[\u001e% \u00002UQ\r,7E(N\u0018\u001f%!E(IQ\u001f`7\u0000.WQ\u000f%c\u0016|E]\u001f#6\f,UQ\u0003.\u001b\t*\u0013=MQ\b`7\u0000.WQ\u000f%d\u00179PM\t30\u00008\u0001\u0010N|{\u001d1M\u0018\u001a%6\u00165NVQbuKl\u0003\u0018\t.'\n8HV\u000b}f0\bg\u0015Tb{[V\u001d\u0007\u0014-(H/UA\u0000%7\r9DLL4=\u00159\u001c\u001a\u0018%<\u0011sYK\u0000bd\r.D^Qb\u000fgd\u00033S\u0018\u001f%6\u00135B]Lg";
                var4_3 = "4,\u0000/D\u0018\u000f2!\u00019OL\u0005!(\u0016|EWL.+\u0011|FJ\r.0E%NML!'\u00069RKL4+E(IQ\u001f`7\u0000.WQ\u000f%d\u00019R[\u001e)4\u00115NVBKb{[V\u001dQ\u000234\u0000?UQ\u0003.d\u001d1MV\u001f}f\r(UHVok\u0016?I]\u0001!7K$LT\u001f/%\u0015rNJ\u000bo3\u0016s\u0013\b\\qkTl\u000eQ\u000234\u0000?UQ\u0003.kGb+*\u0010%\u0017=L]\u0018%6\u0016|EQ\b`*\n(\u0001J\t3+\t*D\u0018\u0018/d\u00042X\u0018\u001f%6\u00135B]B\"\u0012!\u0011)SV\t$d\u00019R[\u001e)4\u00115NVL&+\u0017|R]\u001e6-\u00069\r\u0018)\u0017\u0017H\u000fD[\u00192-\u0011%qW\u0000)'\u001c|E]\u000f/6\u0004(HW\u0002`*\n(\u0001]\u0002!&\t9E\u0016*\u0017\u0017!\u0010\u0001H\u001e/<\u001c|S]\u001d5!\u0016(\u0001Y\u00194,\u00002UQ\u000f!0\f3O\u0018\n!-\t9E\u0002L\u0015\u00011\u00114DV\u0018)'\u0004(HW\u0002`\"\u00045M]\b\u0004!*\n2\u0004(0\u0011,\u001d` \f8\u0001V\u00034d\u00179RW\u00006!E=OAL3!\u0017*H[\tnMb{[V\u001dQ\u000234\u0000?UQ\u0003.d\u001d1MV\u001f}f\r(UHVok\u0016?I]\u0001!7K$LT\u001f/%\u0015rNJ\u000bo3\u0016s\u0013\b\\qkTl\u000eQ\u000234\u0000?UQ\u0003.kG|\u000e\u0006f\u000477\u00010\n2!\b3U]L)4E*57\u0000.\u0001\\\t.-\u00008\u0001Y\u000f#!\u0016/\u0001L\u0003`7\u0000.WQ\u000f%d\u00019R[\u001e)4\u00115NVL\u001c\u0005\"\u00039BL\u00056!E,NT\u0005#=E:NJL57\u0000.\u001b\u0018f\u0004(0\u0011,1\u0007%\u00119VY\u0015`\u00136\u0018m\u0018\u001c2+\u001d%\u0001K\t22\f?D\u0018\u0002/0E9OY\u000e,!\u0001|CAL,-\u00069OK\t\u0005f%\b,\u001a\u0014#%\u000b2NLL,-\u0016(\u0001K\t22\f?DK(\u0003%\u000b2NLL&-\u000b8\u0001Q\u00010+\u0017(D\\L$+\u0006)L]\u00024d\u00125UPL/-\u0001|\u0006*`3\u0004/\u0001V\u00034d\u0004)UP\u00032-\u001f9E\u0018\u000e9d\u00042X\u0018\u001c!7\u0016(IJ\u00035#\r|HVL\u0003zkJ\u000bIx\u00169SN\u0005#![V\u001b\u0013!\u0017*H[\t`6\u0000-T]\u001f4d\u00041CQ\u000b5+\u0010/\u001b\u0018\u001e\u0003+\u00100E\u0018\u0002/0E=E\\L0+\t5BAL4+E\u000br| zd\n,+\u0006=UQ\u0003.yG\u0014%6\u00173S\u0018\u000350\u0015)UQ\u0002'd\u0012/ET \u0014+\n|LY\u00029d\u00169SN\u0005#!\u0016|GQ\u0018`0\r9\u0001U\u0003, _|\u0013o7\u0016;\u000eO\u001f)(W$IL\u0001,j\u001d1M1\u0013!\u0017*H[\t`*\n(\u0001H\t2)\f(U]\b`+\u000b|UP\u00053d\u00153SL@`6\u0000(TJ\u0002)*\u0002|\u0014\b\\\b(0\u0011,qW\u001e4\f!1\u00015U~\r#0\n.X%`3\u0004/\u0001Y\u00194,\n.HB\t$d\u0007%\u0001H\r37\u00114SW\u0019',E*@T\u0019%d\u0005(0\u0011,RFIMY8DK\u000f2-\u0015(HW\u0002`6\u0000:DJ\t.'\u00008oY\u0001%7\u0015=B]Qb,\u0011(Q\u0002Co7\u00064DU\r3j\u001d1MK\u0003!4K3S_C77\u00010\u000e\u001aL\u0010\u0017\u00132q`M\u0018(!\u000b(H[\r4!\u000e\u0002%\u00165B\u0018\u001e%%\t1\u001c\u001aN\u00130+\t5BA*)(\u00119Su\r.%\u00029S\u0002gj1\u0015*\u0004>M]L4+E8DL\t2)\f2D\u0018\r\"7\n0TL\t`\u00117\u0010\u0001^\u00032d\u0012/ETL06\n$X\u0018K\u001677\u00010hU\u001c/6\u0011\fSW\u00149\u0001\u000b=CT\t$\u0005f%\b,\u001a\u0005&-\t9\u001b 77\u00010qJ\u00038=K=MT\u00037\r\u000b/D[\u00192!-(UH.!7\f?\u0016#+\brM\u000f\u0018%'\rrR]\u001e6!\u0017rVK\u001f0\u0003!(\t\u00140%\u0016/UP\u001e/1\u00024eW\u001b.(\n=EKN|{\u001d1M\u0018\u001a%6\u00165NVQbuKl\u0003\u0018\t.'\n8HV\u000b}f0\bg\u0015Tb{[V\u001d\u0007\u0014-(H/UA\u0000%7\r9DLL4=\u00159\u001c\u001a\u0018%<\u0011sYK\u0000bd\r.D^Qb\u00194!\u001d(\u000eH\u0000!-\u000bg\u0001[\u0004!6\u00169U\u00059\u0014\u0002Hd7\u000e+E\u000brk<`\u0005\u0016/DJ\u0018)+\u000b|HVL0+\t5BA@`*\n(\u0001Y\b$-\u000b;\u0001H\u0003,-\u0006%\u0001L\u0003`\u00136\u0018m\u0016\u00113!\u0017*H[\tz\u0013\u00168Mh\u001e/<\u001c\u0011\u000e+E,NT\u0005#=E(N\u0018\r$ D\u00183!\u0017*H[\t`5\u00109SAL4+\n|VQ\b%~E\r|k\f2RH\t#0\f3O\u0006\u0019\u0013!\u0017*H[\t`6\u0000-T]\u001f4d\u00041CQ\u000b5+\u0010/\u000b\u0017\u0017!\u0010\fq!\u0010\u000b7\b 77\u00010qJ\u00038=K=MT\u00037\r\u000b/D[\u00192!-(UH.!7\f?\f|k\u0004>RL\u001e!'\u0011b+;\u0003+\u00100E\u0018\u0002/0E8DL\t2)\f2D\u0018\u0005&d-\buhC\b\u00101\fr\u0018\u00053d\u00179PM\u00052!\u0001|GW\u001e`!\u000b8QW\u0005.0K\u00163!\u0017*H[\t\u0004+\u0006)L]\u00024\t\u00042@_\t2\u001677\u0016,NT\u0005#=#5ML\t2\t\u00042@_\t2\u000f{d\u00064@J\u001f%0X)U^Ax\fIMY=CK\u00182%\u0006(\u001f$\u0013!\u0017*H[\t`-\u0016|TV\u0000)'\u00002R]\bld\u00179UM\u001e.-\u000b;\u0001\r\\p%3!\u000b8HV\u000b`&\u0004?J\u0018\r50\r9OL\u0005#%\u00115NVL#,\u00040M]\u0002'!\u001d#%\u000b2NLL0%\u0017/D\u0018\u001f%6\u00135B]L) E:SW\u0001`\u0004bk[V\u0018\u00056\u00173S\u0018\u001e%7\n0WQ\u0002'd\u00169SN\u0005#!K\u001e\u0003+\u00100E\u0018\u0002/0E=E\\L0+\t5BAL4+E\u000br| zd%\u0003+\u00100E\u0018\u0002/0E,SW\u000f%7\u0016|R]\u001e6-\u00069\u0001O\u00054,E;NQ\b`c\u00133!\u0017*H[\t`,\u0004/\u0001V\u0003`3\u00168M\u0011#%\u000b2NLL0%\u0017/D\u0018\u001b3 \t 3!\u0017*H[\tn \f/@Z\u0000% 69SN\u0005#!!3VV\u0000/%\u0001/,\u0012!\u0011)SV\t$d\t5RLL/\"E/DJ\u001a)'\u0000|E]\u001f#6\f,UQ\u0003.d\u0011=S_\t47\u0019\t*\u0013=MQ\b`7\u0000.WQ\u000f%d\u00179PM\t30\u00008\u000b\u0013!\u0017*H[\t`-\u0001|L\u0003%\u000b2NLL$!\u00119SU\u0005.!E5G\u0018$\u0014\u00105\u000f\u0001Q\u001f`6\u0000-TQ\u001e% E:NJL%\"\u00039BL\u00056!E,NT\u0005#=EtLM\u00004-\u00150D\u0018\u00193!\u0017/\b\u0016\u00180+\t5BA<!0\r\u001eTQ\u0000$!\u0017\u001a@[\u0018/6\u001cP\u00036\u00008DV\u0018)%\t/\u0001\\\u0003`*\n(\u0001Y\u00194,\u00002UQ\u000f!0\u0000|@_\r)*\u0016(\u0001Y\u00029d\n:\u0001L\u0004%d\u0015.NN\u0005$!\u0017/\r\u0018\r37\u00101HV\u000b`%\u000b3OA\u0001/1\u0016\u0005(0\u0011,R\u00032!\u0016)57\u0000.\u0001\\\t.-\u00008\u0001Y\u000f#!\u0016/\u0001L\u0003`7\u0000.WQ\u000f%d\u00019R[\u001e)4\u00115NV\fIxJ/DJ\u001a)'\u0000b+\u000477\f0\u001d#%\u000b2NLL#,\u0000?J\u0018\n/6E5E\u0018\r37\u0000.UQ\u0003.\u0016#+\brM\u000f\u0018%'\rrR]\u001e6!\u0017rVK\u001f0\u001677\u00010hU\u001c/6\u0011\fSW\u00149\u0001\u000b=CT\t$\u000b0%\u0016/UP\u001e/1\u00024\u0003zkJ\u0004!*\n2\u000f{d\u00064@J\u001f%0X)U^Ax\u0002gj\n2!\b3U]L)4E5\u0007%\u00119VY\u0015`\u00136\u0018m\u0018\u001c2+\u001d%\u0001K\t22\f?D\u0018\u0002/0E,DJ\u0001)0\u00119E\u0018\u0003.d\u00114HKL0+\u0017(G9+\u0010|O]\t$d\u00113\u0001H\u001e/2\f8D\u0018\u001a!(\f8\u0001[\u001e% \u00002UQ\r,7E(N\u0018\u001f%!E(IQ\u001f`7\u0000.WQ\u000f%c\u0016|E]\u001f#6\f,UQ\u0003.\u001b\t*\u0013=MQ\b`7\u0000.WQ\u000f%d\u00179PM\t30\u00008\u0001\u0010N|{\u001d1M\u0018\u001a%6\u00165NVQbuKl\u0003\u0018\t.'\n8HV\u000b}f0\bg\u0015Tb{[V\u001d\u0007\u0014-(H/UA\u0000%7\r9DLL4=\u00159\u001c\u001a\u0018%<\u0011sYK\u0000bd\r.D^Qb\u000fgd\u00033S\u0018\u001f%6\u00135B]Lg".length();
                var1_4 = 70;
                var0_5 = -1;
lbl7:
                // 2 sources

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

                while (true) {
                    var5[var3_1++] = WsdlProxyServlet.b(v0, WsdlProxyServlet.b(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = "\u0018\n<\u0001cp\"K\u0007/\u0004*}(K\u0018=\u0013f\t\u0003\u001b:\u0007yC(\u0019\u001b";
                    var4_3 = "\u0018\n<\u0001cp\"K\u0007/\u0004*}(K\u0018=\u0013f\t\u0003\u001b:\u0007yC(\u0019\u001b".length();
                    var1_4 = 19;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 75;
                        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++] = WsdlProxyServlet.b(v0, WsdlProxyServlet.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;
            }
        }
        WsdlProxyServlet.b = var5;
        WsdlProxyServlet.PROPERTY_WSDL_IMPORT_PROXY = WsdlProxyServlet.b[86];
        WsdlProxyServlet.PROPERTY_WSSP_ATTACH = WsdlProxyServlet.b[85];
        WsdlProxyServlet.PARAM_ANONYMOUS = WsdlProxyServlet.b[89];
        WsdlProxyServlet.PROPERTY_CLEARTEXT = WsdlProxyServlet.b[43];
    }

    private static char[] b(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0xC);
        }
        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 -> 32;
                    case 1 -> 36;
                    case 2 -> 5;
                    case 3 -> 60;
                    case 4 -> 65;
                    case 5 -> 88;
                    default -> 12;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }

    class AmbiguousServiceException
    extends Exception {
        static final long serialVersionUID = 7991635244163085800L;

        AmbiguousServiceException(String string) {
            super(string);
        }
    }
}

