UNPKG

@flxbl-io/sfp

Version:

sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model

147 lines 14.9 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger")); const Table = require("cli-table"); const core_1 = require("@salesforce/core"); const GroupConsoleLogs_1 = __importDefault(require("./GroupConsoleLogs")); const TableConstants_1 = require("./TableConstants"); const markdown_table_ts_1 = require("markdown-table-ts"); const FileOutputHandler_1 = __importDefault(require("../outputs/FileOutputHandler")); class OrgInfoDisplayer { static printScratchOrgInfo(scratchOrg) { let groupSection = new GroupConsoleLogs_1.default(`Display Org Info`).begin(); sfp_logger_1.default.printHeaderLine('', sfp_logger_1.COLOR_HEADER, core_1.LoggerLevel.INFO); sfp_logger_1.default.log((0, sfp_logger_1.COLOR_KEY_VALUE)(`-- Org Details:--`)); const table = new Table({ chars: TableConstants_1.COLON_MIDDLE_BORDER_TABLE, style: { "padding-left": 2 }, }); table.push([(0, sfp_logger_1.COLOR_HEADER)(`Org Id`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(scratchOrg.orgId)]); table.push([ (0, sfp_logger_1.COLOR_HEADER)(`Login URL`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(scratchOrg.loginURL), ]); table.push([ (0, sfp_logger_1.COLOR_HEADER)(`Username`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(scratchOrg.username), ]); table.push([ (0, sfp_logger_1.COLOR_HEADER)(`Password`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(scratchOrg.password), ]); table.push([ (0, sfp_logger_1.COLOR_HEADER)(`Auth URL`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(scratchOrg.sfdxAuthUrl), ]); table.push([ (0, sfp_logger_1.COLOR_HEADER)(`Expiry`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(scratchOrg.expiryDate), ]); sfp_logger_1.default.log(table.toString(), core_1.LoggerLevel.INFO); sfp_logger_1.default.log((0, sfp_logger_1.COLOR_TRACE)(`You may use the following commands to authenticate to the org`), core_1.LoggerLevel.INFO); sfp_logger_1.default.log((0, sfp_logger_1.COLOR_TRACE)(`echo ${scratchOrg.sfdxAuthUrl} > ./authfile`), core_1.LoggerLevel.INFO); sfp_logger_1.default.log((0, sfp_logger_1.COLOR_TRACE)(`sf org login sfdx-url --sfdx-url-file=authfile`), core_1.LoggerLevel.INFO); sfp_logger_1.default.log((0, sfp_logger_1.COLOR_TRACE)(`sf org open --target-org=${scratchOrg.username}`), core_1.LoggerLevel.INFO); sfp_logger_1.default.printHeaderLine('', sfp_logger_1.COLOR_HEADER, core_1.LoggerLevel.INFO); groupSection.end(); } static writeScratchOrgInfoToMarkDown(scratchOrg) { const pathToMarkDownFile = `org-info.md`; const fileOutputHandler = FileOutputHandler_1.default.getInstance(); fileOutputHandler.writeOutput(pathToMarkDownFile, `\nPlease find the validation org details below`); let tableData = { table: { head: [ 'Org Info', '', ], body: [] }, alignment: [markdown_table_ts_1.Align.Left, markdown_table_ts_1.Align.Left, markdown_table_ts_1.Align.Left, markdown_table_ts_1.Align.Right], }; tableData.table.body.push([`Org Id`, scratchOrg.orgId]); tableData.table.body.push([`Login URL`, scratchOrg.loginURL]); tableData.table.body.push([`Username`, scratchOrg.username]); tableData.table.body.push([`Password`, scratchOrg.password]); tableData.table.body.push([`Expiry`, scratchOrg.expiryDate]); fileOutputHandler.appendOutput(pathToMarkDownFile, `\n\n${(0, markdown_table_ts_1.getMarkdownTable)(tableData)}`); fileOutputHandler.appendOutput(pathToMarkDownFile, `\n\nYou may use the following commands to authenticate to the org`); fileOutputHandler.appendOutput(pathToMarkDownFile, `\`\`\``); fileOutputHandler.appendOutput(pathToMarkDownFile, `echo ${scratchOrg.sfdxAuthUrl} > ./authfile`); fileOutputHandler.appendOutput(pathToMarkDownFile, `sf org login sfdx-url --sfdx-url-file=authfile`); fileOutputHandler.appendOutput(pathToMarkDownFile, `sf org open --target-org=${scratchOrg.username}`); fileOutputHandler.appendOutput(pathToMarkDownFile, `\`\`\``); } static printOrgInfo(org) { let groupSection = new GroupConsoleLogs_1.default(`Display Org Info`).begin(); sfp_logger_1.default.printHeaderLine('', sfp_logger_1.COLOR_HEADER, core_1.LoggerLevel.INFO); sfp_logger_1.default.log((0, sfp_logger_1.COLOR_KEY_VALUE)(`-- Org Details:--`)); const table = new Table({ chars: TableConstants_1.COLON_MIDDLE_BORDER_TABLE, style: { "padding-left": 2 }, }); table.push([(0, sfp_logger_1.COLOR_HEADER)(`Org Id`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(org.getOrgId())]); table.push([ (0, sfp_logger_1.COLOR_HEADER)(`Instance URL`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(org.getConnection().instanceUrl), ]); table.push([ (0, sfp_logger_1.COLOR_HEADER)(`Username`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(org.getUsername()), ]); table.push([ (0, sfp_logger_1.COLOR_HEADER)(`Front Door URL`), (0, sfp_logger_1.COLOR_KEY_MESSAGE)(org.getConnection().getAuthInfo().getOrgFrontDoorUrl()) ]); sfp_logger_1.default.log(table.toString(), core_1.LoggerLevel.INFO); sfp_logger_1.default.printHeaderLine('', sfp_logger_1.COLOR_HEADER, core_1.LoggerLevel.INFO); groupSection.end(); } static writeOrgInfoToMarkDown(org) { const pathToMarkDownFile = `org-info.md`; const fileOutputHandler = FileOutputHandler_1.default.getInstance(); fileOutputHandler.appendOutput(pathToMarkDownFile, `\nPlease find the validation org details below`); let tableData = { table: { head: [ 'Org Details', '', ], body: [] }, alignment: [markdown_table_ts_1.Align.Left, markdown_table_ts_1.Align.Left, markdown_table_ts_1.Align.Left, markdown_table_ts_1.Align.Right], }; tableData.table.body.push([`Org Id`, org.getOrgId()]); tableData.table.body.push([`Username`, org.getUsername()]); tableData.table.body.push([`Login to the org`, `[Click Here](${org.getConnection().getAuthInfo().getOrgFrontDoorUrl()})`]); fileOutputHandler.appendOutput(pathToMarkDownFile, `\n\n${(0, markdown_table_ts_1.getMarkdownTable)(tableData)}`); } } exports.default = OrgInfoDisplayer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JnSW5mb0Rpc3BsYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91aS9PcmdJbmZvRGlzcGxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRUFBZ0g7QUFFaEgsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ25DLDJDQUErQztBQUMvQywwRUFBa0Q7QUFDbEQscURBQTZEO0FBRTdELHlEQUE0RDtBQUU1RCxxRkFBNkQ7QUFFN0QsTUFBcUIsZ0JBQWdCO0lBRTVCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFzQjtRQUN0RCxJQUFJLFlBQVksR0FBRyxJQUFJLDBCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFcEUsb0JBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLHlCQUFZLEVBQUUsa0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxvQkFBUyxDQUFDLEdBQUcsQ0FBQyxJQUFBLDRCQUFlLEVBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDO1lBQ3RCLEtBQUssRUFBRSwwQ0FBeUI7WUFDaEMsS0FBSyxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRTtTQUM3QixDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBQSx5QkFBWSxFQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUEsOEJBQWlCLEVBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1QsSUFBQSx5QkFBWSxFQUFDLFdBQVcsQ0FBQztZQUN6QixJQUFBLDhCQUFpQixFQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDdkMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNULElBQUEseUJBQVksRUFBQyxVQUFVLENBQUM7WUFDeEIsSUFBQSw4QkFBaUIsRUFBQyxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFBLHlCQUFZLEVBQUMsVUFBVSxDQUFDO1lBQ3hCLElBQUEsOEJBQWlCLEVBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUN2QyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1QsSUFBQSx5QkFBWSxFQUFDLFVBQVUsQ0FBQztZQUN4QixJQUFBLDhCQUFpQixFQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7U0FDMUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNULElBQUEseUJBQVksRUFBQyxRQUFRLENBQUM7WUFDdEIsSUFBQSw4QkFBaUIsRUFBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUNILG9CQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxrQkFBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWxELG9CQUFTLENBQUMsR0FBRyxDQUNYLElBQUEsd0JBQVcsRUFDVCwrREFBK0QsQ0FDaEUsRUFDRCxrQkFBVyxDQUFDLElBQUksQ0FDakIsQ0FBQztRQUNGLG9CQUFTLENBQUMsR0FBRyxDQUNYLElBQUEsd0JBQVcsRUFBQyxRQUFRLFVBQVUsQ0FBQyxXQUFXLGVBQWUsQ0FBQyxFQUMxRCxrQkFBVyxDQUFDLElBQUksQ0FDakIsQ0FBQztRQUNGLG9CQUFTLENBQUMsR0FBRyxDQUNYLElBQUEsd0JBQVcsRUFBQyxnREFBZ0QsQ0FBQyxFQUM3RCxrQkFBVyxDQUFDLElBQUksQ0FDakIsQ0FBQztRQUNGLG9CQUFTLENBQUMsR0FBRyxDQUNYLElBQUEsd0JBQVcsRUFBQyw0QkFBNEIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzlELGtCQUFXLENBQUMsSUFBSSxDQUNqQixDQUFDO1FBRUYsb0JBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLHlCQUFZLEVBQUUsa0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUs5RCxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxVQUFzQjtRQUNoRSxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQztRQUN6QyxNQUFNLGlCQUFpQixHQUFHLDJCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFELGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxnREFBZ0QsQ0FBQyxDQUFDO1FBQ3BHLElBQUksU0FBUyxHQUFHO1lBQ2QsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRTtvQkFDSixVQUFVO29CQUNWLEVBQUU7aUJBQ0g7Z0JBQ0QsSUFBSSxFQUFFLEVBQUU7YUFDVDtZQUNELFNBQVMsRUFBRSxDQUFDLHlCQUFLLENBQUMsSUFBSSxFQUFFLHlCQUFLLENBQUMsSUFBSSxFQUFFLHlCQUFLLENBQUMsSUFBSSxFQUFFLHlCQUFLLENBQUMsS0FBSyxDQUFDO1NBQzdELENBQUM7UUFDRixTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEQsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlELFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM3RCxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDN0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzdELGlCQUFpQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLElBQUEsb0NBQWdCLEVBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFDL0MsbUVBQW1FLENBQUUsQ0FBQztRQUN4RSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0QsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsVUFBVSxDQUFDLFdBQVcsZUFBZSxDQUFDLENBQUM7UUFDbEcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLGdEQUFnRCxDQUFDLENBQUM7UUFDckcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLDRCQUE0QixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN0RyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFL0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBVztRQUNwQyxJQUFJLFlBQVksR0FBRyxJQUFJLDBCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFcEUsb0JBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLHlCQUFZLEVBQUUsa0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxvQkFBUyxDQUFDLEdBQUcsQ0FBQyxJQUFBLDRCQUFlLEVBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDO1lBQ3RCLEtBQUssRUFBRSwwQ0FBeUI7WUFDaEMsS0FBSyxFQUFFLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRTtTQUM3QixDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBQSx5QkFBWSxFQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUEsOEJBQWlCLEVBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDVCxJQUFBLHlCQUFZLEVBQUMsY0FBYyxDQUFDO1lBQzVCLElBQUEsOEJBQWlCLEVBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLFdBQVcsQ0FBQztTQUNuRCxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1QsSUFBQSx5QkFBWSxFQUFDLFVBQVUsQ0FBQztZQUN4QixJQUFBLDhCQUFpQixFQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNyQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1QsSUFBQSx5QkFBWSxFQUFDLGdCQUFnQixDQUFDO1lBQzlCLElBQUEsOEJBQWlCLEVBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDMUUsQ0FBQyxDQUFDO1FBQ0gsb0JBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLGtCQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFJbEQsb0JBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLHlCQUFZLEVBQUUsa0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5RCxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxHQUFXO1FBQzlDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDO1FBQ3pDLE1BQU0saUJBQWlCLEdBQUcsMkJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUQsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLGdEQUFnRCxDQUFDLENBQUM7UUFDckcsSUFBSSxTQUFTLEdBQUc7WUFDZCxLQUFLLEVBQUU7Z0JBQ0gsSUFBSSxFQUFHO29CQUNILGFBQWE7b0JBQ2IsRUFBRTtpQkFDTDtnQkFDRCxJQUFJLEVBQUUsRUFBRTthQUNYO1lBQ0QsU0FBUyxFQUFFLENBQUMseUJBQUssQ0FBQyxJQUFJLEVBQUUseUJBQUssQ0FBQyxJQUFJLEVBQUUseUJBQUssQ0FBQyxJQUFJLEVBQUMseUJBQUssQ0FBQyxLQUFLLENBQUM7U0FDOUQsQ0FBQztRQUNBLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGtCQUFrQixFQUFFLGdCQUFnQixHQUFHLENBQUMsYUFBYSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzSCxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxJQUFBLG9DQUFnQixFQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUzRixDQUFDO0NBRUY7QUFoSkQsbUNBZ0pDIn0=