diff --git a/dist/export-notebook.d.ts b/dist/export-notebook.d.ts index 81c72d095..2cc0329ba 100644 --- a/dist/export-notebook.d.ts +++ b/dist/export-notebook.d.ts @@ -1 +1 @@ -export default function exportNotebook(): void; +export declare function exportNotebook(): Promise; diff --git a/dist/export-notebook.js b/dist/export-notebook.js index 634371786..850c3f7d1 100644 --- a/dist/export-notebook.js +++ b/dist/export-notebook.js @@ -22,33 +22,45 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); +exports.exportNotebook = void 0; const path = __importStar(require("path")); const fs_1 = require("fs"); +const { writeFile } = fs_1.promises; const electron_1 = require("electron"); const { dialog } = electron_1.remote; const commutable_1 = require("@nteract/commutable"); const store_1 = __importDefault(require("./store")); -function exportNotebook() { - const saveNotebook = function (filename) { - if (!filename) { - return; - } - const ext = path.extname(filename) === "" ? ".ipynb" : ""; - const fname = `${filename}${ext}`; - fs_1.writeFile(fname, commutable_1.stringifyNotebook(store_1.default.notebook), (err) => { - if (err) { - atom.notifications.addError("Error saving file", { - detail: err.message, - }); - } - else { - atom.notifications.addSuccess("Save successful", { - detail: `Saved notebook as ${fname}`, - }); - } +async function exportNotebook() { + const editor = atom.workspace.getActiveTextEditor(); + const editorPath = editor.getPath(); + const directory = path.dirname(editorPath); + const rawFileName = path.basename(editorPath, path.extname(editorPath)); + const noteBookPath = path.join(directory, `${rawFileName}.ipynb`); + const { canceled, filePath } = await dialog.showSaveDialog({ + title: editor.getTitle(), + defaultPath: noteBookPath, + }); + if (!canceled) { + await saveNoteBook(filePath); + } +} +exports.exportNotebook = exportNotebook; +async function saveNoteBook(filePath) { + if (filePath.length === 0) { + return; + } + const ext = path.extname(filePath) === "" ? ".ipynb" : ""; + const fname = `${filePath}${ext}`; + try { + await writeFile(fname, commutable_1.stringifyNotebook(store_1.default.notebook)); + atom.notifications.addSuccess("Save successful", { + detail: `Saved notebook as ${fname}`, + }); + } + catch (err) { + atom.notifications.addError("Error saving file", { + detail: err.message, }); - }; - dialog.showSaveDialog(saveNotebook); + } } -exports.default = exportNotebook; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LW5vdGVib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2V4cG9ydC1ub3RlYm9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsMkJBQStCO0FBQy9CLHVDQUFrQztBQUNsQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsaUJBQU0sQ0FBQztBQUUxQixvREFBd0Q7QUFFeEQsb0RBQTRCO0FBQzVCLFNBQXdCLGNBQWM7SUFFcEMsTUFBTSxZQUFZLEdBQUcsVUFBVSxRQUFRO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixPQUFPO1NBQ1I7UUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDbEMsY0FBUyxDQUFDLEtBQUssRUFBRSw4QkFBaUIsQ0FBQyxlQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMxRCxJQUFJLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRTtvQkFDL0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxPQUFPO2lCQUNwQixDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRTtvQkFDL0MsTUFBTSxFQUFFLHFCQUFxQixLQUFLLEVBQUU7aUJBQ3JDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUF2QkQsaUNBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgd3JpdGVGaWxlIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgeyByZW1vdGUgfSBmcm9tIFwiZWxlY3Ryb25cIjtcbmNvbnN0IHsgZGlhbG9nIH0gPSByZW1vdGU7XG5cbmltcG9ydCB7IHN0cmluZ2lmeU5vdGVib29rIH0gZnJvbSBcIkBudGVyYWN0L2NvbW11dGFibGVcIjtcblxuaW1wb3J0IHN0b3JlIGZyb20gXCIuL3N0b3JlXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBleHBvcnROb3RlYm9vaygpIHtcbiAgLy8gVE9ETzogUmVmYWN0b3IgdG8gdXNlIHByb21pc2VzLCB0aGlzIGlzIGEgYml0IFwibmVzdGVkXCIuXG4gIGNvbnN0IHNhdmVOb3RlYm9vayA9IGZ1bmN0aW9uIChmaWxlbmFtZSkge1xuICAgIGlmICghZmlsZW5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleHQgPSBwYXRoLmV4dG5hbWUoZmlsZW5hbWUpID09PSBcIlwiID8gXCIuaXB5bmJcIiA6IFwiXCI7XG4gICAgY29uc3QgZm5hbWUgPSBgJHtmaWxlbmFtZX0ke2V4dH1gO1xuICAgIHdyaXRlRmlsZShmbmFtZSwgc3RyaW5naWZ5Tm90ZWJvb2soc3RvcmUubm90ZWJvb2spLCAoZXJyKSA9PiB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRFcnJvcihcIkVycm9yIHNhdmluZyBmaWxlXCIsIHtcbiAgICAgICAgICBkZXRhaWw6IGVyci5tZXNzYWdlLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRTdWNjZXNzKFwiU2F2ZSBzdWNjZXNzZnVsXCIsIHtcbiAgICAgICAgICBkZXRhaWw6IGBTYXZlZCBub3RlYm9vayBhcyAke2ZuYW1lfWAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICAvLyBUT0RPIHRoaXMgQVBJIGlzIHByb21pc2lmaWVkIC0+IHNob3VsZCBiZSBmaXhlZFxuICBkaWFsb2cuc2hvd1NhdmVEaWFsb2coc2F2ZU5vdGVib29rKTtcbn1cbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LW5vdGVib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vbGliL2V4cG9ydC1ub3RlYm9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBQzdCLDJCQUE4QjtBQUM5QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsYUFBUSxDQUFDO0FBQy9CLHVDQUFrQztBQUNsQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsaUJBQU0sQ0FBQztBQUUxQixvREFBd0Q7QUFFeEQsb0RBQTRCO0FBQ3JCLEtBQUssVUFBVSxjQUFjO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNwRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDeEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxXQUFXLFFBQVEsQ0FBQyxDQUFDO0lBRWxFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQ3pELEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ3hCLFdBQVcsRUFBRSxZQUFZO0tBQzFCLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDYixNQUFNLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUM5QjtBQUNILENBQUM7QUFkRCx3Q0FjQztBQUVELEtBQUssVUFBVSxZQUFZLENBQUMsUUFBZ0I7SUFDMUMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN6QixPQUFPO0tBQ1I7SUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFFbEMsSUFBSTtRQUNGLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSw4QkFBaUIsQ0FBQyxlQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRTtZQUMvQyxNQUFNLEVBQUUscUJBQXFCLEtBQUssRUFBRTtTQUNyQyxDQUFDLENBQUM7S0FDSjtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUU7WUFDL0MsTUFBTSxFQUFFLEdBQUcsQ0FBQyxPQUFPO1NBQ3BCLENBQUMsQ0FBQztLQUNKO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcclxuaW1wb3J0IHsgcHJvbWlzZXMgfSBmcm9tIFwiZnNcIjtcclxuY29uc3QgeyB3cml0ZUZpbGUgfSA9IHByb21pc2VzO1xyXG5pbXBvcnQgeyByZW1vdGUgfSBmcm9tIFwiZWxlY3Ryb25cIjtcclxuY29uc3QgeyBkaWFsb2cgfSA9IHJlbW90ZTtcclxuXHJcbmltcG9ydCB7IHN0cmluZ2lmeU5vdGVib29rIH0gZnJvbSBcIkBudGVyYWN0L2NvbW11dGFibGVcIjtcclxuXHJcbmltcG9ydCBzdG9yZSBmcm9tIFwiLi9zdG9yZVwiO1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhwb3J0Tm90ZWJvb2soKSB7XHJcbiAgY29uc3QgZWRpdG9yID0gYXRvbS53b3Jrc3BhY2UuZ2V0QWN0aXZlVGV4dEVkaXRvcigpO1xyXG4gIGNvbnN0IGVkaXRvclBhdGggPSBlZGl0b3IuZ2V0UGF0aCgpO1xyXG4gIGNvbnN0IGRpcmVjdG9yeSA9IHBhdGguZGlybmFtZShlZGl0b3JQYXRoKTtcclxuICBjb25zdCByYXdGaWxlTmFtZSA9IHBhdGguYmFzZW5hbWUoZWRpdG9yUGF0aCwgcGF0aC5leHRuYW1lKGVkaXRvclBhdGgpKTtcclxuICBjb25zdCBub3RlQm9va1BhdGggPSBwYXRoLmpvaW4oZGlyZWN0b3J5LCBgJHtyYXdGaWxlTmFtZX0uaXB5bmJgKTtcclxuXHJcbiAgY29uc3QgeyBjYW5jZWxlZCwgZmlsZVBhdGggfSA9IGF3YWl0IGRpYWxvZy5zaG93U2F2ZURpYWxvZyh7XHJcbiAgICB0aXRsZTogZWRpdG9yLmdldFRpdGxlKCksXHJcbiAgICBkZWZhdWx0UGF0aDogbm90ZUJvb2tQYXRoLFxyXG4gIH0pO1xyXG4gIGlmICghY2FuY2VsZWQpIHtcclxuICAgIGF3YWl0IHNhdmVOb3RlQm9vayhmaWxlUGF0aCk7XHJcbiAgfVxyXG59XHJcblxyXG5hc3luYyBmdW5jdGlvbiBzYXZlTm90ZUJvb2soZmlsZVBhdGg6IHN0cmluZykge1xyXG4gIGlmIChmaWxlUGF0aC5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgLy8gYWRkIGRlZmF1bHQgZXh0ZW5zaW9uXHJcbiAgY29uc3QgZXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKSA9PT0gXCJcIiA/IFwiLmlweW5iXCIgOiBcIlwiO1xyXG4gIGNvbnN0IGZuYW1lID0gYCR7ZmlsZVBhdGh9JHtleHR9YDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGF3YWl0IHdyaXRlRmlsZShmbmFtZSwgc3RyaW5naWZ5Tm90ZWJvb2soc3RvcmUubm90ZWJvb2spKTtcclxuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRTdWNjZXNzKFwiU2F2ZSBzdWNjZXNzZnVsXCIsIHtcclxuICAgICAgZGV0YWlsOiBgU2F2ZWQgbm90ZWJvb2sgYXMgJHtmbmFtZX1gLFxyXG4gICAgfSk7XHJcbiAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkRXJyb3IoXCJFcnJvciBzYXZpbmcgZmlsZVwiLCB7XHJcbiAgICAgIGRldGFpbDogZXJyLm1lc3NhZ2UsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/dist/main.js b/dist/main.js index 3f4dbaac9..a7d88cd47 100644 --- a/dist/main.js +++ b/dist/main.js @@ -45,7 +45,7 @@ const commands = __importStar(require("./commands")); const codeManager = __importStar(require("./code-manager")); const result = __importStar(require("./result")); const utils_1 = require("./utils"); -const export_notebook_1 = __importDefault(require("./export-notebook")); +const export_notebook_1 = require("./export-notebook"); const import_notebook_1 = require("./import-notebook"); exports.config = config_1.default.schema; let emitter; @@ -121,7 +121,7 @@ function activate() { command: "shutdown-kernel", }, store_1.default), "hydrogen:clear-result": () => result.clearResult(store_1.default), - "hydrogen:export-notebook": () => export_notebook_1.default(), + "hydrogen:export-notebook": () => export_notebook_1.exportNotebook(), "hydrogen:fold-current-cell": () => foldCurrentCell(), "hydrogen:fold-all-but-current-cell": () => foldAllButCurrentCell(), "hydrogen:clear-results": () => result.clearResults(store_1.default), @@ -451,4 +451,4 @@ function checkForKernel({ editor, grammar, filePath, kernel, }, callback) { } kernel_manager_1.default.startKernelFor(grammar, editor, filePath, (newKernel) => callback(newKernel)); } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFPYztBQUVkLG9EQUF1QjtBQUN2QiwrQkFBK0I7QUFFL0Isa0VBQThDO0FBQzlDLDhEQUEwQztBQUMxQyxzRUFBNkM7QUFDN0MsNEVBQXVEO0FBQ3ZELHNEQUE4QjtBQUM5Qiw4REFBcUM7QUFDckMsNERBQW1DO0FBQ25DLHNEQUE4QjtBQUM5QixvRUFBMkM7QUFDM0MsMEVBQWdEO0FBQ2hELHNGQUE0RDtBQUM1RCx1RkFBOEQ7QUFDOUQsb0RBQWtEO0FBQ2xELHNFQUE2QztBQUM3QywwREFBa0M7QUFDbEMscURBQXVDO0FBQ3ZDLDREQUE4QztBQUM5QyxpREFBbUM7QUFFbkMsbUNBV2lCO0FBQ2pCLHdFQUErQztBQUMvQyx1REFBZ0U7QUFHbkQsUUFBQSxNQUFNLEdBQUcsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7QUFDcEMsSUFBSSxPQUFpRSxDQUFDO0FBQ3RFLElBQUksWUFBc0MsQ0FBQztBQUMzQyxJQUFJLG9CQUFzRCxDQUFDO0FBQzNELElBQUksY0FBMEMsQ0FBQztBQUMvQyxJQUFJLGdCQUE4QyxDQUFDO0FBRW5ELFNBQWdCLFFBQVE7SUFDdEIsT0FBTyxHQUFHLElBQUksY0FBTyxFQUFFLENBQUM7SUFDeEIsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7SUFDdkMsZUFBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUNyQiwyQkFBMkIsRUFDM0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1FBQ3pCLElBQUksMEJBQTBCLEVBQUU7WUFDOUIsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO1lBQ25DLE9BQU87U0FDUjtRQUVELElBQUksZUFBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUks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Q0osQ0FBQztBQUdELFNBQVMsY0FBYyxDQUNyQixFQUNFLE1BQU0sRUFDTixPQUFPLEVBQ1AsUUFBUSxFQUNSLE1BQU0sR0FNUCxFQUNELFFBQWtDO0lBRWxDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDekIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FDaEMsOEdBQThHLENBQy9HLENBQUM7S0FDSDtJQUVELElBQUksTUFBTSxFQUFFO1FBQ1YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pCLE9BQU87S0FDUjtJQUVELHdCQUFhLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQzVFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbWl0dGVyLFxuICBDb21wb3NpdGVEaXNwb3NhYmxlLFxuICBEaXNwb3NhYmxlLFxuICBQb2ludCxcbiAgVGV4dEVkaXRvcixcbiAgR3JhbW1hcixcbn0gZnJvbSBcImF0b21cIjtcbmltcG9ydCB7IFN0YXR1c0JhciB9IGZyb20gXCJhdG9tL3N0YXR1cy1iYXJcIjtcbmltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7IGF1dG9ydW4gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEluc3BlY3RvclBhbmUgZnJvbSBcIi4vcGFuZXMvaW5zcGVjdG9yXCI7XG5pbXBvcnQgV2F0Y2hlc1BhbmUgZnJvbSBcIi4vcGFuZXMvd2F0Y2hlc1wiO1xuaW1wb3J0IE91dHB1dFBhbmUgZnJvbSBcIi4vcGFuZXMvb3V0cHV0LWFyZWFcIjtcbmltcG9ydCBLZXJuZWxNb25pdG9yUGFuZSBmcm9tIFwiLi9wYW5lcy9rZXJuZWwtbW9uaXRvclwiO1xuaW1wb3J0IENvbmZpZyBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCBaTVFLZXJuZWwgZnJvbSBcIi4vem1xLWtlcm5lbFwiO1xuaW1wb3J0IFdTS2VybmVsIGZyb20gXCIuL3dzLWtlcm5lbFwiO1xuaW1wb3J0IEtlcm5lbCBmcm9tIFwiLi9rZXJuZWxcIjtcbmltcG9ydCBLZXJuZWxQaWNrZXIgZnJvbSBcIi4va2VybmVsLXBpY2tlclwiO1xuaW1wb3J0IFdTS2VybmVsUGlja2VyIGZyb20gXCIuL3dzLWtlcm5lbC1waWNrZXJcIjtcbmltcG9ydCBFeGlzdGluZ0tlcm5lbFBpY2tlciBmcm9tIFwiLi9leGlzdGluZy1rZXJuZWwtcGlja2VyXCI7XG5pbXBvcnQgSHlkcm9nZW5Qcm92aWRlciBmcm9tIFwiLi9wbHVnaW4tYXBpL2h5ZHJvZ2VuLXByb3ZpZGVyXCI7XG5pbXBvcnQgc3RvcmUsIHsgU3RvcmUsIFN0b3JlTGlrZSB9IGZyb20gXCIuL3N0b3JlXCI7XG5pbXBvcnQga2VybmVsTWFuYWdlciBmcm9tIFwiLi9rZXJuZWwtbWFuYWdlclwiO1xuaW1wb3J0IHNlcnZpY2VzIGZyb20gXCIuL3NlcnZpY2VzXCI7XG5pbXBvcnQgKiBhcyBjb21tYW5kcyBmcm9tIFwiLi9jb21tYW5kc1wiO1xuaW1wb3J0ICogYXMgY29kZU1hbmFnZXIgZnJvbSBcIi4vY29kZS1tYW5hZ2VyXCI7XG5pbXBvcnQgKiBhcyByZXN1bHQgZnJvbSBcIi4vcmVzdWx0XCI7XG5pbXBvcnQgdHlwZSBNYXJrZXJTdG9yZSBmcm9tIFwiLi9zdG9yZS9tYXJrZXJzXCI7XG5pbXBvcnQge1xuICBsb2csXG4gIHJlYWN0RmFjdG9yeSxcbiAgaXNNdWx0aWxhbmd1YWdlR3JhbW1hcixcbiAgSU5TUEVDVE9SX1VSSSxcbiAgV0FUQ0hFU19VUkksXG4gIE9VVFBVVF9BUkVBX1VSSSxcbiAgS0VSTkVMX01PTklUT1JfVVJJLFxuICBob3RSZWxvYWRQYWNrYWdlLFxuICBvcGVuT3JTaG93RG9jayxcbiAga2VybmVsU3BlY1Byb3ZpZGVzR3JhbW1hcixcbn0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCBleHBvcnROb3RlYm9vayBmcm9tIFwiLi9leHBvcnQtbm90ZWJvb2tcIjtcbmltcG9ydCB7IGltcG9ydE5vdGVib29rLCBpcHluYk9wZW5lciB9IGZyb20gXCIuL2ltcG9ydC1ub3RlYm9va1wiO1xuaW1wb3J0IHR5cGUgeyBLZXJuZWxzcGVjTWV0YWRhdGEgfSBmcm9tIFwiQG50ZXJhY3QvdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IENvbmZpZy5zY2hlbWE7XG5sZXQgZW1pdHRlcjogRW1pdHRlcjx7fSwgeyBcImRpZC1jaGFuZ2Uta2VybmVsXCI6IEtlcm5lbCB9PiB8IHVuZGVmaW5lZDtcbmxldCBrZXJuZWxQaWNrZXI6IEtlcm5lbFBpY2tlciB8IHVuZGVmaW5lZDtcbmxldCBleGlzdGluZ0tlcm5lbFBpY2tlcjogRXhpc3RpbmdLZXJuZWxQaWNrZXIgfCB1bmRlZmluZWQ7XG5sZXQgd3NLZXJuZWxQaWNrZXI6IFdTS2VybmVsUGlja2VyIHwgdW5kZWZpbmVkO1xubGV0IGh5ZHJvZ2VuUHJvdmlkZXI6IEh5ZHJvZ2VuUHJvdmlkZXIgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3RpdmF0ZSgpIHtcbiAgZW1pdHRlciA9IG5ldyBFbWl0dGVyKCk7XG4gIGxldCBza2lwTGFuZ3VhZ2VNYXBwaW5nc0NoYW5nZSA9IGZhbHNlO1xuICBzdG9yZS5zdWJzY3JpcHRpb25zLmFkZChcbiAgICBhdG9tLmNvbmZpZy5vbkRpZENoYW5nZShcbiAgICAgIFwiSHlkcm9nZW4ubGFuZ3VhZ2VNYXBwaW5nc1wiLFxuICAgICAgKHsgbmV3VmFsdWUsIG9sZFZhbHVlIH0pID0+IHtcbiAgICAgICAgaWYgKHNraXBMYW5ndWFnZU1hcHBpbmdzQ2hhbmdlKSB7XG4gICAgICAgICAgc2tpcExhbmd1YWdlTWFwcGluZ3NDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RvcmUucnVubmluZ0tlcm5lbHMubGVuZ3RoICE9IDApIHtcbiAgICAgICAgICBza2lwTGFuZ3VhZ2VNYXBwaW5nc0NoYW5nZSA9IHRydWU7XG4gICAgICAgICAgYXRvbS5jb25maWcuc2V0KFwiSHlkcm9nZW4ubGFuZ3VhZ2VNYXBwaW5nc1wiLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEVycm9yKFwiSHlkcm9nZW5cIiwge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIFwiYGxhbmd1YWdlTWFwcGluZ3NgIGNhbm5vdCBiZSB1cGRhdGVkIHdoaWxlIGtlcm5lbHMgYXJlIHJ1bm5pbmdcIixcbiAgICAgICAgICAgIGRpc21pc3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIClcbiAgKTtcbiAgc3RvcmUuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgYXRvbS5jb25maWcub2JzZXJ2ZShcIkh5ZHJvZ2VuLnN0YXR1c0JhckRpc2FibGVcIiwgKG5ld1ZhbHVlKSA9PiB7XG4gICAgICBzdG9yZS5zZXRDb25maWdWYWx1ZShcIkh5ZHJvZ2VuLnN0YXR1c0JhckRpc2FibGVcIiwgQm9vbGVhbihuZXdWYWx1ZSkpO1xuICAgIH0pLFxuICAgIGF0b20uY29uZmlnLm9ic2VydmUoXCJIeWRyb2dlbi5zdGF0dXNCYXJLZXJuZWxJbmZvXCIsIChuZXdWYWx1ZSkgPT4ge1xuICAgICAgc3RvcmUuc2V0Q29uZmlnVmFsdWUoXCJIeWRyb2dlbi5zdGF0dXNCYXJLZXJuZWxJbmZvXCIsIEJvb2xlYW4obmV3VmFsdWUpKTtcbiAgICB9KVxuICApO1xuICBzdG9yZS5zdWJzY3JpcHRpb25zLmFkZChcbiAgICBhdG9tLmNvbW1hbmRzLmFkZDxcImF0b20tdGV4dC1lZGl0b3I6bm90KFttaW5pXSlcIj4oXG4gICAgICBcImF0b20tdGV4dC1lZGl0b3I6bm90KFttaW5pXSlcIixcbiAgICAgIHtcbiAgICAgICAgXCJoeWRyb2dlbjpydW5cIjogKCkgPT4gcnVuKCksXG4gICAgICAgIFwiaHlkcm9nZW46cnVuLWFsbFwiOiAoKSA9PiBydW5BbGwoKSxcbiAgICAgICAgXCJoeWRyb2dlbjpydW4tYWxsLWFib3ZlXCI6ICgpID0+IHJ1bkFsbEFib3ZlKCksXG4gICAgICAgIFwiaHlkcm9nZW46cnVuLWFuZC1tb3ZlLWRvd25cIjogKCkgPT4gcnVuKHRydWUpLFxuICAgICAgICBcImh5ZHJvZ2VuOnJ1bi1jZWxsXCI6ICgpID0+IHJ1bkNlbGwoKSxcbiAgICAgICAgXCJoeWRyb2dlbjpydW4tY2VsbC1hbmQtbW92ZS1kb3duXCI6ICgpID0+IHJ1bkNlbGwodHJ1ZSksXG4gICAgICAgIFwiaHlkcm9nZW46dG9nZ2xlLXdhdGNoZXNcIjogKCkgPT4gYXRvbS53b3Jrc3BhY2UudG9nZ2xlKFdBVENIRVNfVVJJKSxcbiAgICAgICAgXCJoeWRyb2dlbjp0b2dnbGUtb3V0cHV0LWFyZWFcIjogKCkgPT4gY29tbWFuZHMudG9nZ2xlT3V0cHV0TW9kZSgpLFxuICAgICAgICBcImh5ZHJvZ2VuOnRvZ2dsZS1rZXJuZWwtbW9uaXRvclwiOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSBhdG9tLndvcmtzcGFjZS5nZXRBY3RpdmVQYW5lSXRlbSgpO1xuICAgICAgICAgIGNvbnN0IGxhc3RQYW5lID0gYXRvbS53b3Jrc3BhY2UucGFuZUZvckl0ZW0obGFzdEl0ZW0pO1xuICAgICAgICAgIGF3YWl0IGF0b20ud29ya3NwYWNlLnRvZ2dsZShLRVJORUxfTU9OSVRPUl9VUkkpO1xuICAgICAgICAgIGlmIChsYXN0UGFuZSkge1xuICAgICAgICAgICAgbGFzdFBhbmUuYWN0aXZhdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiaHlkcm9nZW46c3RhcnQtbG9jYWwta2VybmVsXCI6ICgpID0+IHN0YXJ0Wk1RS2VybmVsKCksXG4gICAgICAgIFwiaHlkcm9nZW46Y29ubmVjdC10by1yZW1vdGUta2VybmVsXCI6ICgpID0+IGNvbm5lY3RUb1dTS2VybmVsKCksXG4gICAgICAgIFwiaHlkcm9nZW46Y29ubmVjdC10by1leGlzdGluZy1rZXJuZWxcIjogKCkgPT4gY29ubmVjdFRvRXhpc3RpbmdLZXJuZWwoKSxcbiAgICAgICAgXCJoeWRyb2dlbjphZGQtd2F0Y2hcIjogKCkgPT4ge1xuICAgICAgICAgIGlmIChzdG9yZS5rZXJuZWwpIHtcbiAgICAgICAgICAgIHN0b3JlLmtlcm5lbC53YXRjaGVzU3RvcmUuYWRkV2F0Y2hGcm9tRWRpdG9yKHN0b3JlLmVkaXRvcik7XG4gICAgICAgICAgICBvcGVuT3JTaG93RG9jayhXQVRDSEVTX1VSSSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBcImh5ZHJvZ2VuOnJlbW92ZS13YXRjaFwiOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKHN0b3JlLmtlcm5lbCkge1xuICAgICAgICAgICAgc3RvcmUua2VybmVsLndhdGNoZXNTdG9yZS5yZW1vdmVXYXRjaCgpO1xuICAgICAgICAgICAgb3Blbk9yU2hvd0RvY2soV0FUQ0hFU19VUkkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJoeWRyb2dlbjp1cGRhdGUta2VybmVsc1wiOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQga2VybmVsTWFuYWdlci51cGRhdGVLZXJuZWxTcGVjcygpO1xuICAgICAgICB9LFxuICAgICAgICBcImh5ZHJvZ2VuOnRvZ2dsZS1pbnNwZWN0b3JcIjogKCkgPT4gY29tbWFuZHMudG9nZ2xlSW5zcGVjdG9yKHN0b3JlKSxcbiAgICAgICAgXCJoeWRyb2dlbjppbnRlcnJ1cHQta2VybmVsXCI6ICgpID0+XG4gICAgICAgICAgaGFuZGxlS2VybmVsQ29tbWFuZChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY29tbWFuZDogXCJpbnRlcnJ1cHQta2VybmVsXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RvcmVcbiAgICAgICAgICApLFxuICAgICAgICBcImh5ZHJvZ2VuOnJlc3RhcnQta2VybmVsXCI6ICgpID0+XG4gICAgICAgICAgaGFuZGxlS2VybmVsQ29tbWFuZChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY29tbWFuZDogXCJyZXN0YXJ0LWtlcm5lbFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0b3JlXG4gICAgICAgICAgKSxcbiAgICAgICAgXCJoeWRyb2dlbjpzaHV0ZG93bi1rZXJuZWxcIjogKCkgPT5cbiAgICAgICAgICBoYW5kbGVLZXJuZWxDb21tYW5kKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb21tYW5kOiBcInNodXRkb3duLWtlcm5lbFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0b3JlXG4gICAgICAgICAgKSxcbiAgICAgICAgXCJoeWRyb2dlbjpjbGVhci1yZXN1bHRcIjogKCkgPT4gcmVzdWx0LmNsZWFyUmVzdWx0KHN0b3JlKSxcbiAgICAgICAgXCJoeWRyb2dlbjpleHBvcnQtbm90ZWJvb2tcIjogKCkgPT4gZXhwb3J0Tm90ZWJvb2soKSxcbiAgICAgICAgXCJoeWRyb2dlbjpmb2xkLWN1cnJlbnQtY2VsbFwiOiAoKSA9PiBmb2xkQ3VycmVudENlbGwoKSxcbiAgICAgICAgXCJoeWRyb2dlbjpmb2xkLWFsbC1idXQtY3VycmVudC1jZWxsXCI6ICgpID0+IGZvbGRBbGxCdXRDdXJyZW50Q2VsbCgpLFxuICAgICAgICBcImh5ZHJvZ2VuOmNsZWFyLXJlc3VsdHNcIjogKCkgPT4gcmVzdWx0LmNsZWFyUmVzdWx0cyhzdG9yZSksXG4gICAgICB9XG4gICAgKVxuICApO1xuICBzdG9yZS5zdWJzY3JpcHRpb25zLmFkZChcbiAgICBhdG9tLmNvbW1hbmRzLmFkZChcImF0b20td29ya3NwYWNlXCIsIHtcbiAgICAgIFwiaHlkcm9nZW46aW1wb3J0LW5vdGVib29rXCI6IGltcG9ydE5vdGVib29rLFxuICAgIH0pXG4gICk7XG5cbiAgaWYgKGF0b20uaW5EZXZNb2RlKCkpIHtcbiAgICBzdG9yZS5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIGF0b20uY29tbWFuZHMuYWRkKFwiYXRvbS13b3Jrc3BhY2VcIiwge1xuICAgICAgICBcImh5ZHJvZ2VuOmhvdC1yZWxvYWQtcGFja2FnZVwiOiAoKSA9PiBob3RSZWxvYWRQYWNrYWdlKCksXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzdG9yZS5zdWJzY3JpcHRpb25zLmFkZChcbiAgICBhdG9tLndvcmtzcGFjZS5vYnNlcnZlQWN0aXZlVGV4dEVkaXRvcigoZWRpdG9yKSA9PiB7XG4gICAgICBzdG9yZS51cGRhdGVFZGl0b3IoZWRpdG9yKTtcbiAgICB9KVxuICApO1xuICBzdG9yZS5zdWJzY3JpcHRpb25zLmFkZChcbiAgICBhdG9tLndvcmtzcGFjZS5vYnNlcnZlVGV4dEVkaXRvcnMoKGVkaXRvcikgPT4ge1xuICAgICAgY29uc3QgZWRpdG9yU3Vic2NyaXB0aW9ucyA9IG5ldyBDb21wb3NpdGVEaXNwb3NhYmxlKCk7XG4gICAgICBlZGl0b3JTdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZWRpdG9yLm9uRGlkQ2hhbmdlR3JhbW1hcigoKSA9PiB7XG4gICAgICAgICAgc3RvcmUuc2V0R3JhbW1hcihlZGl0b3IpO1xuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgaWYgKGlzTXVsdGlsYW5ndWFnZUdyYW1tYXIoZWRpdG9yLmdldEdyYW1tYXIoKSkpIHtcbiAgICAgICAgZWRpdG9yU3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgZWRpdG9yLm9uRGlkQ2hhbmdlQ3Vyc29yUG9zaXRpb24oXG4gICAgICAgICAgICBfLmRlYm91bmNlKCgpID0+IHtcbiAgICAgICAgICAgICAgc3RvcmUuc2V0R3JhbW1hcihlZGl0b3IpO1xuICAgICAgICAgICAgfSwgNzUpXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBlZGl0b3JTdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgZWRpdG9yLm9uRGlkRGVzdHJveSgoKSA9PiB7XG4gICAgICAgICAgZWRpdG9yU3Vic2NyaXB0aW9ucy5kaXNwb3NlKCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgZWRpdG9yU3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIGVkaXRvci5vbkRpZENoYW5nZVRpdGxlKChuZXdUaXRsZSkgPT4gc3RvcmUuZm9yY2VFZGl0b3JVcGRhdGUoKSlcbiAgICAgICk7XG4gICAgICBzdG9yZS5zdWJzY3JpcHRpb25zLmFkZChlZGl0b3JTdWJzY3JpcHRpb25zKTtcbiAgICB9KVxuICApO1xuICBoeWRyb2dlblByb3ZpZGVyID0gbnVsbDtcbiAgc3RvcmUuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgYXRvbS53b3Jrc3BhY2UuYWRkT3BlbmVyKCh1cmkpID0+IHtcbiAgICAgIHN3aXRjaCAodXJpKSB7XG4gICAgICAgIGNhc2UgSU5TUEVDVE9SX1VSSTpcbiAgICAgICAgICByZXR1cm4gbmV3IEluc3BlY3RvclBhbmUoc3RvcmUpO1xuXG4gICAgICAgIGNhc2UgV0FUQ0hFU19VUkk6XG4gICAgICAgICAgcmV0dXJuIG5ldyBXYXRjaGVzUGFuZShzdG9yZSk7XG5cbiAgICAgICAgY2FzZSBPVVRQVVRfQVJFQV9VUkk6XG4gICAgICAgICAgcmV0dXJuIG5ldyBPdXRwdXRQYW5lKHN0b3JlKTtcblxuICAgICAgICBjYXNlIEtFUk5FTF9NT05JVE9SX1VSSTpcbiAgICAgICAgICByZXR1cm4gbmV3IEtlcm5lbE1vbml0b3JQYW5lKHN0b3JlKTtcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICk7XG4gIHN0b3JlLnN1YnNjcmlwdGlvbnMuYWRkKGF0b20ud29ya3NwYWNlLmFkZE9wZW5lcihpcHluYk9wZW5lcikpO1xuICBzdG9yZS5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAvLyBEZXN0cm95IGFueSBQYW5lcyB3aGVuIHRoZSBwYWNrYWdlIGlzIGRlYWN0aXZhdGVkLlxuICAgIG5ldyBEaXNwb3NhYmxlKCgpID0+IHtcbiAgICAgIGF0b20ud29ya3NwYWNlLmdldFBhbmVJdGVtcygpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGl0ZW0gaW5zdGFuY2VvZiBJbnNwZWN0b3JQYW5lIHx8XG4gICAgICAgICAgaXRlbSBpbnN0YW5jZW9mIFdhdGNoZXNQYW5lIHx8XG4gICAgICAgICAgaXRlbSBpbnN0YW5jZW9mIE91dHB1dFBhbmUgfHxcbiAgICAgICAgICBpdGVtIGluc3RhbmNlb2YgS2VybmVsTW9uaXRvclBhbmVcbiAgICAgICAgKSB7XG4gICAgICAgICAgaXRlbS5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pXG4gICk7XG4gIGF1dG9ydW4oKCkgPT4ge1xuICAgIGVtaXR0ZXIuZW1pdChcImRpZC1jaGFuZ2Uta2VybmVsXCIsIHN0b3JlLmtlcm5lbCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVhY3RpdmF0ZSgpIHtcbiAgc3RvcmUuZGlzcG9zZSgpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tIFNlcnZpY2UgUHJvdmlkZXJzIC0tLS0tLS0tLS0tLS0tKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlSHlkcm9nZW4oKSB7XG4gIGlmICghaHlkcm9nZW5Qcm92aWRlcikge1xuICAgIGh5ZHJvZ2VuUHJvdmlkZXIgPSBuZXcgSHlkcm9nZW5Qcm92aWRlcihlbWl0dGVyKTtcbiAgfVxuXG4gIHJldHVybiBoeWRyb2dlblByb3ZpZGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUF1dG9jb21wbGV0ZVJlc3VsdHMoKSB7XG4gIHJldHVybiBzZXJ2aWNlcy5wcm92aWRlZC5hdXRvY29tcGxldGUucHJvdmlkZUF1dG9jb21wbGV0ZVJlc3VsdHMoc3RvcmUpO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblxuLyotLS0tLS0tLS0tLS0tLSBTZXJ2aWNlIENvbnN1bWVycyAtLS0tLS0tLS0tLS0tLSovXG5leHBvcnQgZnVuY3Rpb24gY29uc3VtZUF1dG9jb21wbGV0ZVdhdGNoRWRpdG9yKFxuICB3YXRjaEVkaXRvcjogKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IGFueVxuKSB7XG4gIHJldHVybiBzZXJ2aWNlcy5jb25zdW1lZC5hdXRvY29tcGxldGUuY29uc3VtZShzdG9yZSwgd2F0Y2hFZGl0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3VtZVN0YXR1c0JhcihzdGF0dXNCYXI6IFN0YXR1c0Jhcikge1xuICByZXR1cm4gc2VydmljZXMuY29uc3VtZWQuc3RhdHVzQmFyLmFkZFN0YXR1c0JhcihcbiAgICBzdG9yZSxcbiAgICBzdGF0dXNCYXIsXG4gICAgaGFuZGxlS2VybmVsQ29tbWFuZFxuICApO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmZ1bmN0aW9uIGNvbm5lY3RUb0V4aXN0aW5nS2VybmVsKCkge1xuICBpZiAoIWV4aXN0aW5nS2VybmVsUGlja2VyKSB7XG4gICAgZXhpc3RpbmdLZXJuZWxQaWNrZXIgPSBuZXcgRXhpc3RpbmdLZXJuZWxQaWNrZXIoKTtcbiAgfVxuXG4gIGV4aXN0aW5nS2VybmVsUGlja2VyLnRvZ2dsZSgpO1xufVxuXG5pbnRlcmZhY2UgS2VybmVsQ29tbWFuZCB7XG4gIGNvbW1hbmQ6IHN0cmluZztcbiAgcGF5bG9hZD86IEtlcm5lbHNwZWNNZXRhZGF0YSB8IG51bGwgfCB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUtlcm5lbENvbW1hbmQoXG4gIHsgY29tbWFuZCwgcGF5bG9hZCB9OiBLZXJuZWxDb21tYW5kLCAvLyBUT0RPIHBheWxvYWQgaXMgbm90IHVzZWQhXG4gIHsga2VybmVsLCBtYXJrZXJzIH06IFN0b3JlIHwgU3RvcmVMaWtlXG4pIHtcbiAgbG9nKFwiaGFuZGxlS2VybmVsQ29tbWFuZDpcIiwgW1xuICAgIHsgY29tbWFuZCwgcGF5bG9hZCB9LFxuICAgIHsga2VybmVsLCBtYXJrZXJzIH0sXG4gIF0pO1xuXG4gIGlmICgha2VybmVsKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IFwiTm8gcnVubmluZyBrZXJuZWwgZm9yIGdyYW1tYXIgb3IgZWRpdG9yIGZvdW5kXCI7XG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEVycm9yKG1lc3NhZ2UpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChjb21tYW5kID09PSBcImludGVycnVwdC1rZXJuZWxcIikge1xuICAgIGtlcm5lbC5pbnRlcnJ1cHQoKTtcbiAgfSBlbHNlIGlmIChjb21tYW5kID09PSBcInJlc3RhcnQta2VybmVsXCIpIHtcbiAgICBrZXJuZWwucmVzdGFydCgpO1xuICB9IGVsc2UgaWYgKGNvbW1hbmQgPT09IFwic2h1dGRvd24ta2VybmVsXCIpIHtcbiAgICBpZiAobWFya2Vycykge1xuICAgICAgbWFya2Vycy5jbGVhcigpO1xuICAgIH1cbiAgICAvLyBOb3RlIHRoYXQgZGVzdHJveSBhbG9uZSBkb2VzIG5vdCBzaHV0IGRvd24gYSBXU0tlcm5lbFxuICAgIGtlcm5lbC5zaHV0ZG93bigpO1xuICAgIGtlcm5lbC5kZXN0cm95KCk7XG4gIH0gZWxzZSBpZiAoXG4gICAgY29tbWFuZCA9PT0gXCJyZW5hbWUta2VybmVsXCIgJiZcbiAgICBrZXJuZWwudHJhbnNwb3J0IGluc3RhbmNlb2YgV1NLZXJuZWxcbiAgKSB7XG4gICAga2VybmVsLnRyYW5zcG9ydC5wcm9tcHRSZW5hbWUoKTtcbiAgfSBlbHNlIGlmIChjb21tYW5kID09PSBcImRpc2Nvbm5lY3Qta2VybmVsXCIpIHtcbiAgICBpZiAobWFya2Vycykge1xuICAgICAgbWFya2Vycy5jbGVhcigpO1xuICAgIH1cbiAgICBrZXJuZWwuZGVzdHJveSgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJ1bihtb3ZlRG93bjogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGNvbnN0IGVkaXRvciA9IHN0b3JlLmVkaXRvcjtcbiAgaWYgKCFlZGl0b3IpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL250ZXJhY3QvaHlkcm9nZW4vaXNzdWVzLzE0NTJcbiAgYXRvbS5jb21tYW5kcy5kaXNwYXRjaChlZGl0b3IuZWxlbWVudCwgXCJhdXRvY29tcGxldGUtcGx1czpjYW5jZWxcIik7XG4gIGNvbnN0IGNvZGVCbG9jayA9IGNvZGVNYW5hZ2VyLmZpbmRDb2RlQmxvY2soZWRpdG9yKTtcblxuICBpZiAoIWNvZGVCbG9jaykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGNvZGVOdWxsYWJsZSA9IGNvZGVCbG9jay5jb2RlO1xuICBpZiAoY29kZU51bGxhYmxlID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHsgcm93IH0gPSBjb2RlQmxvY2s7XG4gIGNvbnN0IGNlbGxUeXBlID0gY29kZU1hbmFnZXIuZ2V0TWV0YWRhdGFGb3JSb3coZWRpdG9yLCBuZXcgUG9pbnQocm93LCAwKSk7XG4gIGNvbnN0IGNvZGUgPVxuICAgIGNlbGxUeXBlID09PSBcIm1hcmtkb3duXCJcbiAgICAgID8gY29kZU1hbmFnZXIucmVtb3ZlQ29tbWVudHNNYXJrZG93bkNlbGwoZWRpdG9yLCBjb2RlTnVsbGFibGUpXG4gICAgICA6IGNvZGVOdWxsYWJsZTtcblxuICBpZiAobW92ZURvd24gPT09IHRydWUpIHtcbiAgICBjb2RlTWFuYWdlci5tb3ZlRG93bihlZGl0b3IsIHJvdyk7XG4gIH1cblxuICBjaGVja0Zvcktlcm5lbChzdG9yZSwgKGtlcm5lbCkgPT4ge1xuICAgIHJlc3VsdC5jcmVhdGVSZXN1bHQoc3RvcmUsIHtcbiAgICAgIGNvZGUsXG4gICAgICByb3csXG4gICAgICBjZWxsVHlwZSxcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJ1bkFsbChicmVha3BvaW50cz86IEFycmF5PFBvaW50PiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgY29uc3QgeyBlZGl0b3IsIGtlcm5lbCwgZ3JhbW1hciwgZmlsZVBhdGggfSA9IHN0b3JlO1xuICBpZiAoIWVkaXRvciB8fCAhZ3JhbW1hciB8fCAhZmlsZVBhdGgpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoaXNNdWx0aWxhbmd1YWdlR3JhbW1hcihlZGl0b3IuZ2V0R3JhbW1hcigpKSkge1xuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRFcnJvcihcbiAgICAgICdcIlJ1biBBbGxcIiBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIGZpbGUgdHlwZSEnXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoZWRpdG9yICYmIGtlcm5lbCkge1xuICAgIF9ydW5BbGwoZWRpdG9yLCBrZXJuZWwsIGJyZWFrcG9pbnRzKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGtlcm5lbE1hbmFnZXIuc3RhcnRLZXJuZWxGb3IoZ3JhbW1hciwgZWRpdG9yLCBmaWxlUGF0aCwgKGtlcm5lbDogS2VybmVsKSA9PiB7XG4gICAgX3J1bkFsbChlZGl0b3IsIGtlcm5lbCwgYnJlYWtwb2ludHMpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gX3J1bkFsbChcbiAgZWRpdG9yOiBUZXh0RWRpdG9yLFxuICBrZXJuZWw6IEtlcm5lbCxcbiAgYnJlYWtwb2ludHM/OiBBcnJheTxQb2ludD5cbikge1xuICBjb25zdCBjZWxscyA9IGNvZGVNYW5hZ2VyLmdldENlbGxzKGVkaXRvciwgYnJlYWtwb2ludHMpO1xuXG4gIGZvciAoY29uc3QgY2VsbCBvZiBjZWxscykge1xuICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gY2VsbDtcbiAgICBjb25zdCBjb2RlTnVsbGFibGUgPSBjb2RlTWFuYWdlci5nZXRUZXh0SW5SYW5nZShlZGl0b3IsIHN0YXJ0LCBlbmQpO1xuICAgIGlmIChjb2RlTnVsbGFibGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCByb3cgPSBjb2RlTWFuYWdlci5lc2NhcGVCbGFua1Jvd3MoXG4gICAgICBlZGl0b3IsXG4gICAgICBzdGFydC5yb3csXG4gICAgICBjb2RlTWFuYWdlci5nZXRFc2NhcGVCbGFua1Jvd3NFbmRSb3coZWRpdG9yLCBlbmQpXG4gICAgKTtcbiAgICBjb25zdCBjZWxsVHlwZSA9IGNvZGVNYW5hZ2VyLmdldE1ldGFkYXRhRm9yUm93KGVkaXRvciwgc3RhcnQpO1xuICAgIGNvbnN0IGNvZGUgPVxuICAgICAgY2VsbFR5cGUgPT09IFwibWFya2Rvd25cIlxuICAgICAgICA/IGNvZGVNYW5hZ2VyLnJlbW92ZUNvbW1lbnRzTWFya2Rvd25DZWxsKGVkaXRvciwgY29kZU51bGxhYmxlKVxuICAgICAgICA6IGNvZGVOdWxsYWJsZTtcbiAgICBjaGVja0Zvcktlcm5lbChzdG9yZSwgKGtlcm5lbCkgPT4ge1xuICAgICAgcmVzdWx0LmNyZWF0ZVJlc3VsdChzdG9yZSwge1xuICAgICAgICBjb2RlLFxuICAgICAgICByb3csXG4gICAgICAgIGNlbGxUeXBlLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcnVuQWxsQWJvdmUoKSB7XG4gIGNvbnN0IHsgZWRpdG9yLCBrZXJuZWwsIGdyYW1tYXIsIGZpbGVQYXRoIH0gPSBzdG9yZTtcbiAgaWYgKCFlZGl0b3IgfHwgIWdyYW1tYXIgfHwgIWZpbGVQYXRoKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGlzTXVsdGlsYW5ndWFnZUdyYW1tYXIoZWRpdG9yLmdldEdyYW1tYXIoKSkpIHtcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkRXJyb3IoXG4gICAgICAnXCJSdW4gQWxsIEFib3ZlXCIgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBmaWxlIHR5cGUhJ1xuICAgICk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGVkaXRvciAmJiBrZXJuZWwpIHtcbiAgICBfcnVuQWxsQWJvdmUoZWRpdG9yLCBrZXJuZWwpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAga2VybmVsTWFuYWdlci5zdGFydEtlcm5lbEZvcihncmFtbWFyLCBlZGl0b3IsIGZpbGVQYXRoLCAoa2VybmVsOiBLZXJuZWwpID0+IHtcbiAgICBfcnVuQWxsQWJvdmUoZWRpdG9yLCBrZXJuZWwpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gX3J1bkFsbEFib3ZlKGVkaXRvcjogVGV4dEVkaXRvciwga2VybmVsOiBLZXJuZWwpIHtcbiAgY29uc3QgY3Vyc29yID0gZWRpdG9yLmdldEN1cnNvckJ1ZmZlclBvc2l0aW9uKCk7XG4gIGN1cnNvci5jb2x1bW4gPSBlZGl0b3IuZ2V0QnVmZmVyKCkubGluZUxlbmd0aEZvclJvdyhjdXJzb3Iucm93KTtcbiAgY29uc3QgYnJlYWtwb2ludHMgPSBjb2RlTWFuYWdlci5nZXRCcmVha3BvaW50cyhlZGl0b3IpO1xuICBicmVha3BvaW50cy5wdXNoKGN1cnNvcik7XG4gIGNvbnN0IGNlbGxzID0gY29kZU1hbmFnZXIuZ2V0Q2VsbHMoZWRpdG9yLCBicmVha3BvaW50cyk7XG5cbiAgZm9yIChjb25zdCBjZWxsIG9mIGNlbGxzKSB7XG4gICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBjZWxsO1xuICAgIGNvbnN0IGNvZGVOdWxsYWJsZSA9IGNvZGVNYW5hZ2VyLmdldFRleHRJblJhbmdlKGVkaXRvciwgc3RhcnQsIGVuZCk7XG4gICAgY29uc3Qgcm93ID0gY29kZU1hbmFnZXIuZXNjYXBlQmxhbmtSb3dzKFxuICAgICAgZWRpdG9yLFxuICAgICAgc3RhcnQucm93LFxuICAgICAgY29kZU1hbmFnZXIuZ2V0RXNjYXBlQmxhbmtSb3dzRW5kUm93KGVkaXRvciwgZW5kKVxuICAgICk7XG4gICAgY29uc3QgY2VsbFR5cGUgPSBjb2RlTWFuYWdlci5nZXRNZXRhZGF0YUZvclJvdyhlZGl0b3IsIHN0YXJ0KTtcblxuICAgIGlmIChjb2RlTnVsbGFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvZGUgPVxuICAgICAgICBjZWxsVHlwZSA9PT0gXCJtYXJrZG93blwiXG4gICAgICAgICAgPyBjb2RlTWFuYWdlci5yZW1vdmVDb21tZW50c01hcmtkb3duQ2VsbChlZGl0b3IsIGNvZGVOdWxsYWJsZSlcbiAgICAgICAgICA6IGNvZGVOdWxsYWJsZTtcbiAgICAgIGNoZWNrRm9yS2VybmVsKHN0b3JlLCAoa2VybmVsKSA9PiB7XG4gICAgICAgIHJlc3VsdC5jcmVhdGVSZXN1bHQoc3RvcmUsIHtcbiAgICAgICAgICBjb2RlLFxuICAgICAgICAgIHJvdyxcbiAgICAgICAgICBjZWxsVHlwZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY2VsbC5jb250YWluc1BvaW50KGN1cnNvcikpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBydW5DZWxsKG1vdmVEb3duOiBib29sZWFuID0gZmFsc2UpIHtcbiAgY29uc3QgZWRpdG9yID0gc3RvcmUuZWRpdG9yO1xuICBpZiAoIWVkaXRvcikge1xuICAgIHJldHVybjtcbiAgfVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbnRlcmFjdC9oeWRyb2dlbi9pc3N1ZXMvMTQ1MlxuICBhdG9tLmNvbW1hbmRzLmRpc3BhdGNoKGVkaXRvci5lbGVtZW50LCBcImF1dG9jb21wbGV0ZS1wbHVzOmNhbmNlbFwiKTtcbiAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBjb2RlTWFuYWdlci5nZXRDdXJyZW50Q2VsbChlZGl0b3IpO1xuICBjb25zdCBjb2RlTnVsbGFibGUgPSBjb2RlTWFuYWdlci5nZXRUZXh0SW5SYW5nZShlZGl0b3IsIHN0YXJ0LCBlbmQpO1xuICBpZiAoY29kZU51bGxhYmxlID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHJvdyA9IGNvZGVNYW5hZ2VyLmVzY2FwZUJsYW5rUm93cyhcbiAgICBlZGl0b3IsXG4gICAgc3RhcnQucm93LFxuICAgIGNvZGVNYW5hZ2VyLmdldEVzY2FwZUJsYW5rUm93c0VuZFJvdyhlZGl0b3IsIGVuZClcbiAgKTtcbiAgY29uc3QgY2VsbFR5cGUgPSBjb2RlTWFuYWdlci5nZXRNZXRhZGF0YUZvclJvdyhlZGl0b3IsIHN0YXJ0KTtcbiAgY29uc3QgY29kZSA9XG4gICAgY2VsbFR5cGUgPT09IFwibWFya2Rvd25cIlxuICAgICAgPyBjb2RlTWFuYWdlci5yZW1vdmVDb21tZW50c01hcmtkb3duQ2VsbChlZGl0b3IsIGNvZGVOdWxsYWJsZSlcbiAgICAgIDogY29kZU51bGxhYmxlO1xuXG4gIGlmIChtb3ZlRG93biA9PT0gdHJ1ZSkge1xuICAgIGNvZGVNYW5hZ2VyLm1vdmVEb3duKGVkaXRvciwgcm93KTtcbiAgfVxuXG4gIGNoZWNrRm9yS2VybmVsKHN0b3JlLCAoa2VybmVsKSA9PiB7XG4gICAgcmVzdWx0LmNyZWF0ZVJlc3VsdChzdG9yZSwge1xuICAgICAgY29kZSxcbiAgICAgIHJvdyxcbiAgICAgIGNlbGxUeXBlLFxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZm9sZEN1cnJlbnRDZWxsKCkge1xuICBjb25zdCBlZGl0b3IgPSBzdG9yZS5lZGl0b3I7XG4gIGlmICghZWRpdG9yKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvZGVNYW5hZ2VyLmZvbGRDdXJyZW50Q2VsbChlZGl0b3IpO1xufVxuXG5mdW5jdGlvbiBmb2xkQWxsQnV0Q3VycmVudENlbGwoKSB7XG4gIGNvbnN0IGVkaXRvciA9IHN0b3JlLmVkaXRvcjtcbiAgaWYgKCFlZGl0b3IpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29kZU1hbmFnZXIuZm9sZEFsbEJ1dEN1cnJlbnRDZWxsKGVkaXRvcik7XG59XG5cbmZ1bmN0aW9uIHN0YXJ0Wk1RS2VybmVsKCkge1xuICBrZXJuZWxNYW5hZ2VyXG4gICAgLmdldEFsbEtlcm5lbFNwZWNzRm9yR3JhbW1hcihzdG9yZS5ncmFtbWFyKVxuICAgIC50aGVuKChrZXJuZWxTcGVjcykgPT4ge1xuICAgICAgaWYgKGtlcm5lbFBpY2tlcikge1xuICAgICAgICBrZXJuZWxQaWNrZXIua2VybmVsU3BlY3MgPSBrZXJuZWxTcGVjcztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGtlcm5lbFBpY2tlciA9IG5ldyBLZXJuZWxQaWNrZXIoa2VybmVsU3BlY3MpO1xuXG4gICAgICAgIGtlcm5lbFBpY2tlci5vbkNvbmZpcm1lZCA9IChrZXJuZWxTcGVjOiBLZXJuZWxzcGVjTWV0YWRhdGEpID0+IHtcbiAgICAgICAgICBjb25zdCB7IGVkaXRvciwgZ3JhbW1hciwgZmlsZVBhdGgsIG1hcmtlcnMgfSA9IHN0b3JlO1xuICAgICAgICAgIGlmICghZWRpdG9yIHx8ICFncmFtbWFyIHx8ICFmaWxlUGF0aCB8fCAhbWFya2Vycykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtYXJrZXJzLmNsZWFyKCk7XG4gICAgICAgICAga2VybmVsTWFuYWdlci5zdGFydEtlcm5lbChrZXJuZWxTcGVjLCBncmFtbWFyLCBlZGl0b3IsIGZpbGVQYXRoKTtcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAga2VybmVsUGlja2VyLnRvZ2dsZSgpO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBjb25uZWN0VG9XU0tlcm5lbCgpIHtcbiAgaWYgKCF3c0tlcm5lbFBpY2tlcikge1xuICAgIHdzS2VybmVsUGlja2VyID0gbmV3IFdTS2VybmVsUGlja2VyKCh0cmFuc3BvcnQ6IFdTS2VybmVsKSA9PiB7XG4gICAgICBjb25zdCBrZXJuZWwgPSBuZXcgS2VybmVsKHRyYW5zcG9ydCk7XG4gICAgICBjb25zdCB7IGVkaXRvciwgZ3JhbW1hciwgZmlsZVBhdGgsIG1hcmtlcnMgfSA9IHN0b3JlO1xuICAgICAgaWYgKCFlZGl0b3IgfHwgIWdyYW1tYXIgfHwgIWZpbGVQYXRoIHx8ICFtYXJrZXJzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIG1hcmtlcnMuY2xlYXIoKTtcbiAgICAgIGlmIChrZXJuZWwudHJhbnNwb3J0IGluc3RhbmNlb2YgWk1RS2VybmVsKSB7XG4gICAgICAgIGtlcm5lbC5kZXN0cm95KCk7XG4gICAgICB9XG4gICAgICBzdG9yZS5uZXdLZXJuZWwoa2VybmVsLCBmaWxlUGF0aCwgZWRpdG9yLCBncmFtbWFyKTtcbiAgICB9KTtcbiAgfVxuXG4gIHdzS2VybmVsUGlja2VyLnRvZ2dsZSgoa2VybmVsU3BlYzogS2VybmVsc3BlY01ldGFkYXRhKSA9PlxuICAgIGtlcm5lbFNwZWNQcm92aWRlc0dyYW1tYXIoa2VybmVsU3BlYywgc3RvcmUuZ3JhbW1hcilcbiAgKTtcbn1cblxuLy8gQWNjZXB0cyBzdG9yZSBhcyBhbiBhcmdcbmZ1bmN0aW9uIGNoZWNrRm9yS2VybmVsKFxuICB7XG4gICAgZWRpdG9yLFxuICAgIGdyYW1tYXIsXG4gICAgZmlsZVBhdGgsXG4gICAga2VybmVsLFxuICB9OiB7XG4gICAgZWRpdG9yOiBUZXh0RWRpdG9yO1xuICAgIGdyYW1tYXI6IEdyYW1tYXI7XG4gICAgZmlsZVBhdGg6IHN0cmluZztcbiAgICBrZXJuZWw/OiBLZXJuZWw7XG4gIH0sXG4gIGNhbGxiYWNrOiAoa2VybmVsOiBLZXJuZWwpID0+IHZvaWRcbikge1xuICBpZiAoIWZpbGVQYXRoIHx8ICFncmFtbWFyKSB7XG4gICAgcmV0dXJuIGF0b20ubm90aWZpY2F0aW9ucy5hZGRFcnJvcihcbiAgICAgIFwiVGhlIGxhbmd1YWdlIGdyYW1tYXIgbXVzdCBiZSBzZXQgaW4gb3JkZXIgdG8gc3RhcnQgYSBrZXJuZWwuIFRoZSBlYXNpZXN0IHdheSB0byBkbyB0aGlzIGlzIHRvIHNhdmUgdGhlIGZpbGUuXCJcbiAgICApO1xuICB9XG5cbiAgaWYgKGtlcm5lbCkge1xuICAgIGNhbGxiYWNrKGtlcm5lbCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAga2VybmVsTWFuYWdlci5zdGFydEtlcm5lbEZvcihncmFtbWFyLCBlZGl0b3IsIGZpbGVQYXRoLCAobmV3S2VybmVsOiBLZXJuZWwpID0+XG4gICAgY2FsbGJhY2sobmV3S2VybmVsKVxuICApO1xufVxuIl19 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQkFPYztBQUVkLG9EQUF1QjtBQUN2QiwrQkFBK0I7QUFFL0Isa0VBQThDO0FBQzlDLDhEQUEwQztBQUMxQyxzRUFBNkM7QUFDN0MsNEVBQXVEO0FBQ3ZELHNEQUE4QjtBQUM5Qiw4REFBcUM7QUFDckMsNERBQW1DO0FBQ25DLHNEQUE4QjtBQUM5QixvRUFBMkM7QUFDM0MsMEVBQWdEO0FBQ2hELHNGQUE0RDtBQUM1RCx1RkFBOEQ7QUFDOUQsb0RBQWtEO0FBQ2xELHNFQUE2QztBQUM3QywwREFBa0M7QUFDbEMscURBQXVDO0FBQ3ZDLDREQUE4QztBQUM5QyxpREFBbUM7QUFFbkMsbUNBV2lCO0FBQ2pCLHVEQUFtRDtBQUNuRCx1REFBZ0U7QUFHbkQsUUFBQSxNQUFNLEdBQUcsZ0JBQU0sQ0FBQyxNQUFNLENBQUM7QUFDcEMsSUFBSSxPQUFpRSxDQUFDO0FBQ3RFLElBQUksWUFBc0MsQ0FBQztBQUMzQyxJQUFJLG9CQUFzRCxDQUFDO0FBQzNELElBQUksY0FBMEMsQ0FBQztBQUMvQyxJQUFJLGdCQUE4QyxDQUFDO0FBRW5ELFNBQWdCLFFBQVE7SUFDdEIsT0FBTyxHQUFHLElBQUksY0FBTyxFQUFFLENBQUM7SUFDeEIsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7SUFDdkMsZUFBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUNyQiwyQkFBMkIsRUFDM0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1FBQ3pCLElBQUksMEJBQTBCLEVBQUU7WUFDOUIsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO1lBQ25DLE9BQU87U0FDUjtRQUVELElBQUksZUFBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUks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Q0osQ0FBQztBQUdELFNBQVMsY0FBYyxDQUNyQixFQUNFLE1BQU0sRUFDTixPQUFPLEVBQ1AsUUFBUSxFQUNSLE1BQU0sR0FNUCxFQUNELFFBQWtDO0lBRWxDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDekIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FDaEMsOEdBQThHLENBQy9HLENBQUM7S0FDSDtJQUVELElBQUksTUFBTSxFQUFFO1FBQ1YsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pCLE9BQU87S0FDUjtJQUVELHdCQUFhLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQzVFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FDcEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEVtaXR0ZXIsXHJcbiAgQ29tcG9zaXRlRGlzcG9zYWJsZSxcclxuICBEaXNwb3NhYmxlLFxyXG4gIFBvaW50LFxyXG4gIFRleHRFZGl0b3IsXHJcbiAgR3JhbW1hcixcclxufSBmcm9tIFwiYXRvbVwiO1xyXG5pbXBvcnQgeyBTdGF0dXNCYXIgfSBmcm9tIFwiYXRvbS9zdGF0dXMtYmFyXCI7XHJcbmltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgYXV0b3J1biB9IGZyb20gXCJtb2J4XCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEluc3BlY3RvclBhbmUgZnJvbSBcIi4vcGFuZXMvaW5zcGVjdG9yXCI7XHJcbmltcG9ydCBXYXRjaGVzUGFuZSBmcm9tIFwiLi9wYW5lcy93YXRjaGVzXCI7XHJcbmltcG9ydCBPdXRwdXRQYW5lIGZyb20gXCIuL3BhbmVzL291dHB1dC1hcmVhXCI7XHJcbmltcG9ydCBLZXJuZWxNb25pdG9yUGFuZSBmcm9tIFwiLi9wYW5lcy9rZXJuZWwtbW9uaXRvclwiO1xyXG5pbXBvcnQgQ29uZmlnIGZyb20gXCIuL2NvbmZpZ1wiO1xyXG5pbXBvcnQgWk1RS2VybmVsIGZyb20gXCIuL3ptcS1rZXJuZWxcIjtcclxuaW1wb3J0IFdTS2VybmVsIGZyb20gXCIuL3dzLWtlcm5lbFwiO1xyXG5pbXBvcnQgS2VybmVsIGZyb20gXCIuL2tlcm5lbFwiO1xyXG5pbXBvcnQgS2VybmVsUGlja2VyIGZyb20gXCIuL2tlcm5lbC1waWNrZXJcIjtcclxuaW1wb3J0IFdTS2VybmVsUGlja2VyIGZyb20gXCIuL3dzLWtlcm5lbC1waWNrZXJcIjtcclxuaW1wb3J0IEV4aXN0aW5nS2VybmVsUGlja2VyIGZyb20gXCIuL2V4aXN0aW5nLWtlcm5lbC1waWNrZXJcIjtcclxuaW1wb3J0IEh5ZHJvZ2VuUHJvdmlkZXIgZnJvbSBcIi4vcGx1Z2luLWFwaS9oeWRyb2dlbi1wcm92aWRlclwiO1xyXG5pbXBvcnQgc3RvcmUsIHsgU3RvcmUsIFN0b3JlTGlrZSB9IGZyb20gXCIuL3N0b3JlXCI7XHJcbmltcG9ydCBrZXJuZWxNYW5hZ2VyIGZyb20gXCIuL2tlcm5lbC1tYW5hZ2VyXCI7XHJcbmltcG9ydCBzZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlc1wiO1xyXG5pbXBvcnQgKiBhcyBjb21tYW5kcyBmcm9tIFwiLi9jb21tYW5kc1wiO1xyXG5pbXBvcnQgKiBhcyBjb2RlTWFuYWdlciBmcm9tIFwiLi9jb2RlLW1hbmFnZXJcIjtcclxuaW1wb3J0ICogYXMgcmVzdWx0IGZyb20gXCIuL3Jlc3VsdFwiO1xyXG5pbXBvcnQgdHlwZSBNYXJrZXJTdG9yZSBmcm9tIFwiLi9zdG9yZS9tYXJrZXJzXCI7XHJcbmltcG9ydCB7XHJcbiAgbG9nLFxyXG4gIHJlYWN0RmFjdG9yeSxcclxuICBpc011bHRpbGFuZ3VhZ2VHcmFtbWFyLFxyXG4gIElOU1BFQ1RPUl9VUkksXHJcbiAgV0FUQ0hFU19VUkksXHJcbiAgT1VUUFVUX0FSRUFfVVJJLFxyXG4gIEtFUk5FTF9NT05JVE9SX1VSSSxcclxuICBob3RSZWxvYWRQYWNrYWdlLFxyXG4gIG9wZW5PclNob3dEb2NrLFxyXG4gIGtlcm5lbFNwZWNQcm92aWRlc0dyYW1tYXIsXHJcbn0gZnJvbSBcIi4vdXRpbHNcIjtcclxuaW1wb3J0IHsgZXhwb3J0Tm90ZWJvb2sgfSBmcm9tIFwiLi9leHBvcnQtbm90ZWJvb2tcIjtcclxuaW1wb3J0IHsgaW1wb3J0Tm90ZWJvb2ssIGlweW5iT3BlbmVyIH0gZnJvbSBcIi4vaW1wb3J0LW5vdGVib29rXCI7XHJcbmltcG9ydCB0eXBlIHsgS2VybmVsc3BlY01ldGFkYXRhIH0gZnJvbSBcIkBudGVyYWN0L3R5cGVzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgY29uZmlnID0gQ29uZmlnLnNjaGVtYTtcclxubGV0IGVtaXR0ZXI6IEVtaXR0ZXI8e30sIHsgXCJkaWQtY2hhbmdlLWtlcm5lbFwiOiBLZXJuZWwgfT4gfCB1bmRlZmluZWQ7XHJcbmxldCBrZXJuZWxQaWNrZXI6IEtlcm5lbFBpY2tlciB8IHVuZGVmaW5lZDtcclxubGV0IGV4aXN0aW5nS2VybmVsUGlja2VyOiBFeGlzdGluZ0tlcm5lbFBpY2tlciB8IHVuZGVmaW5lZDtcclxubGV0IHdzS2VybmVsUGlja2VyOiBXU0tlcm5lbFBpY2tlciB8IHVuZGVmaW5lZDtcclxubGV0IGh5ZHJvZ2VuUHJvdmlkZXI6IEh5ZHJvZ2VuUHJvdmlkZXIgfCB1bmRlZmluZWQ7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWN0aXZhdGUoKSB7XHJcbiAgZW1pdHRlciA9IG5ldyBFbWl0dGVyKCk7XHJcbiAgbGV0IHNraXBMYW5ndWFnZU1hcHBpbmdzQ2hhbmdlID0gZmFsc2U7XHJcbiAgc3RvcmUuc3Vic2NyaXB0aW9ucy5hZGQoXHJcbiAgICBhdG9tLmNvbmZpZy5vbkRpZENoYW5nZShcclxuICAgICAgXCJIeWRyb2dlbi5sYW5ndWFnZU1hcHBpbmdzXCIsXHJcbiAgICAgICh7IG5ld1ZhbHVlLCBvbGRWYWx1ZSB9KSA9PiB7XHJcbiAgICAgICAgaWYgKHNraXBMYW5ndWFnZU1hcHBpbmdzQ2hhbmdlKSB7XHJcbiAgICAgICAgICBza2lwTGFuZ3VhZ2VNYXBwaW5nc0NoYW5nZSA9IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHN0b3JlLnJ1bm5pbmdLZXJuZWxzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgICBza2lwTGFuZ3VhZ2VNYXBwaW5nc0NoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgICBhdG9tLmNvbmZpZy5zZXQoXCJIeWRyb2dlbi5sYW5ndWFnZU1hcHBpbmdzXCIsIG9sZFZhbHVlKTtcclxuICAgICAgICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRFcnJvcihcIkh5ZHJvZ2VuXCIsIHtcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAgICAgXCJgbGFuZ3VhZ2VNYXBwaW5nc2AgY2Fubm90IGJlIHVwZGF0ZWQgd2hpbGUga2VybmVscyBhcmUgcnVubmluZ1wiLFxyXG4gICAgICAgICAgICBkaXNtaXNzYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIClcclxuICApO1xyXG4gIHN0b3JlLnN1YnNjcmlwdGlvbnMuYWRkKFxyXG4gICAgYXRvbS5jb25maWcub2JzZXJ2ZShcIkh5ZHJvZ2VuLnN0YXR1c0JhckRpc2FibGVcIiwgKG5ld1ZhbHVlKSA9PiB7XHJcbiAgICAgIHN0b3JlLnNldENvbmZpZ1ZhbHVlKFwiSHlkcm9nZW4uc3RhdHVzQmFyRGlzYWJsZVwiLCBCb29sZWFuKG5ld1ZhbHVlKSk7XHJcbiAgICB9KSxcclxuICAgIGF0b20uY29uZmlnLm9ic2VydmUoXCJIeWRyb2dlbi5zdGF0dXNCYXJLZXJuZWxJbmZvXCIsIChuZXdWYWx1ZSkgPT4ge1xyXG4gICAgICBzdG9yZS5zZXRDb25maWdWYWx1ZShcIkh5ZHJvZ2VuLnN0YXR1c0Jhcktlcm5lbEluZm9cIiwgQm9vbGVhbihuZXdWYWx1ZSkpO1xyXG4gICAgfSlcclxuICApO1xyXG4gIHN0b3JlLnN1YnNjcmlwdGlvbnMuYWRkKFxyXG4gICAgYXRvbS5jb21tYW5kcy5hZGQ8XCJhdG9tLXRleHQtZWRpdG9yOm5vdChbbWluaV0pXCI+KFxyXG4gICAgICBcImF0b20tdGV4dC1lZGl0b3I6bm90KFttaW5pXSlcIixcclxuICAgICAge1xyXG4gICAgICAgIFwiaHlkcm9nZW46cnVuXCI6ICgpID0+IHJ1bigpLFxyXG4gICAgICAgIFwiaHlkcm9nZW46cnVuLWFsbFwiOiAoKSA9PiBydW5BbGwoKSxcclxuICAgICAgICBcImh5ZHJvZ2VuOnJ1bi1hbGwtYWJvdmVcIjogKCkgPT4gcnVuQWxsQWJvdmUoKSxcclxuICAgICAgICBcImh5ZHJvZ2VuOnJ1bi1hbmQtbW92ZS1kb3duXCI6ICgpID0+IHJ1bih0cnVlKSxcclxuICAgICAgICBcImh5ZHJvZ2VuOnJ1bi1jZWxsXCI6ICgpID0+IHJ1bkNlbGwoKSxcclxuICAgICAgICBcImh5ZHJvZ2VuOnJ1bi1jZWxsLWFuZC1tb3ZlLWRvd25cIjogKCkgPT4gcnVuQ2VsbCh0cnVlKSxcclxuICAgICAgICBcImh5ZHJvZ2VuOnRvZ2dsZS13YXRjaGVzXCI6ICgpID0+IGF0b20ud29ya3NwYWNlLnRvZ2dsZShXQVRDSEVTX1VSSSksXHJcbiAgICAgICAgXCJoeWRyb2dlbjp0b2dnbGUtb3V0cHV0LWFyZWFcIjogKCkgPT4gY29tbWFuZHMudG9nZ2xlT3V0cHV0TW9kZSgpLFxyXG4gICAgICAgIFwiaHlkcm9nZW46dG9nZ2xlLWtlcm5lbC1tb25pdG9yXCI6IGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGxhc3RJdGVtID0gYXRvbS53b3Jrc3BhY2UuZ2V0QWN0aXZlUGFuZUl0ZW0oKTtcclxuICAgICAgICAgIGNvbnN0IGxhc3RQYW5lID0gYXRvbS53b3Jrc3BhY2UucGFuZUZvckl0ZW0obGFzdEl0ZW0pO1xyXG4gICAgICAgICAgYXdhaXQgYXRvbS53b3Jrc3BhY2UudG9nZ2xlKEtFUk5FTF9NT05JVE9SX1VSSSk7XHJcbiAgICAgICAgICBpZiAobGFzdFBhbmUpIHtcclxuICAgICAgICAgICAgbGFzdFBhbmUuYWN0aXZhdGUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIFwiaHlkcm9nZW46c3RhcnQtbG9jYWwta2VybmVsXCI6ICgpID0+IHN0YXJ0Wk1RS2VybmVsKCksXHJcbiAgICAgICAgXCJoeWRyb2dlbjpjb25uZWN0LXRvLXJlbW90ZS1rZXJuZWxcIjogKCkgPT4gY29ubmVjdFRvV1NLZXJuZWwoKSxcclxuICAgICAgICBcImh5ZHJvZ2VuOmNvbm5lY3QtdG8tZXhpc3Rpbmcta2VybmVsXCI6ICgpID0+IGNvbm5lY3RUb0V4aXN0aW5nS2VybmVsKCksXHJcbiAgICAgICAgXCJoeWRyb2dlbjphZGQtd2F0Y2hcIjogKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHN0b3JlLmtlcm5lbCkge1xyXG4gICAgICAgICAgICBzdG9yZS5rZXJuZWwud2F0Y2hlc1N0b3JlLmFkZFdhdGNoRnJvbUVkaXRvcihzdG9yZS5lZGl0b3IpO1xyXG4gICAgICAgICAgICBvcGVuT3JTaG93RG9jayhXQVRDSEVTX1VSSSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImh5ZHJvZ2VuOnJlbW92ZS13YXRjaFwiOiAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoc3RvcmUua2VybmVsKSB7XHJcbiAgICAgICAgICAgIHN0b3JlLmtlcm5lbC53YXRjaGVzU3RvcmUucmVtb3ZlV2F0Y2goKTtcclxuICAgICAgICAgICAgb3Blbk9yU2hvd0RvY2soV0FUQ0hFU19VUkkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJoeWRyb2dlbjp1cGRhdGUta2VybmVsc1wiOiBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBhd2FpdCBrZXJuZWxNYW5hZ2VyLnVwZGF0ZUtlcm5lbFNwZWNzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBcImh5ZHJvZ2VuOnRvZ2dsZS1pbnNwZWN0b3JcIjogKCkgPT4gY29tbWFuZHMudG9nZ2xlSW5zcGVjdG9yKHN0b3JlKSxcclxuICAgICAgICBcImh5ZHJvZ2VuOmludGVycnVwdC1rZXJuZWxcIjogKCkgPT5cclxuICAgICAgICAgIGhhbmRsZUtlcm5lbENvbW1hbmQoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBjb21tYW5kOiBcImludGVycnVwdC1rZXJuZWxcIixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3RvcmVcclxuICAgICAgICAgICksXHJcbiAgICAgICAgXCJoeWRyb2dlbjpyZXN0YXJ0LWtlcm5lbFwiOiAoKSA9PlxyXG4gICAgICAgICAgaGFuZGxlS2VybmVsQ29tbWFuZChcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGNvbW1hbmQ6IFwicmVzdGFydC1rZXJuZWxcIixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3RvcmVcclxuICAgICAgICAgICksXHJcbiAgICAgICAgXCJoeWRyb2dlbjpzaHV0ZG93bi1rZXJuZWxcIjogKCkgPT5cclxuICAgICAgICAgIGhhbmRsZUtlcm5lbENvbW1hbmQoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBjb21tYW5kOiBcInNodXRkb3duLWtlcm5lbFwiLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdG9yZVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICBcImh5ZHJvZ2VuOmNsZWFyLXJlc3VsdFwiOiAoKSA9PiByZXN1bHQuY2xlYXJSZXN1bHQoc3RvcmUpLFxyXG4gICAgICAgIFwiaHlkcm9nZW46ZXhwb3J0LW5vdGVib29rXCI6ICgpID0+IGV4cG9ydE5vdGVib29rKCksXHJcbiAgICAgICAgXCJoeWRyb2dlbjpmb2xkLWN1cnJlbnQtY2VsbFwiOiAoKSA9PiBmb2xkQ3VycmVudENlbGwoKSxcclxuICAgICAgICBcImh5ZHJvZ2VuOmZvbGQtYWxsLWJ1dC1jdXJyZW50LWNlbGxcIjogKCkgPT4gZm9sZEFsbEJ1dEN1cnJlbnRDZWxsKCksXHJcbiAgICAgICAgXCJoeWRyb2dlbjpjbGVhci1yZXN1bHRzXCI6ICgpID0+IHJlc3VsdC5jbGVhclJlc3VsdHMoc3RvcmUpLFxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgKTtcclxuICBzdG9yZS5zdWJzY3JpcHRpb25zLmFkZChcclxuICAgIGF0b20uY29tbWFuZHMuYWRkKFwiYXRvbS13b3Jrc3BhY2VcIiwge1xyXG4gICAgICBcImh5ZHJvZ2VuOmltcG9ydC1ub3RlYm9va1wiOiBpbXBvcnROb3RlYm9vayxcclxuICAgIH0pXHJcbiAgKTtcclxuXHJcbiAgaWYgKGF0b20uaW5EZXZNb2RlKCkpIHtcclxuICAgIHN0b3JlLnN1YnNjcmlwdGlvbnMuYWRkKFxyXG4gICAgICBhdG9tLmNvbW1hbmRzLmFkZChcImF0b20td29ya3NwYWNlXCIsIHtcclxuICAgICAgICBcImh5ZHJvZ2VuOmhvdC1yZWxvYWQtcGFja2FnZVwiOiAoKSA9PiBob3RSZWxvYWRQYWNrYWdlKCksXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc3RvcmUuc3Vic2NyaXB0aW9ucy5hZGQoXHJcbiAgICBhdG9tLndvcmtzcGFjZS5vYnNlcnZlQWN0aXZlVGV4dEVkaXRvcigoZWRpdG9yKSA9PiB7XHJcbiAgICAgIHN0b3JlLnVwZGF0ZUVkaXRvcihlZGl0b3IpO1xyXG4gICAgfSlcclxuICApO1xyXG4gIHN0b3JlLnN1YnNjcmlwdGlvbnMuYWRkKFxyXG4gICAgYXRvbS53b3Jrc3BhY2Uub2JzZXJ2ZVRleHRFZGl0b3JzKChlZGl0b3IpID0+IHtcclxuICAgICAgY29uc3QgZWRpdG9yU3Vic2NyaXB0aW9ucyA9IG5ldyBDb21wb3NpdGVEaXNwb3NhYmxlKCk7XHJcbiAgICAgIGVkaXRvclN1YnNjcmlwdGlvbnMuYWRkKFxyXG4gICAgICAgIGVkaXRvci5vbkRpZENoYW5nZUdyYW1tYXIoKCkgPT4ge1xyXG4gICAgICAgICAgc3RvcmUuc2V0R3JhbW1hcihlZGl0b3IpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAoaXNNdWx0aWxhbmd1YWdlR3JhbW1hcihlZGl0b3IuZ2V0R3JhbW1hcigpKSkge1xyXG4gICAgICAgIGVkaXRvclN1YnNjcmlwdGlvbnMuYWRkKFxyXG4gICAgICAgICAgZWRpdG9yLm9uRGlkQ2hhbmdlQ3Vyc29yUG9zaXRpb24oXHJcbiAgICAgICAgICAgIF8uZGVib3VuY2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHN0b3JlLnNldEdyYW1tYXIoZWRpdG9yKTtcclxuICAgICAgICAgICAgfSwgNzUpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZWRpdG9yU3Vic2NyaXB0aW9ucy5hZGQoXHJcbiAgICAgICAgZWRpdG9yLm9uRGlkRGVzdHJveSgoKSA9PiB7XHJcbiAgICAgICAgICBlZGl0b3JTdWJzY3JpcHRpb25zLmRpc3Bvc2UoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICBlZGl0b3JTdWJzY3JpcHRpb25zLmFkZChcclxuICAgICAgICBlZGl0b3Iub25EaWRDaGFuZ2VUaXRsZSgobmV3VGl0bGUpID0+IHN0b3JlLmZvcmNlRWRpdG9yVXBkYXRlKCkpXHJcbiAgICAgICk7XHJcbiAgICAgIHN0b3JlLnN1YnNjcmlwdGlvbnMuYWRkKGVkaXRvclN1YnNjcmlwdGlvbnMpO1xyXG4gICAgfSlcclxuICApO1xyXG4gIGh5ZHJvZ2VuUHJvdmlkZXIgPSBudWxsO1xyXG4gIHN0b3JlLnN1YnNjcmlwdGlvbnMuYWRkKFxyXG4gICAgYXRvbS53b3Jrc3BhY2UuYWRkT3BlbmVyKCh1cmkpID0+IHtcclxuICAgICAgc3dpdGNoICh1cmkpIHtcclxuICAgICAgICBjYXNlIElOU1BFQ1RPUl9VUkk6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IEluc3BlY3RvclBhbmUoc3RvcmUpO1xyXG5cclxuICAgICAgICBjYXNlIFdBVENIRVNfVVJJOlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBXYXRjaGVzUGFuZShzdG9yZSk7XHJcblxyXG4gICAgICAgIGNhc2UgT1VUUFVUX0FSRUFfVVJJOlxyXG4gICAgICAgICAgcmV0dXJuIG5ldyBPdXRwdXRQYW5lKHN0b3JlKTtcclxuXHJcbiAgICAgICAgY2FzZSBLRVJORUxfTU9OSVRPUl9VUkk6XHJcbiAgICAgICAgICByZXR1cm4gbmV3IEtlcm5lbE1vbml0b3JQYW5lKHN0b3JlKTtcclxuICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICk7XHJcbiAgc3RvcmUuc3Vic2NyaXB0aW9ucy5hZGQoYXRvbS53b3Jrc3BhY2UuYWRkT3BlbmVyKGlweW5iT3BlbmVyKSk7XHJcbiAgc3RvcmUuc3Vic2NyaXB0aW9ucy5hZGQoXHJcbiAgICAvLyBEZXN0cm95IGFueSBQYW5lcyB3aGVuIHRoZSBwYWNrYWdlIGlzIGRlYWN0aXZhdGVkLlxyXG4gICAgbmV3IERpc3Bvc2FibGUoKCkgPT4ge1xyXG4gICAgICBhdG9tLndvcmtzcGFjZS5nZXRQYW5lSXRlbXMoKS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgaXRlbSBpbnN0YW5jZW9mIEluc3BlY3RvclBhbmUgfHxcclxuICAgICAgICAgIGl0ZW0gaW5zdGFuY2VvZiBXYXRjaGVzUGFuZSB8fFxyXG4gICAgICAgICAgaXRlbSBpbnN0YW5jZW9mIE91dHB1dFBhbmUgfHxcclxuICAgICAgICAgIGl0ZW0gaW5zdGFuY2VvZiBLZXJuZWxNb25pdG9yUGFuZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaXRlbS5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pXHJcbiAgKTtcclxuICBhdXRvcnVuKCgpID0+IHtcclxuICAgIGVtaXR0ZXIuZW1pdChcImRpZC1jaGFuZ2Uta2VybmVsXCIsIHN0b3JlLmtlcm5lbCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWFjdGl2YXRlKCkge1xyXG4gIHN0b3JlLmRpc3Bvc2UoKTtcclxufVxyXG5cclxuLyotLS0tLS0tLS0tLS0tLSBTZXJ2aWNlIFByb3ZpZGVycyAtLS0tLS0tLS0tLS0tLSovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlSHlkcm9nZW4oKSB7XHJcbiAgaWYgKCFoeWRyb2dlblByb3ZpZGVyKSB7XHJcbiAgICBoeWRyb2dlblByb3ZpZGVyID0gbmV3IEh5ZHJvZ2VuUHJvdmlkZXIoZW1pdHRlcik7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gaHlkcm9nZW5Qcm92aWRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBdXRvY29tcGxldGVSZXN1bHRzKCkge1xyXG4gIHJldHVybiBzZXJ2aWNlcy5wcm92aWRlZC5hdXRvY29tcGxldGUucHJvdmlkZUF1dG9jb21wbGV0ZVJlc3VsdHMoc3RvcmUpO1xyXG59XHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0gU2VydmljZSBDb25zdW1lcnMgLS0tLS0tLS0tLS0tLS0qL1xyXG5leHBvcnQgZnVuY3Rpb24gY29uc3VtZUF1dG9jb21wbGV0ZVdhdGNoRWRpdG9yKFxyXG4gIHdhdGNoRWRpdG9yOiAoLi4uYXJnczogQXJyYXk8YW55PikgPT4gYW55XHJcbikge1xyXG4gIHJldHVybiBzZXJ2aWNlcy5jb25zdW1lZC5hdXRvY29tcGxldGUuY29uc3VtZShzdG9yZSwgd2F0Y2hFZGl0b3IpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29uc3VtZVN0YXR1c0JhcihzdGF0dXNCYXI6IFN0YXR1c0Jhcikge1xyXG4gIHJldHVybiBzZXJ2aWNlcy5jb25zdW1lZC5zdGF0dXNCYXIuYWRkU3RhdHVzQmFyKFxyXG4gICAgc3RvcmUsXHJcbiAgICBzdGF0dXNCYXIsXHJcbiAgICBoYW5kbGVLZXJuZWxDb21tYW5kXHJcbiAgKTtcclxufVxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbmZ1bmN0aW9uIGNvbm5lY3RUb0V4aXN0aW5nS2VybmVsKCkge1xyXG4gIGlmICghZXhpc3RpbmdLZXJuZWxQaWNrZXIpIHtcclxuICAgIGV4aXN0aW5nS2VybmVsUGlja2VyID0gbmV3IEV4aXN0aW5nS2VybmVsUGlja2VyKCk7XHJcbiAgfVxyXG5cclxuICBleGlzdGluZ0tlcm5lbFBpY2tlci50b2dnbGUoKTtcclxufVxyXG5cclxuaW50ZXJmYWNlIEtlcm5lbENvbW1hbmQge1xyXG4gIGNvbW1hbmQ6IHN0cmluZztcclxuICBwYXlsb2FkPzogS2VybmVsc3BlY01ldGFkYXRhIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuZnVuY3Rpb24gaGFuZGxlS2VybmVsQ29tbWFuZChcclxuICB7IGNvbW1hbmQsIHBheWxvYWQgfTogS2VybmVsQ29tbWFuZCwgLy8gVE9ETyBwYXlsb2FkIGlzIG5vdCB1c2VkIVxyXG4gIHsga2VybmVsLCBtYXJrZXJzIH06IFN0b3JlIHwgU3RvcmVMaWtlXHJcbikge1xyXG4gIGxvZyhcImhhbmRsZUtlcm5lbENvbW1hbmQ6XCIsIFtcclxuICAgIHsgY29tbWFuZCwgcGF5bG9hZCB9LFxyXG4gICAgeyBrZXJuZWwsIG1hcmtlcnMgfSxcclxuICBdKTtcclxuXHJcbiAgaWYgKCFrZXJuZWwpIHtcclxuICAgIGNvbnN0IG1lc3NhZ2UgPSBcIk5vIHJ1bm5pbmcga2VybmVsIGZvciBncmFtbWFyIG9yIGVkaXRvciBmb3VuZFwiO1xyXG4gICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKGNvbW1hbmQgPT09IFwiaW50ZXJydXB0LWtlcm5lbFwiKSB7XHJcbiAgICBrZXJuZWwuaW50ZXJydXB0KCk7XHJcbiAgfSBlbHNlIGlmIChjb21tYW5kID09PSBcInJlc3RhcnQta2VybmVsXCIpIHtcclxuICAgIGtlcm5lbC5yZXN0YXJ0KCk7XHJcbiAgfSBlbHNlIGlmIChjb21tYW5kID09PSBcInNodXRkb3duLWtlcm5lbFwiKSB7XHJcbiAgICBpZiAobWFya2Vycykge1xyXG4gICAgICBtYXJrZXJzLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgICAvLyBOb3RlIHRoYXQgZGVzdHJveSBhbG9uZSBkb2VzIG5vdCBzaHV0IGRvd24gYSBXU0tlcm5lbFxyXG4gICAga2VybmVsLnNodXRkb3duKCk7XHJcbiAgICBrZXJuZWwuZGVzdHJveSgpO1xyXG4gIH0gZWxzZSBpZiAoXHJcbiAgICBjb21tYW5kID09PSBcInJlbmFtZS1rZXJuZWxcIiAmJlxyXG4gICAga2VybmVsLnRyYW5zcG9ydCBpbnN0YW5jZW9mIFdTS2VybmVsXHJcbiAgKSB7XHJcbiAgICBrZXJuZWwudHJhbnNwb3J0LnByb21wdFJlbmFtZSgpO1xyXG4gIH0gZWxzZSBpZiAoY29tbWFuZCA9PT0gXCJkaXNjb25uZWN0LWtlcm5lbFwiKSB7XHJcbiAgICBpZiAobWFya2Vycykge1xyXG4gICAgICBtYXJrZXJzLmNsZWFyKCk7XHJcbiAgICB9XHJcbiAgICBrZXJuZWwuZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcnVuKG1vdmVEb3duOiBib29sZWFuID0gZmFsc2UpIHtcclxuICBjb25zdCBlZGl0b3IgPSBzdG9yZS5lZGl0b3I7XHJcbiAgaWYgKCFlZGl0b3IpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL250ZXJhY3QvaHlkcm9nZW4vaXNzdWVzLzE0NTJcclxuICBhdG9tLmNvbW1hbmRzLmRpc3BhdGNoKGVkaXRvci5lbGVtZW50LCBcImF1dG9jb21wbGV0ZS1wbHVzOmNhbmNlbFwiKTtcclxuICBjb25zdCBjb2RlQmxvY2sgPSBjb2RlTWFuYWdlci5maW5kQ29kZUJsb2NrKGVkaXRvcik7XHJcblxyXG4gIGlmICghY29kZUJsb2NrKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCBjb2RlTnVsbGFibGUgPSBjb2RlQmxvY2suY29kZTtcclxuICBpZiAoY29kZU51bGxhYmxlID09PSBudWxsKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGNvbnN0IHsgcm93IH0gPSBjb2RlQmxvY2s7XHJcbiAgY29uc3QgY2VsbFR5cGUgPSBjb2RlTWFuYWdlci5nZXRNZXRhZGF0YUZvclJvdyhlZGl0b3IsIG5ldyBQb2ludChyb3csIDApKTtcclxuICBjb25zdCBjb2RlID1cclxuICAgIGNlbGxUeXBlID09PSBcIm1hcmtkb3duXCJcclxuICAgICAgPyBjb2RlTWFuYWdlci5yZW1vdmVDb21tZW50c01hcmtkb3duQ2VsbChlZGl0b3IsIGNvZGVOdWxsYWJsZSlcclxuICAgICAgOiBjb2RlTnVsbGFibGU7XHJcblxyXG4gIGlmIChtb3ZlRG93biA9PT0gdHJ1ZSkge1xyXG4gICAgY29kZU1hbmFnZXIubW92ZURvd24oZWRpdG9yLCByb3cpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JLZXJuZWwoc3RvcmUsIChrZXJuZWwpID0+IHtcclxuICAgIHJlc3VsdC5jcmVhdGVSZXN1bHQoc3RvcmUsIHtcclxuICAgICAgY29kZSxcclxuICAgICAgcm93LFxyXG4gICAgICBjZWxsVHlwZSxcclxuICAgIH0pO1xyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBydW5BbGwoYnJlYWtwb2ludHM/OiBBcnJheTxQb2ludD4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgY29uc3QgeyBlZGl0b3IsIGtlcm5lbCwgZ3JhbW1hciwgZmlsZVBhdGggfSA9IHN0b3JlO1xyXG4gIGlmICghZWRpdG9yIHx8ICFncmFtbWFyIHx8ICFmaWxlUGF0aCkge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKGlzTXVsdGlsYW5ndWFnZUdyYW1tYXIoZWRpdG9yLmdldEdyYW1tYXIoKSkpIHtcclxuICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRFcnJvcihcclxuICAgICAgJ1wiUnVuIEFsbFwiIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgZmlsZSB0eXBlISdcclxuICAgICk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpZiAoZWRpdG9yICYmIGtlcm5lbCkge1xyXG4gICAgX3J1bkFsbChlZGl0b3IsIGtlcm5lbCwgYnJlYWtwb2ludHMpO1xyXG5cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGtlcm5lbE1hbmFnZXIuc3RhcnRLZXJuZWxGb3IoZ3JhbW1hciwgZWRpdG9yLCBmaWxlUGF0aCwgKGtlcm5lbDogS2VybmVsKSA9PiB7XHJcbiAgICBfcnVuQWxsKGVkaXRvciwga2VybmVsLCBicmVha3BvaW50cyk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIF9ydW5BbGwoXHJcbiAgZWRpdG9yOiBUZXh0RWRpdG9yLFxyXG4gIGtlcm5lbDogS2VybmVsLFxyXG4gIGJyZWFrcG9pbnRzPzogQXJyYXk8UG9pbnQ+XHJcbikge1xyXG4gIGNvbnN0IGNlbGxzID0gY29kZU1hbmFnZXIuZ2V0Q2VsbHMoZWRpdG9yLCBicmVha3BvaW50cyk7XHJcblxyXG4gIGZvciAoY29uc3QgY2VsbCBvZiBjZWxscykge1xyXG4gICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBjZWxsO1xyXG4gICAgY29uc3QgY29kZU51bGxhYmxlID0gY29kZU1hbmFnZXIuZ2V0VGV4dEluUmFuZ2UoZWRpdG9yLCBzdGFydCwgZW5kKTtcclxuICAgIGlmIChjb2RlTnVsbGFibGUgPT09IG51bGwpIHtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCByb3cgPSBjb2RlTWFuYWdlci5lc2NhcGVCbGFua1Jvd3MoXHJcbiAgICAgIGVkaXRvcixcclxuICAgICAgc3RhcnQucm93LFxyXG4gICAgICBjb2RlTWFuYWdlci5nZXRFc2NhcGVCbGFua1Jvd3NFbmRSb3coZWRpdG9yLCBlbmQpXHJcbiAgICApO1xyXG4gICAgY29uc3QgY2VsbFR5cGUgPSBjb2RlTWFuYWdlci5nZXRNZXRhZGF0YUZvclJvdyhlZGl0b3IsIHN0YXJ0KTtcclxuICAgIGNvbnN0IGNvZGUgPVxyXG4gICAgICBjZWxsVHlwZSA9PT0gXCJtYXJrZG93blwiXHJcbiAgICAgICAgPyBjb2RlTWFuYWdlci5yZW1vdmVDb21tZW50c01hcmtkb3duQ2VsbChlZGl0b3IsIGNvZGVOdWxsYWJsZSlcclxuICAgICAgICA6IGNvZGVOdWxsYWJsZTtcclxuICAgIGNoZWNrRm9yS2VybmVsKHN0b3JlLCAoa2VybmVsKSA9PiB7XHJcbiAgICAgIHJlc3VsdC5jcmVhdGVSZXN1bHQoc3RvcmUsIHtcclxuICAgICAgICBjb2RlLFxyXG4gICAgICAgIHJvdyxcclxuICAgICAgICBjZWxsVHlwZSxcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJ1bkFsbEFib3ZlKCkge1xyXG4gIGNvbnN0IHsgZWRpdG9yLCBrZXJuZWwsIGdyYW1tYXIsIGZpbGVQYXRoIH0gPSBzdG9yZTtcclxuICBpZiAoIWVkaXRvciB8fCAhZ3JhbW1hciB8fCAhZmlsZVBhdGgpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmIChpc011bHRpbGFuZ3VhZ2VHcmFtbWFyKGVkaXRvci5nZXRHcmFtbWFyKCkpKSB7XHJcbiAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkRXJyb3IoXHJcbiAgICAgICdcIlJ1biBBbGwgQWJvdmVcIiBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIGZpbGUgdHlwZSEnXHJcbiAgICApO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgaWYgKGVkaXRvciAmJiBrZXJuZWwpIHtcclxuICAgIF9ydW5BbGxBYm92ZShlZGl0b3IsIGtlcm5lbCk7XHJcblxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAga2VybmVsTWFuYWdlci5zdGFydEtlcm5lbEZvcihncmFtbWFyLCBlZGl0b3IsIGZpbGVQYXRoLCAoa2VybmVsOiBLZXJuZWwpID0+IHtcclxuICAgIF9ydW5BbGxBYm92ZShlZGl0b3IsIGtlcm5lbCk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIF9ydW5BbGxBYm92ZShlZGl0b3I6IFRleHRFZGl0b3IsIGtlcm5lbDogS2VybmVsKSB7XHJcbiAgY29uc3QgY3Vyc29yID0gZWRpdG9yLmdldEN1cnNvckJ1ZmZlclBvc2l0aW9uKCk7XHJcbiAgY3Vyc29yLmNvbHVtbiA9IGVkaXRvci5nZXRCdWZmZXIoKS5saW5lTGVuZ3RoRm9yUm93KGN1cnNvci5yb3cpO1xyXG4gIGNvbnN0IGJyZWFrcG9pbnRzID0gY29kZU1hbmFnZXIuZ2V0QnJlYWtwb2ludHMoZWRpdG9yKTtcclxuICBicmVha3BvaW50cy5wdXNoKGN1cnNvcik7XHJcbiAgY29uc3QgY2VsbHMgPSBjb2RlTWFuYWdlci5nZXRDZWxscyhlZGl0b3IsIGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgZm9yIChjb25zdCBjZWxsIG9mIGNlbGxzKSB7XHJcbiAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IGNlbGw7XHJcbiAgICBjb25zdCBjb2RlTnVsbGFibGUgPSBjb2RlTWFuYWdlci5nZXRUZXh0SW5SYW5nZShlZGl0b3IsIHN0YXJ0LCBlbmQpO1xyXG4gICAgY29uc3Qgcm93ID0gY29kZU1hbmFnZXIuZXNjYXBlQmxhbmtSb3dzKFxyXG4gICAgICBlZGl0b3IsXHJcbiAgICAgIHN0YXJ0LnJvdyxcclxuICAgICAgY29kZU1hbmFnZXIuZ2V0RXNjYXBlQmxhbmtSb3dzRW5kUm93KGVkaXRvciwgZW5kKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNlbGxUeXBlID0gY29kZU1hbmFnZXIuZ2V0TWV0YWRhdGFGb3JSb3coZWRpdG9yLCBzdGFydCk7XHJcblxyXG4gICAgaWYgKGNvZGVOdWxsYWJsZSAhPT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBjb2RlID1cclxuICAgICAgICBjZWxsVHlwZSA9PT0gXCJtYXJrZG93blwiXHJcbiAgICAgICAgICA/IGNvZGVNYW5hZ2VyLnJlbW92ZUNvbW1lbnRzTWFya2Rvd25DZWxsKGVkaXRvciwgY29kZU51bGxhYmxlKVxyXG4gICAgICAgICAgOiBjb2RlTnVsbGFibGU7XHJcbiAgICAgIGNoZWNrRm9yS2VybmVsKHN0b3JlLCAoa2VybmVsKSA9PiB7XHJcbiAgICAgICAgcmVzdWx0LmNyZWF0ZVJlc3VsdChzdG9yZSwge1xyXG4gICAgICAgICAgY29kZSxcclxuICAgICAgICAgIHJvdyxcclxuICAgICAgICAgIGNlbGxUeXBlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2VsbC5jb250YWluc1BvaW50KGN1cnNvcikpIHtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBydW5DZWxsKG1vdmVEb3duOiBib29sZWFuID0gZmFsc2UpIHtcclxuICBjb25zdCBlZGl0b3IgPSBzdG9yZS5lZGl0b3I7XHJcbiAgaWYgKCFlZGl0b3IpIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL250ZXJhY3QvaHlkcm9nZW4vaXNzdWVzLzE0NTJcclxuICBhdG9tLmNvbW1hbmRzLmRpc3BhdGNoKGVkaXRvci5lbGVtZW50LCBcImF1dG9jb21wbGV0ZS1wbHVzOmNhbmNlbFwiKTtcclxuICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IGNvZGVNYW5hZ2VyLmdldEN1cnJlbnRDZWxsKGVkaXRvcik7XHJcbiAgY29uc3QgY29kZU51bGxhYmxlID0gY29kZU1hbmFnZXIuZ2V0VGV4dEluUmFuZ2UoZWRpdG9yLCBzdGFydCwgZW5kKTtcclxuICBpZiAoY29kZU51bGxhYmxlID09PSBudWxsKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGNvbnN0IHJvdyA9IGNvZGVNYW5hZ2VyLmVzY2FwZUJsYW5rUm93cyhcclxuICAgIGVkaXRvcixcclxuICAgIHN0YXJ0LnJvdyxcclxuICAgIGNvZGVNYW5hZ2VyLmdldEVzY2FwZUJsYW5rUm93c0VuZFJvdyhlZGl0b3IsIGVuZClcclxuICApO1xyXG4gIGNvbnN0IGNlbGxUeXBlID0gY29kZU1hbmFnZXIuZ2V0TWV0YWRhdGFGb3JSb3coZWRpdG9yLCBzdGFydCk7XHJcbiAgY29uc3QgY29kZSA9XHJcbiAgICBjZWxsVHlwZSA9PT0gXCJtYXJrZG93blwiXHJcbiAgICAgID8gY29kZU1hbmFnZXIucmVtb3ZlQ29tbWVudHNNYXJrZG93bkNlbGwoZWRpdG9yLCBjb2RlTnVsbGFibGUpXHJcbiAgICAgIDogY29kZU51bGxhYmxlO1xyXG5cclxuICBpZiAobW92ZURvd24gPT09IHRydWUpIHtcclxuICAgIGNvZGVNYW5hZ2VyLm1vdmVEb3duKGVkaXRvciwgcm93KTtcclxuICB9XHJcblxyXG4gIGNoZWNrRm9yS2VybmVsKHN0b3JlLCAoa2VybmVsKSA9PiB7XHJcbiAgICByZXN1bHQuY3JlYXRlUmVzdWx0KHN0b3JlLCB7XHJcbiAgICAgIGNvZGUsXHJcbiAgICAgIHJvdyxcclxuICAgICAgY2VsbFR5cGUsXHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gZm9sZEN1cnJlbnRDZWxsKCkge1xyXG4gIGNvbnN0IGVkaXRvciA9IHN0b3JlLmVkaXRvcjtcclxuICBpZiAoIWVkaXRvcikge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBjb2RlTWFuYWdlci5mb2xkQ3VycmVudENlbGwoZWRpdG9yKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZm9sZEFsbEJ1dEN1cnJlbnRDZWxsKCkge1xyXG4gIGNvbnN0IGVkaXRvciA9IHN0b3JlLmVkaXRvcjtcclxuICBpZiAoIWVkaXRvcikge1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBjb2RlTWFuYWdlci5mb2xkQWxsQnV0Q3VycmVudENlbGwoZWRpdG9yKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc3RhcnRaTVFLZXJuZWwoKSB7XHJcbiAga2VybmVsTWFuYWdlclxyXG4gICAgLmdldEFsbEtlcm5lbFNwZWNzRm9yR3JhbW1hcihzdG9yZS5ncmFtbWFyKVxyXG4gICAgLnRoZW4oKGtlcm5lbFNwZWNzKSA9PiB7XHJcbiAgICAgIGlmIChrZXJuZWxQaWNrZXIpIHtcclxuICAgICAgICBrZXJuZWxQaWNrZXIua2VybmVsU3BlY3MgPSBrZXJuZWxTcGVjcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBrZXJuZWxQaWNrZXIgPSBuZXcgS2VybmVsUGlja2VyKGtlcm5lbFNwZWNzKTtcclxuXHJcbiAgICAgICAga2VybmVsUGlja2VyLm9uQ29uZmlybWVkID0gKGtlcm5lbFNwZWM6IEtlcm5lbHNwZWNNZXRhZGF0YSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBlZGl0b3IsIGdyYW1tYXIsIGZpbGVQYXRoLCBtYXJrZXJzIH0gPSBzdG9yZTtcclxuICAgICAgICAgIGlmICghZWRpdG9yIHx8ICFncmFtbWFyIHx8ICFmaWxlUGF0aCB8fCAhbWFya2Vycykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBtYXJrZXJzLmNsZWFyKCk7XHJcbiAgICAgICAgICBrZXJuZWxNYW5hZ2VyLnN0YXJ0S2VybmVsKGtlcm5lbFNwZWMsIGdyYW1tYXIsIGVkaXRvciwgZmlsZVBhdGgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGtlcm5lbFBpY2tlci50b2dnbGUoKTtcclxuICAgIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb25uZWN0VG9XU0tlcm5lbCgpIHtcclxuICBpZiAoIXdzS2VybmVsUGlja2VyKSB7XHJcbiAgICB3c0tlcm5lbFBpY2tlciA9IG5ldyBXU0tlcm5lbFBpY2tlcigodHJhbnNwb3J0OiBXU0tlcm5lbCkgPT4ge1xyXG4gICAgICBjb25zdCBrZXJuZWwgPSBuZXcgS2VybmVsKHRyYW5zcG9ydCk7XHJcbiAgICAgIGNvbnN0IHsgZWRpdG9yLCBncmFtbWFyLCBmaWxlUGF0aCwgbWFya2VycyB9ID0gc3RvcmU7XHJcbiAgICAgIGlmICghZWRpdG9yIHx8ICFncmFtbWFyIHx8ICFmaWxlUGF0aCB8fCAhbWFya2Vycykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBtYXJrZXJzLmNsZWFyKCk7XHJcbiAgICAgIGlmIChrZXJuZWwudHJhbnNwb3J0IGluc3RhbmNlb2YgWk1RS2VybmVsKSB7XHJcbiAgICAgICAga2VybmVsLmRlc3Ryb3koKTtcclxuICAgICAgfVxyXG4gICAgICBzdG9yZS5uZXdLZXJuZWwoa2VybmVsLCBmaWxlUGF0aCwgZWRpdG9yLCBncmFtbWFyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgd3NLZXJuZWxQaWNrZXIudG9nZ2xlKChrZXJuZWxTcGVjOiBLZXJuZWxzcGVjTWV0YWRhdGEpID0+XHJcbiAgICBrZXJuZWxTcGVjUHJvdmlkZXNHcmFtbWFyKGtlcm5lbFNwZWMsIHN0b3JlLmdyYW1tYXIpXHJcbiAgKTtcclxufVxyXG5cclxuLy8gQWNjZXB0cyBzdG9yZSBhcyBhbiBhcmdcclxuZnVuY3Rpb24gY2hlY2tGb3JLZXJuZWwoXHJcbiAge1xyXG4gICAgZWRpdG9yLFxyXG4gICAgZ3JhbW1hcixcclxuICAgIGZpbGVQYXRoLFxyXG4gICAga2VybmVsLFxyXG4gIH06IHtcclxuICAgIGVkaXRvcjogVGV4dEVkaXRvcjtcclxuICAgIGdyYW1tYXI6IEdyYW1tYXI7XHJcbiAgICBmaWxlUGF0aDogc3RyaW5nO1xyXG4gICAga2VybmVsPzogS2VybmVsO1xyXG4gIH0sXHJcbiAgY2FsbGJhY2s6IChrZXJuZWw6IEtlcm5lbCkgPT4gdm9pZFxyXG4pIHtcclxuICBpZiAoIWZpbGVQYXRoIHx8ICFncmFtbWFyKSB7XHJcbiAgICByZXR1cm4gYXRvbS5ub3RpZmljYXRpb25zLmFkZEVycm9yKFxyXG4gICAgICBcIlRoZSBsYW5ndWFnZSBncmFtbWFyIG11c3QgYmUgc2V0IGluIG9yZGVyIHRvIHN0YXJ0IGEga2VybmVsLiBUaGUgZWFzaWVzdCB3YXkgdG8gZG8gdGhpcyBpcyB0byBzYXZlIHRoZSBmaWxlLlwiXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaWYgKGtlcm5lbCkge1xyXG4gICAgY2FsbGJhY2soa2VybmVsKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGtlcm5lbE1hbmFnZXIuc3RhcnRLZXJuZWxGb3IoZ3JhbW1hciwgZWRpdG9yLCBmaWxlUGF0aCwgKG5ld0tlcm5lbDogS2VybmVsKSA9PlxyXG4gICAgY2FsbGJhY2sobmV3S2VybmVsKVxyXG4gICk7XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/dist/tsconfig.tsbuildinfo b/dist/tsconfig.tsbuildinfo index 504df400d..d0c670f00 100644 --- a/dist/tsconfig.tsbuildinfo +++ b/dist/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/ts3.6/base.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/base.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/atom/src/atom-environment.d.ts","../node_modules/@types/atom/src/text-editor-element.d.ts","../node_modules/@types/atom/dependencies/event-kit/index.d.ts","../node_modules/@types/atom/dependencies/first-mate/src/grammar.d.ts","../node_modules/@types/atom/dependencies/first-mate/src/first-mate.d.ts","../node_modules/@types/atom/dependencies/first-mate/index.d.ts","../node_modules/@types/atom/dependencies/pathwatcher/src/file.d.ts","../node_modules/@types/atom/dependencies/pathwatcher/src/directory.d.ts","../node_modules/@types/atom/dependencies/pathwatcher/src/main.d.ts","../node_modules/@types/atom/dependencies/pathwatcher/index.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/display-marker.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/display-marker-layer.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/helpers.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/marker.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/marker-layer.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/point.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/range.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/text-buffer.d.ts","../node_modules/@types/atom/dependencies/text-buffer/index.d.ts","../node_modules/@types/atom/src/buffered-node-process.d.ts","../node_modules/@types/atom/src/buffered-process.d.ts","../node_modules/@types/atom/src/clipboard.d.ts","../node_modules/@types/atom/src/color.d.ts","../node_modules/@types/atom/src/command-registry.d.ts","../node_modules/@types/atom/src/config.d.ts","../node_modules/@types/atom/src/config-schema.d.ts","../node_modules/@types/atom/src/context-menu-manager.d.ts","../node_modules/@types/atom/src/cursor.d.ts","../node_modules/@types/atom/src/decoration.d.ts","../node_modules/@types/atom/src/deserializer-manager.d.ts","../node_modules/@types/atom/src/dock.d.ts","../node_modules/@types/atom/src/get-window-load-settings.d.ts","../node_modules/@types/atom/src/git-repository.d.ts","../node_modules/@types/atom/src/grammar-registry.d.ts","../node_modules/@types/atom/src/gutter.d.ts","../node_modules/@types/atom/src/history-manager.d.ts","../node_modules/@types/atom/src/keymap-extensions.d.ts","../node_modules/@types/atom/src/layer-decoration.d.ts","../node_modules/@types/atom/src/menu-manager.d.ts","../node_modules/@types/atom/src/notification.d.ts","../node_modules/@types/atom/src/notification-manager.d.ts","../node_modules/@types/atom/src/other-types.d.ts","../node_modules/@types/atom/src/package.d.ts","../node_modules/@types/atom/src/package-manager.d.ts","../node_modules/@types/atom/src/pane.d.ts","../node_modules/@types/atom/src/panel.d.ts","../node_modules/@types/atom/src/path-watcher.d.ts","../node_modules/@types/atom/src/project.d.ts","../node_modules/@types/atom/src/scope-descriptor.d.ts","../node_modules/@types/atom/src/selection.d.ts","../node_modules/@types/atom/src/style-manager.d.ts","../node_modules/@types/atom/src/task.d.ts","../node_modules/@types/atom/src/text-editor.d.ts","../node_modules/@types/atom/src/text-editor-component.d.ts","../node_modules/@types/atom/src/text-editor-registry.d.ts","../node_modules/@types/atom/src/theme-manager.d.ts","../node_modules/@types/atom/src/tooltip.d.ts","../node_modules/@types/atom/src/tooltip-manager.d.ts","../node_modules/@types/atom/src/view-registry.d.ts","../node_modules/@types/atom/src/workspace.d.ts","../node_modules/@types/atom/src/workspace-center.d.ts","../node_modules/@types/atom/index.d.ts","../node_modules/escape-string-regexp/index.d.ts","../node_modules/strip-indent/index.d.ts","../node_modules/@types/lodash/common/common.d.ts","../node_modules/@types/lodash/common/array.d.ts","../node_modules/@types/lodash/common/collection.d.ts","../node_modules/@types/lodash/common/date.d.ts","../node_modules/@types/lodash/common/function.d.ts","../node_modules/@types/lodash/common/lang.d.ts","../node_modules/@types/lodash/common/math.d.ts","../node_modules/@types/lodash/common/number.d.ts","../node_modules/@types/lodash/common/object.d.ts","../node_modules/@types/lodash/common/seq.d.ts","../node_modules/@types/lodash/common/string.d.ts","../node_modules/@types/lodash/common/util.d.ts","../node_modules/@types/lodash/index.d.ts","../node_modules/@types/react/global.d.ts","../node_modules/csstype/index.d.ts","../node_modules/@types/prop-types/index.d.ts","../node_modules/@types/scheduler/tracing.d.ts","../node_modules/@types/react/index.d.ts","../node_modules/@types/react-dom/index.d.ts","../lib/config.ts","../node_modules/mobx/lib/utils/utils.d.ts","../node_modules/mobx/lib/core/atom.d.ts","../node_modules/mobx/lib/utils/comparer.d.ts","../node_modules/mobx/lib/utils/decorators.d.ts","../node_modules/mobx/lib/types/modifiers.d.ts","../node_modules/mobx/lib/api/observabledecorator.d.ts","../node_modules/mobx/lib/api/observable.d.ts","../node_modules/mobx/lib/api/computed.d.ts","../node_modules/mobx/lib/core/action.d.ts","../node_modules/mobx/lib/types/observablevalue.d.ts","../node_modules/mobx/lib/core/computedvalue.d.ts","../node_modules/mobx/lib/core/derivation.d.ts","../node_modules/mobx/lib/core/globalstate.d.ts","../node_modules/mobx/lib/core/observable.d.ts","../node_modules/mobx/lib/core/reaction.d.ts","../node_modules/mobx/lib/core/spy.d.ts","../node_modules/mobx/lib/api/actiondecorator.d.ts","../node_modules/mobx/lib/api/action.d.ts","../node_modules/mobx/lib/api/autorun.d.ts","../node_modules/mobx/lib/api/become-observed.d.ts","../node_modules/mobx/lib/api/configure.d.ts","../node_modules/mobx/lib/api/decorate.d.ts","../node_modules/mobx/lib/api/extendobservable.d.ts","../node_modules/mobx/lib/api/extras.d.ts","../node_modules/mobx/lib/api/flow.d.ts","../node_modules/mobx/lib/api/intercept-read.d.ts","../node_modules/mobx/lib/api/intercept.d.ts","../node_modules/mobx/lib/api/iscomputed.d.ts","../node_modules/mobx/lib/api/isobservable.d.ts","../node_modules/mobx/lib/api/object-api.d.ts","../node_modules/mobx/lib/api/observe.d.ts","../node_modules/mobx/lib/api/tojs.d.ts","../node_modules/mobx/lib/api/trace.d.ts","../node_modules/mobx/lib/api/transaction.d.ts","../node_modules/mobx/lib/api/when.d.ts","../node_modules/mobx/lib/types/dynamicobject.d.ts","../node_modules/mobx/lib/types/intercept-utils.d.ts","../node_modules/mobx/lib/types/listen-utils.d.ts","../node_modules/mobx/lib/types/observablearray.d.ts","../node_modules/mobx/lib/types/observablemap.d.ts","../node_modules/mobx/lib/types/observableset.d.ts","../node_modules/mobx/lib/types/observableobject.d.ts","../node_modules/mobx/lib/types/type-utils.d.ts","../node_modules/mobx/lib/utils/eq.d.ts","../node_modules/mobx/lib/utils/iterable.d.ts","../node_modules/mobx/lib/internal.d.ts","../node_modules/mobx/lib/mobx.d.ts","../node_modules/@nteract/mathjax/lib/context.d.ts","../node_modules/@nteract/mathjax/lib/node.d.ts","../node_modules/@nteract/mathjax/lib/text.d.ts","../node_modules/@nteract/mathjax/lib/provider.d.ts","../node_modules/@nteract/mathjax/lib/index.d.ts","../node_modules/escape-carriage/index.d.ts","../node_modules/mobx-react-lite/dist/assertenvironment.d.ts","../node_modules/mobx-react-lite/dist/staticrendering.d.ts","../node_modules/mobx-react-lite/dist/observer.d.ts","../node_modules/mobx-react-lite/dist/useobserver.d.ts","../node_modules/mobx-react-lite/dist/observercomponent.d.ts","../node_modules/mobx-react-lite/dist/utils.d.ts","../node_modules/mobx-react-lite/dist/useasobservablesource.d.ts","../node_modules/mobx-react-lite/dist/uselocalstore.d.ts","../node_modules/mobx-react-lite/dist/usequeuedforceupdate.d.ts","../node_modules/mobx-react-lite/dist/observerbatching.d.ts","../node_modules/mobx-react-lite/dist/index.d.ts","../node_modules/mobx-react/dist/types/ireactcomponent.d.ts","../node_modules/mobx-react/dist/observer.d.ts","../node_modules/mobx-react/dist/types/ivaluemap.d.ts","../node_modules/mobx-react/dist/provider.d.ts","../node_modules/mobx-react/dist/types/iwrappedcomponent.d.ts","../node_modules/mobx-react/dist/types/istorestoprops.d.ts","../node_modules/mobx-react/dist/inject.d.ts","../node_modules/mobx-react/dist/disposeonunmount.d.ts","../node_modules/mobx-react/dist/proptypes.d.ts","../node_modules/mobx-react/dist/index.d.ts","../node_modules/immutable/dist/immutable-nonambient.d.ts","../node_modules/@nteract/commutable/lib/primitives.d.ts","../node_modules/@nteract/commutable/lib/outputs.d.ts","../node_modules/@nteract/commutable/lib/cells.d.ts","../node_modules/@nteract/commutable/lib/structures.d.ts","../node_modules/@nteract/commutable/lib/v4.d.ts","../node_modules/@nteract/commutable/lib/v3.d.ts","../node_modules/@nteract/commutable/lib/notebook.d.ts","../node_modules/@nteract/commutable/lib/index.d.ts","../node_modules/@nteract/outputs/lib/components/rich-media.d.ts","../node_modules/@nteract/outputs/lib/components/output.d.ts","../node_modules/@types/hoist-non-react-statics/index.d.ts","../node_modules/@types/styled-components/index.d.ts","../node_modules/@nteract/outputs/lib/components/kernel-output-error.d.ts","../node_modules/@nteract/outputs/lib/components/display-data.d.ts","../node_modules/@nteract/outputs/lib/components/execute-result.d.ts","../node_modules/@nteract/outputs/lib/components/stream-text.d.ts","../node_modules/@nteract/outputs/lib/components/prompt.d.ts","../node_modules/@nteract/outputs/lib/components/media/html.d.ts","../node_modules/@nteract/outputs/lib/components/media/json.d.ts","../node_modules/@nteract/outputs/lib/components/media/svg.d.ts","../node_modules/@nteract/outputs/lib/components/media/plain.d.ts","../node_modules/@nteract/outputs/lib/components/media/markdown.d.ts","../node_modules/@nteract/outputs/lib/components/media/latex.d.ts","../node_modules/@nteract/outputs/lib/components/media/image.d.ts","../node_modules/@nteract/outputs/lib/components/media/javascript.d.ts","../node_modules/@nteract/outputs/lib/components/media/index.d.ts","../node_modules/@nteract/outputs/lib/index.d.ts","../node_modules/electron/electron.d.ts","../lib/components/result-view/plotly.tsx","../node_modules/@nteract/transform-vega/lib/mime.d.ts","../node_modules/@nteract/transform-vega/lib/external.d.ts","../node_modules/@nteract/transform-vega/lib/index.d.ts","../node_modules/react-markdown/index.d.ts","../node_modules/@nteract/markdown/lib/attachment/attachment-transformer.d.ts","../node_modules/@nteract/markdown/lib/markdown-render.d.ts","../node_modules/@nteract/markdown/lib/markdown-previewer.d.ts","../node_modules/@nteract/markdown/lib/index.d.ts","../lib/components/result-view/markdown.tsx","../lib/components/result-view/display.tsx","../lib/store/output.ts","../lib/components/result-view/status.tsx","../lib/store/watch.ts","../node_modules/@types/atom/autocomplete-plus/config.d.ts","../node_modules/@types/atom/autocomplete-plus/index.d.ts","../lib/services/consumed/autocomplete.ts","../lib/store/watches.ts","../lib/plugin-api/hydrogen-types.ts","../lib/plugin-api/hydrogen-kernel.ts","../lib/input-view.ts","../node_modules/@nteract/types/lib/refs.d.ts","../node_modules/@nteract/types/lib/entities/contents/directory.d.ts","../node_modules/@nteract/types/lib/entities/contents/dummy.d.ts","../node_modules/@nteract/types/lib/entities/contents/file.d.ts","../node_modules/@nteract/types/lib/entities/contents/notebook.d.ts","../node_modules/@nteract/types/lib/entities/contents/index.d.ts","../node_modules/@nteract/types/lib/ids.d.ts","../node_modules/rxjs/internal/subscription.d.ts","../node_modules/rxjs/internal/types.d.ts","../node_modules/rxjs/internal/subscriber.d.ts","../node_modules/rxjs/internal/operator.d.ts","../node_modules/rxjs/internal/observable/iif.d.ts","../node_modules/rxjs/internal/observable/throwerror.d.ts","../node_modules/rxjs/internal/observable.d.ts","../node_modules/rxjs/internal/subject.d.ts","../node_modules/rxjs/internal/observable/connectableobservable.d.ts","../node_modules/rxjs/internal/operators/groupby.d.ts","../node_modules/rxjs/internal/symbol/observable.d.ts","../node_modules/rxjs/internal/behaviorsubject.d.ts","../node_modules/rxjs/internal/replaysubject.d.ts","../node_modules/rxjs/internal/asyncsubject.d.ts","../node_modules/rxjs/internal/scheduler.d.ts","../node_modules/rxjs/internal/scheduler/action.d.ts","../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts","../node_modules/rxjs/internal/scheduler/asyncaction.d.ts","../node_modules/rxjs/internal/scheduler/asapscheduler.d.ts","../node_modules/rxjs/internal/scheduler/asap.d.ts","../node_modules/rxjs/internal/scheduler/async.d.ts","../node_modules/rxjs/internal/scheduler/queuescheduler.d.ts","../node_modules/rxjs/internal/scheduler/queue.d.ts","../node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts","../node_modules/rxjs/internal/scheduler/animationframe.d.ts","../node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts","../node_modules/rxjs/internal/notification.d.ts","../node_modules/rxjs/internal/util/pipe.d.ts","../node_modules/rxjs/internal/util/noop.d.ts","../node_modules/rxjs/internal/util/identity.d.ts","../node_modules/rxjs/internal/util/isobservable.d.ts","../node_modules/rxjs/internal/util/argumentoutofrangeerror.d.ts","../node_modules/rxjs/internal/util/emptyerror.d.ts","../node_modules/rxjs/internal/util/objectunsubscribederror.d.ts","../node_modules/rxjs/internal/util/unsubscriptionerror.d.ts","../node_modules/rxjs/internal/util/timeouterror.d.ts","../node_modules/rxjs/internal/observable/bindcallback.d.ts","../node_modules/rxjs/internal/observable/bindnodecallback.d.ts","../node_modules/rxjs/internal/innersubscriber.d.ts","../node_modules/rxjs/internal/outersubscriber.d.ts","../node_modules/rxjs/internal/observable/combinelatest.d.ts","../node_modules/rxjs/internal/observable/concat.d.ts","../node_modules/rxjs/internal/observable/defer.d.ts","../node_modules/rxjs/internal/observable/empty.d.ts","../node_modules/rxjs/internal/observable/forkjoin.d.ts","../node_modules/rxjs/internal/observable/from.d.ts","../node_modules/rxjs/internal/observable/fromevent.d.ts","../node_modules/rxjs/internal/observable/fromeventpattern.d.ts","../node_modules/rxjs/internal/observable/generate.d.ts","../node_modules/rxjs/internal/observable/interval.d.ts","../node_modules/rxjs/internal/observable/merge.d.ts","../node_modules/rxjs/internal/observable/never.d.ts","../node_modules/rxjs/internal/observable/of.d.ts","../node_modules/rxjs/internal/observable/onerrorresumenext.d.ts","../node_modules/rxjs/internal/observable/pairs.d.ts","../node_modules/rxjs/internal/observable/partition.d.ts","../node_modules/rxjs/internal/observable/race.d.ts","../node_modules/rxjs/internal/observable/range.d.ts","../node_modules/rxjs/internal/observable/timer.d.ts","../node_modules/rxjs/internal/observable/using.d.ts","../node_modules/rxjs/internal/observable/zip.d.ts","../node_modules/rxjs/internal/scheduled/scheduled.d.ts","../node_modules/rxjs/internal/config.d.ts","../node_modules/rxjs/index.d.ts","../node_modules/@nteract/types/lib/entities/hosts/base.d.ts","../node_modules/@nteract/types/lib/entities/hosts/local-jupyter.d.ts","../node_modules/rxjs/internal/observable/dom/ajaxobservable.d.ts","../node_modules/rxjs/internal/observable/dom/ajax.d.ts","../node_modules/rxjs/ajax/index.d.ts","../node_modules/@nteract/types/lib/entities/hosts/remote-jupyter.d.ts","../node_modules/@nteract/types/lib/entities/hosts/empty.d.ts","../node_modules/@nteract/types/lib/entities/hosts/index.d.ts","../node_modules/@nteract/types/lib/entities/kernel-info.d.ts","../node_modules/@nteract/types/lib/entities/kernels.d.ts","../node_modules/@nteract/types/lib/entities/kernelspecs.d.ts","../node_modules/@nteract/types/lib/entities/messages.d.ts","../node_modules/@nteract/types/lib/entities/modals.d.ts","../node_modules/@nteract/types/lib/entities/sidebar.d.ts","../node_modules/@nteract/types/lib/entities/transforms.d.ts","../node_modules/@nteract/types/lib/entities/comms.d.ts","../node_modules/@nteract/types/lib/entities/editors.d.ts","../node_modules/@nteract/types/lib/entities/index.d.ts","../node_modules/@nteract/types/lib/content-provider.d.ts","../node_modules/@nteract/types/lib/errors/execute.d.ts","../node_modules/@nteract/types/lib/errors/launch.d.ts","../node_modules/@nteract/types/lib/errors/index.d.ts","../node_modules/@nteract/types/lib/index.d.ts","../node_modules/@phosphor/coreutils/lib/json.d.ts","../node_modules/@phosphor/coreutils/lib/mime.d.ts","../node_modules/@phosphor/coreutils/lib/promise.d.ts","../node_modules/@phosphor/coreutils/lib/random.d.ts","../node_modules/@phosphor/coreutils/lib/token.d.ts","../node_modules/@phosphor/coreutils/lib/uuid.d.ts","../node_modules/@phosphor/coreutils/lib/index.d.ts","../node_modules/@jupyterlab/services/lib/config/index.d.ts","../node_modules/@phosphor/algorithm/lib/array.d.ts","../node_modules/@phosphor/algorithm/lib/iter.d.ts","../node_modules/@phosphor/algorithm/lib/chain.d.ts","../node_modules/@phosphor/algorithm/lib/empty.d.ts","../node_modules/@phosphor/algorithm/lib/enumerate.d.ts","../node_modules/@phosphor/algorithm/lib/filter.d.ts","../node_modules/@phosphor/algorithm/lib/find.d.ts","../node_modules/@phosphor/algorithm/lib/map.d.ts","../node_modules/@phosphor/algorithm/lib/range.d.ts","../node_modules/@phosphor/algorithm/lib/reduce.d.ts","../node_modules/@phosphor/algorithm/lib/repeat.d.ts","../node_modules/@phosphor/algorithm/lib/retro.d.ts","../node_modules/@phosphor/algorithm/lib/sort.d.ts","../node_modules/@phosphor/algorithm/lib/stride.d.ts","../node_modules/@phosphor/algorithm/lib/string.d.ts","../node_modules/@phosphor/algorithm/lib/take.d.ts","../node_modules/@phosphor/algorithm/lib/zip.d.ts","../node_modules/@phosphor/algorithm/lib/index.d.ts","../node_modules/@phosphor/signaling/lib/index.d.ts","../node_modules/@phosphor/disposable/lib/index.d.ts","../node_modules/@phosphor/messaging/lib/index.d.ts","../node_modules/@jupyterlab/observables/lib/observablemap.d.ts","../node_modules/@jupyterlab/observables/lib/observablejson.d.ts","../node_modules/@jupyterlab/observables/lib/observablestring.d.ts","../node_modules/@jupyterlab/observables/lib/observablelist.d.ts","../node_modules/@jupyterlab/observables/lib/undoablelist.d.ts","../node_modules/@jupyterlab/observables/lib/modeldb.d.ts","../node_modules/@jupyterlab/observables/lib/index.d.ts","../node_modules/@jupyterlab/services/lib/contents/index.d.ts","../node_modules/@jupyterlab/coreutils/lib/activitymonitor.d.ts","../node_modules/@jupyterlab/coreutils/lib/interfaces.d.ts","../node_modules/@jupyterlab/coreutils/lib/dataconnector.d.ts","../node_modules/@jupyterlab/coreutils/lib/markdowncodeblocks.d.ts","../node_modules/@jupyterlab/coreutils/lib/nbformat.d.ts","../node_modules/@jupyterlab/coreutils/lib/pageconfig.d.ts","../node_modules/@jupyterlab/coreutils/lib/path.d.ts","../node_modules/@jupyterlab/coreutils/lib/settingregistry.d.ts","../node_modules/@jupyterlab/coreutils/lib/statedb.d.ts","../node_modules/@jupyterlab/coreutils/lib/text.d.ts","../node_modules/@jupyterlab/coreutils/lib/time.d.ts","../node_modules/@jupyterlab/coreutils/lib/url.d.ts","../node_modules/@jupyterlab/coreutils/lib/uuid.d.ts","../node_modules/@jupyterlab/coreutils/lib/index.d.ts","../node_modules/@jupyterlab/services/lib/kernel/messages.d.ts","../node_modules/@jupyterlab/services/lib/kernel/kernel.d.ts","../node_modules/@jupyterlab/services/lib/kernel/manager.d.ts","../node_modules/@jupyterlab/services/lib/kernel/index.d.ts","../node_modules/@jupyterlab/services/lib/serverconnection.d.ts","../node_modules/@jupyterlab/services/lib/builder/index.d.ts","../node_modules/@jupyterlab/services/lib/session/session.d.ts","../node_modules/@jupyterlab/services/lib/session/manager.d.ts","../node_modules/@jupyterlab/services/lib/session/index.d.ts","../node_modules/@jupyterlab/services/lib/setting/index.d.ts","../node_modules/@jupyterlab/services/lib/terminal/terminal.d.ts","../node_modules/@jupyterlab/services/lib/terminal/manager.d.ts","../node_modules/@jupyterlab/services/lib/terminal/index.d.ts","../node_modules/@jupyterlab/services/lib/manager.d.ts","../node_modules/@jupyterlab/services/lib/index.d.ts","../lib/kernel-transport.ts","../lib/hydrogen.ts","../lib/kernel.ts","../lib/components/result-view/result-view.tsx","../lib/components/result-view/index.tsx","../lib/store/markers.ts","../node_modules/kernelspecs/index.d.ts","../node_modules/@types/uuid/index.d.ts","../lib/zmq-kernel.ts","../lib/kernel-picker.ts","../lib/kernel-manager.ts","../lib/store/index.ts","../lib/utils.tsx","../lib/code-manager.ts","../node_modules/anser/lib/index.d.ts","../lib/components/result-view/history.tsx","../lib/components/result-view/list.tsx","../lib/components/output-area.tsx","../lib/panes/output-area.tsx","../lib/commands.ts","../node_modules/tildify/index.d.ts","../lib/existing-kernel-picker.ts","../lib/export-notebook.ts","../lib/components/watch-sidebar/watch.tsx","../lib/components/watch-sidebar/index.tsx","../lib/panes/watches.tsx","../lib/result.ts","../lib/import-notebook.ts","../node_modules/@types/atom/status-bar/config.d.ts","../node_modules/@types/atom/status-bar/index.d.ts","../lib/components/inspector.tsx","../lib/panes/inspector.tsx","../node_modules/@types/react-table/node_modules/@types/react/global.d.ts","../node_modules/@types/react-table/node_modules/@types/react/index.d.ts","../node_modules/@types/react-table/index.d.ts","../lib/components/kernel-monitor.tsx","../lib/panes/kernel-monitor.tsx","../lib/ws-kernel.ts","../node_modules/@types/ws/index.d.ts","../node_modules/@aminya/xmlhttprequest/lib/xmlhttprequest.d.ts","../node_modules/@aminya/xmlhttprequest/lib/domexception.d.ts","../node_modules/@aminya/xmlhttprequest/lib/index.d.ts","../lib/ws-kernel-picker.ts","../lib/plugin-api/hydrogen-provider.ts","../lib/services/consumed/status-bar/status-bar-component.tsx","../lib/services/consumed/status-bar/signal-list-view.ts","../lib/services/consumed/status-bar/status-bar.tsx","../lib/services/consumed/status-bar/index.ts","../lib/services/consumed/index.ts","../lib/services/provided/autocomplete.ts","../lib/services/provided/index.ts","../lib/services/index.ts","../lib/main.ts","../lib/module_types/atom/index.d.ts","../lib/module_types/atom/autocomplete-plus/index.d.ts","../lib/module_types/jupyter-paths/index.d.ts","../lib/module_types/kernelspecs/index.d.ts","../node_modules/@types/cheerio/index.d.ts","../node_modules/@types/dom4/index.d.ts","../node_modules/@types/enzyme/index.d.ts","../node_modules/@types/enzyme-adapter-react-16/index.d.ts","../node_modules/@types/unist/index.d.ts","../node_modules/@types/hast/index.d.ts","../node_modules/@types/jasmine/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/mdast/index.d.ts","../node_modules/@types/react-test-renderer/index.d.ts","../node_modules/@types/scheduler/index.d.ts"],"fileInfos":[{"version":"ac3a8c4040e183ce38da69d23b96939112457d1936198e6542672b7963cf0fce","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"1dad4fe1561d99dfd6709127608b99a76e5c2643626c800434f99c48038567ee","affectsGlobalScope":true},{"version":"cce43d02223f8049864f8568bed322c39424013275cd3bcc3f51492d8b546cb3","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"8dff1b4c2df638fcd976cbb0e636f23ab5968e836cd45084cc31d47d1ab19c49","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"8f4c9f651c8294a2eb1cbd12581fe25bfb901ab1d474bb93cd38c7e2f4be7a30","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"60761e6ea886034af0f294f025a7199360ce4e2c8ba4ec6408bc049cf9b89799","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},{"version":"25b4a0c4fab47c373ee49df4c239826ee3430019fc0c1b5e59edc3e398b7468d","affectsGlobalScope":true},"e23424b97418eca3226fd24de079f1203eb70360622e4e093af2aff14d4be6ec","a473cf45c3d9809518f8af913312139d9f4db6887dc554e0d06d0f4e52722e6b","a668dfae917097b30fc29bbebeeb869cee22529f2aa9976cea03c7e834a1b841","04eaa93bd75f937f9184dcb95a7983800c5770cf8ddd8ac0f3734dc02f5b20ef",{"version":"c8155caf28fc7b0a564156a5df28ad8a844a3bd32d331d148d8f3ce88025c870","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","aab38abd210255237d4dc101c9e5b5f8d746fd75aeb30cc77b6a4d322b06693d","797a9d37eb1f76143311c3f0a186ce5c0d8735e94c0ca08ff8712a876c9b4f9e","bc31e01146eec89eb870b9ad8c55d759bcbc8989a894e6f0f81f832e0d10eb04",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"153d835dc32985120790e10102834b0a5bd979bb5e42bfbb33c0ff6260cf03ce","affectsGlobalScope":true},"a44c87a409b60f211a240341905d818f5f173420dcf7f989ee6c8a1a3d812ae9","bdaf554ae2d9d09e2a42f58a29ef7f80e5b5c1d7b96bfb717243dc91a477216e","ea194ae7fee69ab77ee0ff7b7f35227eb09515583f6c08988a59fa65661af990","321ea733ae7f611077a2d7b4bc378ac4a6b7e365e1a51c71a7e5b2818e1e310a","13257840c0850d4ebd7c2b17604a9e006f752de76c2400ebc752bc465c330452","42176966283d3835c34278b9b5c0f470d484c0c0c6a55c20a2c916a1ce69b6e8","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","ae7b9d7ab1652cc1866ba6e269d0eeaf1708d07327714124ed2cbd059f5e4766","69640cc2e76dad52daeb9914e6b70c5c9a5591a3a65190a2d3ea432cf0015e16","21e64a125f65dff99cc3ed366c96e922b90daed343eb52ecdace5f220401dcda","4982d94cb6427263c8839d8d6324a8bbe129e931deb61a7380f8fad17ba2cfc0",{"version":"b0b00cf2e8107ab671243a73d2fbd6296a853bebe3fcfaaca293f65aaa245eaf","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","992c6f6be16c0a1d2eec13ece33adeea2c747ba27fcd078353a8f4bb5b4fea58","3b790d08129aca55fd5ae1672d1d26594147ac0d5f2eedc30c7575eb18daef7e","a6b0abdb67d63ebe964ba5fee31bc3daf10c12eecd46b24d778426010c04c67e","e7b5a3f40f19d9eea71890c70dfb37ac5dd82cbffe5f95bc8f23c536455732d0","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","0953427f9c2498f71dd912fdd8a81b19cf6925de3e1ad67ab9a77b9a0f79bf0b","f89a6d56f0267f6e73c707f8a89d2f38e9928e10bfa505f39a4f4bf954093aee","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","dcc6910d95a3625fd2b0487fda055988e46ab46c357a1b3618c27b4a8dd739c9","e649840284bab8c4d09cadc125cd7fbde7529690cc1a0881872b6a9cd202819b","a364b4a8a015ae377052fa4fac94204d79a69d879567f444c7ceff1b7a18482d","60c9e27816ec8ac8df7240598bb086e95b47edfb454c5cbf4003c812e0ed6e39","6c63cb179eda2be5ab45dc146fa4151bec8ce4781986935fe40adfc69cbbf214","4926467de88a92a4fc9971d8c6f21b91eca1c0e7fc2a46cc4638ab9440c73875",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"4e0a4d84b15692ea8669fe4f3d05a4f204567906b1347da7a58b75f45bae48d3","ae68a04912ee5a0f589276f9ec60b095f8c40d48128a4575b3fdd7d93806931c","b3593bd345ebea5e4d0a894c03251a3774b34df3d6db57075c18e089a599ba76","e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b","49daf80661034e07d919f1c716aef69324e34d18a63a282f8100f52c961b58a7","538743c4a70f32d2f6af137ff44a043c49dc8da6ebe2ad5e7da60cc953630e29","d2104c54b34158356c4c17dd37c7dd29e1c7dc4c77d9077e921f37d0b0f5cb87","8989b83d1d34dc4ef1100cbcc0f983f69d63118aeca3de5947e1c431ccd21ccc","35c935b77ca1da8fbf901931e0d8f25bff1cdedc9cbc01d98180cb496c445c21","3d1ffbc8fc8790ce6eef1e4ce1e79bfd5e9d0bc7d4f7cac0e95c54a7e1141875","128307a9785a229de861f811864e872ccc7b98da7953f6a67168addf64164fae","79d8197c490b07c732957dfc053b0a1bceaeba6cca9d3de6ce784d6b949fca4b","a49b47dfb004f10f3b23bb790de0c74667dfd053f7eda02ac831c351c7875498","5af3737dddb6e952a498672892404be1105ec2751b09467fbb5fd4b95efbd99b","9a1aef5196a946220a7ef874a7bc7424efef78d23ba8ff20df281b36ef62837a","3e587a8ba8dccc8217a1dfe64ca76e132ed54fdcc794765d090e0aa0147aad67","4d6e6619818eca8ab323f7b2199d9f2b324492bbf8e28dd29e3be90eb3530e8e","05d99f695e6424963c16f8a990e2fd0b703a8079baa1445ef2915fe525efc85b","acf2768b45d187b81284aa4f8e716413ce8776a90a72e755403faba08eef7dbe","8acaecb37a96026cb6d1ddb3ca4ddb32722890d18f35bc6e019dc9703dd72529","88d9da0dab92c994d171a7999ca48974be8f99c041622a78d0b1f3ff27588fc1","dc172eb5106eefa395d091bdb0d8b1963a86aae82a6a7192c1910e7f11083ccd","edaf342a2f1528da49e69e479132a88102b8d9866b129bdcf1e59d86cbd6341f","2cb11a971470a03e828df7520b3153e514bfc5065597d0690a0439f7a5e4284a","839f9c729f3bfd673257683bb86879ba1c3f8b41f01c2a6a33295ebf14927ab5","9b37c5e6e6c985efb20425b725034100d4240afe789b2ea7c5760ab6205ab645","4d74b98b593856085848bde7d83f400ad2fe5a2c36ac9dfe863f96ac206ae55d","27656836bf9547d24ed317c044fe1a3feeb58aff8433ba7813d50e8f69088034","e42db4296d48fa63531ac389627d0577a0dd6f6491b47fd7398b17ff6abd2f6c","bddc0d81daa46345e19c159cbc90638380b24e8d6ddd89d1542c6d9e31ebeddc","a204b31c3672914ff68bb20bfdaae933bf7f8f943687c371b0fd32a3482fc5d4","aeed82530b6398bccd5920a2d4c19011102927c19ce0682dc94f70ecd457a4bb","c129f26b2f8b768c7fc6c5edfd7353599d2fa9fbd19c9175192a608d687ca9a4","41507092ec15c44f72df77d95847b87dccff5f9cce4a11ff6a6f0270f3df3e74","ef048a1d0f1a5f33453b2481987a0f5011e158b757fe4f4def16a2a31efd4623","0534a685ecb1022ec62f19fe7252137f652dde0d86404723e021ed714d44c442","0be9967f0df1fd5673b743b218dde9378b8d0aa0e4a8f364f567b0bd3f004d27","867d4bc564691a35170c6620b658d0f745229a3cc30016e08520181bb1a7f1d3","429c0ccb47f85fab9f0096859a31f2bc20e2b8a814022cd71f6e5cc88ee550f1","060abd605f5f3a963d04ce8a5242f751294d4ad135ad349751089e7c29aec0d0","6c83ec67f9e4afb6ca82b7be9548cc004e8d9ef6ac6aa29b2a6846cb9e5adb5d","23782509c8247596fc3cd2080fc4491e548e1b4587939b68eb4e390eca48b971","f50fa063598d47694feba8f4d91f9fcac813b2c6fdaa5981c6ff466952faaf48","69977ff2a9fb72635702a1d7bf86fab73cf5184d45921f27affac20bb0c3ceae","5a4381be6da0f0383519663bb25660e094c9fc7cb658bf60a2cc221ffa8c7cda","b193ed7441b78595000bcd07c92bfa1b36493910579f1c33daafe42a90600537","e0196a20e6956f17ecf8f04188d34e4b3102e2b6f068b68fdfcecdefaa506e7a","e3d78def8d4e6bb8397b25068fdae6eac9d181a75c78dcf20227a251ee00bce3","0d70c986f1a71c38bf3c3c6b54425c4ba624642231ea8471a21adcd69ecbdd4d","13508efda3383aae203a1a8b5b90b79f99fea1920b65db9ff4a39538934b6c10","3a46c481fc512cce568b39ab364bb02ec588fc276240caf34e015444a5fd26d2","9098640c076d1bdbe6daf7b48d08bb2200ac28cce6db7d08118ae676a99406c9","b64113de8d7989a04f8f94e2c125ac426b9a5797fc2245bf70b96e25c1a06d76","7916e7c886d2088f3a9cad90c7967426d23a92930baf4f9e3b027cb904bc5c09","833a669fdba855086b045a3021b9b51040bd46c565a44f5cae5393cf1e8093b8","c6e2264465eb2e8cb2e12b67adc878e3a397efd6328e550b0a1a5bffabcad66d","048f40812b2a786d92fc8db2f174d35fa64581859cef090087a0f392d4010a3d","b130b6175f23bb5d9e5006ea959b78db664fe4f01abb377258e789c49c4c7cfd","2163bfddb0e1569e330731191e593feb3582cd0d27518993b6970aa8d62016ed","d302ecc0b3d2c60e6408fd2469e726967c7114d5f89b97d82f316feb8557c69d","4782235ebc38ab1dada9c9bb80ee43982f076c6d420bb0772c40fe615901889c","8f3a97edf479a690f731502f11179ec8264e11876a2b5b960a8ed64201392d86","fe9b9da3ace303035d4492d77bfed0260b3d50a04e0fbb128f6c47dcc97e8618","26062553cec8ef883a3617e98d29b395419287e48f4102105a2ee80c1997bac1","13972f1ccb5602c28eba0b02e7f6012f9eaaa0a1d56fb091996a33d67df5b3f0","f2b32e966e35467d563af676842b4e0718f1cd634f2dfdce3972ae101e5a8564",{"version":"00ef4a4324556eab6e45809e757354899d1ded0f5b2134465ee10e450f9c8d61","affectsGlobalScope":true},"a9fd76613c52aa62a036e7d85d6503601ac3aae1444f4765c738567e5f687f4f","808f34beed9f00ab3acc06abe97a60f060e38ec10b06d9dcd6cacbf045714b9d","3594c022901a1c8993b0f78a3f534cfb81e7b619ed215348f7f6882f3db02abc","438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2","0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","782abf371043fc65a987f835a3acfd80602a30c3e2122f6d5756a86bf6913352","509235563ea2b939e1bbe92aae17e71e6a82ceab8f568b45fb4fce7d72523a32","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","4908e4c00832b26ce77a629de8501b0e23a903c094f9e79a7fec313a15da796a","2630a7cbb597e85d713b7ef47f2946d4280d3d4c02733282770741d40672b1a5",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"4ee363f83d7be2202f34fcd84c44da71bf3a9329fee8a05f976f75083a52ea94","a7e32dcb90bf0c1b7a1e4ac89b0f7747cbcba25e7beddc1ebf17be1e161842ad","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"3264032a4141e0ce43727634c9a136b7e9cbf3292e6097b8d17ba8ec8d2a29bd","affectsGlobalScope":true},"c45d6f4d3a20be54e46237608f537a8d85397f87b9c3318d68ed925c2f1d0b51","983b055016a8412ba6d54c971219805038fbc7861c52388e0f205f134356182f","63ddff320a89f6871034933fec3d04e68bfb428e9c78c543ea13c510b363bc42","19d56d852739d209835dc7c64f6d508310d4018376cf8bb9c8febda362ca8f78","33c337de15324843b658d00995db674f9c618fe9ad6ad6b43f0fe6835984fa0b","835eac23d8469562ee8b6cb46a875c694a29a196dbf3d075d850972ecc834620","98d0a7a057191ce8f111a5b8ecc7107ff9ab45d63ead4ce29a07296d31b5e91c","4041620e27e40e45b2245c7b4a8c71f61ca3fa3c4a13ee90d09cc63ca77869a8","b85b721978ea4bb7624ac8e7e6cb512a5cb290a85cf44e524f242fba25d476fa","e73468f0faf1cc6da95dcffc4533896c0cf91c4a8e4b3f9f65f87fab36d7e174","3b5d72a128afa26b8636e191b082947ea1e1ccd799543e3ce7a57adc35697eb8","efa8f798ccfc988c480922f64a92968a862a8ea200bfe88982edf46dad94bc28","79e715a58ae3ee0470cb55d55653c4dc89f7d8ef4f5a7b5720b7be08a998f649","6a2b74f0ec5c05b43dcea9d05433739900b7052a483f0dba4c515cdd29734942","4609c547e1956bee7974fc845dea2eb9be4292a943bf3cc9964ba2b041759b4b","740bacc689be6f431d28f32ff98278810840de1869b4f03dc47b8c92a6d860fa","78dc572c57915fa4a3172b59a3cf590a86b4e7e65dff5c27d2438f578b5d9ffc","501485ac42f4a9298ee77c4ba6c3eaa818041e63066003ef88b87a7ac3f62beb","228f1b1845cf8eab22806df7fdfd57803cb4161d190ce930491fe80d8a2b6e98","5b0b345017f6b471b620f1c8fbdbf0e04c3721375d3e800c52618dabfeef1f07","ce662439cb897a60ae7657ac19cfa47dfeb558e13ecb30ee84a3112d0fd466fa","470a0fb853080bdd226587e7b4bd403c21b3dc7ff41b598622518e0308934b87","4655c6622f6d0bb3182ee903b35013605425b421c24b17d3e826782c773dd75f","c6e88565b597b47d3d2a304af8b99f2b2b818e2136815ff473cd9e371899fbf7","ff51bf727325b7ae84d7296a0f6f701b9db4c1950c83ef389ac3b7dcdcb5efd7","bfca9c2cc975dd04310c02d200c61baac194b8ebb52d26ea83c50092ae005f88","0f2fc3b17287c4bbf75b2acc39ab504b794ea332972d914c17ec7f1dd95efe25","05e9a6cc3630bb41f3bd0a2cd86627fd19afe4837f34062e24ec799f1748def9","292404c1008d69cb301e9cdc821fdecd347a574da87cf5041c166041a7b1a2e9","6d4f8e81b0c78a3282862d631b067c8857feb438ffb804ab16ec6787a984f07e","8558b13817b7ff64d16f004ec1f8503baf48b0257428de64ce67646da6dd2142","aa0a1c26b1f6ae3d55a9942ea119b301e2a455a601ca868a1bc84372c1d3f045","5ad10a0a2db50586db554af700cb48fe317f80d881428d5473807a9ebbf3d738","44074878bfdc747b948feef53cd672bca37675bb885127bc6c2669d5baf57902","f2ecf41bea9d32be3e27c71b7d1d9e3f58083b45fd36bd25980899a1168ee109","0adcb5db0aa0de1425495b135dacaf6f2240e3ad48b905cd8139f730fedaa4ca","ad0a9f226ccbba7ea6b2b991a0bec5d95f0b1e8104f12d691c1a407710a7a832","2f96180e51009103c6f383ddd03c1452229f514b585c2ad1a4dc25ac7ec7ab7a","70f1bfeb39734149e329e52e51f28b88f3f83ff25c6e3a43c1441981ac318126","05129db68d57fbb85476b7e6e164e8b292efe68d5fdc544b70ee3a32233b2487","5d3838dbbcfda003fbc39f2716a106f2b514a54dd2def9ea08ab04c8e7db4835","b86b288947dd561b5cb2d62c7ec02a83a00858e6673719699f960f48121116b0","b5c3e2baa5d632f3489ecb4f6d9ad8e2c914cda3f11a98570c7100d6ac52615b","ff2ece145bb888655363773f3c781ea9f6a06bdc0f35f125f159dfd4ecfb37df","f14823adf03c5cd507c4d7a8cbb242e02c6e2835424e1183e729464bdf4f3f73","118d80f9540cfa2b110c2835648059d35660b02250e6ac64b7d81791ccb5a5e1","99b6d4c09e9743dc5b57ed14d1cb75434539838ba5f53de259693de8f5027d8d","5577f642fe5b71710a4fe4b8a3d5f1bdcb9760d7b6162f0184d97267f31dd6e3","fb8e8e664c26078702764fa8efe1ba1a3125f1c32995821800a94f01a3273fa1","d1c2921a49b20bc830e1f288a41d29deffb65a629e77e7d5e9a981f331297a34","576db8c61a68aeaca86dfb43d4963fc6ee5d5f77e8874cc70c4ef7568f590731","124ad91ffda83fbd3afbe654a1ff708caaa8828128fd4c189644f28df6412743","4cbbab467863aae8abdafd506d0d950263065c3bfde07feace7280ed858aebcf","e309ec774381f07a91fba05854110b9fc5c6e13390b70068bf3ccff99188889c","9971300f0622080bcd990574d9f5b599512cd6268e3170867ce369f7418e39be","f761c91419d0a89422a0004ef1a92929dd4d2d5e5c16758654d8b0467d1998c6","f0cf46afbdff530923e8eaa10ae909d0fc4894d3beeab71be5972660d0f94657","20423b338529dc6c08091a31dfd4c8eb59c43618add12be380bc5c2c1defdefa","322aa16c6c143f1d818c5971d3f7641ab15cd726daed0c3bc4e344fa3377ef6b","32a6a915cfd763b55a3fdd52a1be4c33d0d6ff2b8b4e31477e522f983c168c32","5c5975a57f974dea93b814baaa9e001f0bc4a832d9f3d75a8193c2e12331171b","7f9b0d5e3fa15ab156fdc7967b7cde90bc655199c9f27bfd529dc8936f0ed5d0","c1fc7bc6a2c8ed40e9d17abba1c515923a7d860916611171b1f78019e4c75ec5","7a736da957c9a1d576a5a4dd4ce145b782944bc8e9470b8ad2ac3c4a349fb666","960e9a6f3844831c0b827ad4c116c1d5ae2eb4ee6a364f55650ecf0f4b358254","53825c0d7205506faa91825612373dacb25f70fc05776c69c998f4081cc67da7","bfdcbaa21d9ceeb25394c1d67836a3355660a9cc38dd790fb138c801ecfc10a6","3dda11e0c7b1da55fb3576a8c863d1e8067004060d844b6e3ab9cbb2522ee6d4","be6b8e95eaad887b3e26da22215f188ac01ec13d8e6fe89c57d671a04f241e09","a0772a49c68c8ad09fd9b41f73fe542e52535e14f7825db9d605c3c99166c377","9e7a6963251629b917820b5c2ed4e3d78a20e9918efe2b6615fd484fa0cb6523","55447554cf27022611a95091556b48ba78e962b8e2a5ef0572f3dbaef1c9ec8d","ed1d1e789510fb8a6956f82b0160c069846c35e23ee3bb65f3cdbfcda319742d","26851ae9962b794c44cb4d3c7ac2abf88e7c09104011c0158613358fcc6949e6","6d13ddfedb26a0ebe0ab867e22db3064640b350edd7f29e4736475ec273c21eb","a825fab8128556b9f2cfca1de0e65bef960a4cd8123ead23f5f735dac1bf28bf","e5e65d1d223b004f5c19145b39f1359d233cbdbaaa6dd576e42e87fd0a5a66e6","540fca79b8b30092983469137f6398890cf52caacd019b97cdcd06f8b01de145","cdb3c3fae7a4f20443850e06ab11e5d57d2baf06d474159908a91ff0e4a2c624","6b5b606a13efa3ab0ef1b9885a9df353a972c82eb69203f5aeae04f002f08692","b45d65f0a5fbe79f4ce2c5e0788c42710658134d13090142954f1fe2f1f6edf8","fbe00df82d77f8c14a6923170654cfb28cb46ecf3c1af6ad3e851f5aafe70f43","0af30493c8bd4f5ec4f462e4881d5355157e4f07e1c90502da3c72d89e22f662","73e82f1fe24c38b8616cf49db49cabab77887a904bc91808e81fe32bce493bcf","2d5385cc4c6b85a831e828d6761b880c747d15e403f90ba9385d3ea9f5b59c32","7b1fbe1d46ad67315d73bd52a172a752c4c05bf18bfaf7a86d18ffbb33c19cae","e9796a4beccc5293ab4fc32d73333311640645a209a5f298be0877dbe79b96d3","bfe1b52cf71aea9bf8815810cc5d9490fa9617313e3d3c2ee3809a28b80d0bb4",{"version":"6839e1779e1f61e0ed62b1ca3ff7e74dc70479a5455077a38434d0e404103c28","affectsGlobalScope":true},"e927087d0e2432ca048f7e4db004a2548282befce0ff919c0a6f9a376400b6c2","93aebe83466496340ef8b003c196f7e6fe325fbe6ee98c08ed715ac3ea61567d","47a85f99c4b4f9dc691c76b037a861a9f429c75e580d9262c68d739cd02a27c4","2b497f5fa54fed8de6a0e935e5d3cd55a4cbd2531c426a343aebf24d2dccc2d7","abf31cf4e16b7b9e29fcba2b970a7c5e5fbb0f53b092a11d5dd92cf714b653fb","9227936c4b5cb4e7dc7ef102f52f8a3ead02d270230ad81b9c79df1b3bcf5908","41e938c10a11ba59df74a150166274021bb456af2e77761b74e7a96dfcf67596","64d2153231dc1152827eafc3281d562b8560529441cc9bdd0f35947234a234a3","c44d61dc883e72e84ad75a5135f2f9fe98708ab5a56ca6d35371cba902439e61","8cf06b3c48224540274cc19d2c75f4cb117a177ac444ef5c9b0d04836067b57f","dae16886c7d2bdd5a9774c0885c1b2cac93026328fdc6b64ab6810c225f22c52","2ff61910daf993742d6e5c83816a249b58f4f97ff93b37fa4b1c98253e174f92","e9223cc22ec1be13bab6e2562f3a6086e203c2983c382408a2d6fd741c67f20c","f60c30119651a9779a7fb605d0387190699331734a5049a42d0b009951a3f707","40e7db95904ee001e2c8d69de60edc32c346f9895063210adca2ceac076e9d8e",{"version":"1fa918c9b9d80b206812f511ba564c3de70de0a438bf277e3cee67209135c872","affectsGlobalScope":true},"25944ee83d9315cf7c875ff7a7a67b3190fe23799ea4f908f829fa098a4ae7fd","63dabc2c7a61884c12711baf51f280632c8912fa9470be64f12293c70a08dcd7","1725e5d46dc7469cda6011ef6e258bf2bb3ddb1885426ed6e318f99de3e3abe3","d37af09d956230822f7d7426e015ab7ad50202d24c28fe1df59c5e7a2cdebe0a","db6e02fd3d77ebe45d9328da83772787481e0982dcc53723d7a5ba8c6b25bfa1","67d3da96c7d8720637854b0accfb59132e850601657567f3e790100057583ab6","16ae3c942dfc70db648761230549f4c5ea71171cdc2f544cece7dabe968ee4a5","9ff47561507e36916d8eff69e827c60f0634ae19bf2454c5e5aac4614000ad88","839d07ae78ff176526907baf25b3b28fc6f9193e965e275a60917e8ef0034d23","8cfbfcbbf0fa67402908a4e6cd6f4af0742e5321dc170dc8eed0b7ad572db6dc","730cbe6975b496e341b91c0af2bc6aaa7fdbb9f80952288ef9461e9ebf795e8e","b3d2a1a6e51fcab32219cdfc8aab5d01a63392a1bac233fb58bc5dc96b058062","a237952822d8063012701664c9b19e16870dbad6e5b00d1f531152f805bea0ac","1f9991c2c5ba79a1c65f15bd7c475d9d49ed03d834606f90f7c865f50b4405e6","cd715ad1bdab30da9b91b985780d5b9696262d0e9fe5f390a7e6468b828a751c","d21a01533cbd8e4fd8ca51ddb3e7ca1f9b958bcd22bd98f3ba9f2739b90f47a1","1562149ff2ce2c0bc2825bfeeb8ba6a32bcb205dedd4ee95d274c908870da179","f278b7ba2ca4f3e96c51ebec8a977c5cc31883a145f60b05b6cc972aaa9ec5f2","21ea5b9a5dabf424b51aac168db18e2be2666449cc4f120329d0fc1ef66dcd1f","fc96e5b1029b3c61491bc241e6727676f890eb14c1a56a786255ad76b5e94650","2d924cfaaac52cf88256d7a23b62d8831011207e7caee1ee0a8949bc5c25593f","5479e864cf80c2c6b48354d2ff1f70e76c7196d31a1538fc12306b8f6dbb3366","a6647b2803a444342815a70f34694cc6c61393463237fadfddbf4c320f631429","971eb4d6b600ef600a360fb55e0d684e36f14754ba2b7847827769934ae6368b","d2c5b0dfb932b4a7b4d8d1dc44b241c5096ff93bdd11fe6357bd1c2c938fd5d5","2a7303938915735d760facb158e9fd5aa6d04ea0f7b79fd4d1bbf085c4fbfd36","4990dc465a1bb5cc9eb1ede7050b2b5ee7407b8ef51d3460707bc3f50339a17c","d59d7c33ea06333290cb024f6ccb32169fa9d8243f69353b5aae78da0f72b837","6cb35d83d21a7e72bd00398c93302749bcd38349d0cc5e76ff3a90c6d1498a4d",{"version":"369dd7668d0e6c91550bce0c325f37ce6402e5dd40ecfca66fbb5283e23e559d","affectsGlobalScope":true},"2632057d8b983ee33295566088c080384d7d69a492bc60b008d6a6dfd3508d6b","4bf71cf2a94492fc71e97800bdf2bcb0a9a0fa5fce921c8fe42c67060780cbfa","0996ff06f64cb05b6dac158a6ada2e16f8c2ccd20f9ff6f3c3e871f1ba5fb6d9","5c492d01a19fea5ebfff9d27e786bc533e5078909521ca17ae41236f16f9686a","a6ee930b81c65ec79aca49025b797817dde6f2d2e9b0e0106f0844e18e2cc819","84fce15473e993e6b656db9dd3c9196b80f545647458e6621675e840fd700d29","7d5336ee766aa72dffb1cc2a515f61d18a4fb61b7a2757cbccfb7b286b783dfb","63e96248ab63f6e7a86e31aa3e654ed6de1c3f99e3b668e04800df05874e8b77","80da0f61195385d22b666408f6cccbc261c066d401611a286f07dfddf7764017","06a20cc7d937074863861ea1159ac783ff97b13952b4b5d1811c7d8ab5c94776","ab6de4af0e293eae73b67dad251af097d7bcc0b8b62de84e3674e831514cb056","18cbd79079af97af66c9c07c61b481fce14a4e7282eca078c474b40c970ba1d0","e7b45405689d87e745a217b648d3646fb47a6aaba9c8d775204de90c7ea9ff35","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","bcfaca4a8ff50f57fd36df91fba5d34056883f213baff7192cbfc4d3805d2084","76a564b360b267502219a89514953058494713ee0923a63b2024e542c18b40e5","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","a20629551ed7923f35f7556c4c15d0c8b2ebe7afaa68ceaab079a1707ba64be2","d6de66600c97cd499526ddecea6e12166ab1c0e8d9bf36fb2339fd39c8b3372a","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","a8932876de2e3138a5a27f9426b225a4d27f0ba0a1e2764ba20930b4c3faf4b9","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","027d600e00c5f5e1816c207854285d736f2f5fa28276e2829db746d5d6811ba1","5443113a16ef378446e08d6500bb48b35de582426459abdb5c9704f5c7d327d9","0fb581ecb53304a3c95bb930160b4fa610537470cce850371cbaad5a458ca0d9","7da4e290c009d7967343a7f8c3f145a3d2c157c62483362183ba9f637a536489","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","914560d0c4c6aa947cfe7489fe970c94ba25383c414bbe0168b44fd20dbf0df4","4fb3405055b54566dea2135845c3a776339e7e170d692401d97fd41ad9a20e5d","8d607832a6ef0eac30657173441367dd76c96bf7800d77193428b922e060c3af","20ff7207f0bb5cdde5fee8e83315ade7e5b8100cfa2087d20d39069a3d7d06f4","7ca4c534eab7cff43d81327e369a23464bc37ef38ce5337ceff24a42c6c84eb2","5252dec18a34078398be4e321dee884dc7f47930e5225262543a799b591b36d2","23caed4dff98bd28157d2b798b43f1dfefe727f18641648c01ce4e0e929a1630","f67e013d5374826596d7c23dbae1cdb14375a27cd72e16c5fb46a4b445059329","ea3401b70e2302683bbf4c18b69ef2292b60f4d8f8e6d920413b81fb7bde0f65","71afe26642c0fb86b9f8b1af4af5deb5181b43b6542a3ff2314871b53d04c749","0d7f01634e6234d84cf0106508efdb8ae00e5ed126eff9606d37b031ac1de654","f8d209086bad78af6bd7fef063c1ed449c815e6f8d36058115f222d9f788b848","3ad003278d569d1953779e2f838f7798f02e793f6a1eceac8e0065f1a202669b","fb2c5eceffcd918dbb86332afa0199f5e7b6cf6ee42809e930a827b28ef25afe","f664aaff6a981eeca68f1ff2d9fd21b6664f47bf45f3ae19874df5a6683a8d8a","ce066f85d73e09e9adbd0049bcf6471c7eefbfc2ec4b5692b5bcef1e36babd2a","09d302513cacfbcc54b67088739bd8ac1c3c57917f83f510b2d1adcb99fd7d2a","3faa54e978b92a6f726440c13fe3ab35993dc74d697c7709681dc1764a25219f","2bd0489e968925eb0c4c0fb12ef090be5165c86bd088e1e803102c38d4a717d8","88924207132b9ba339c1adb1ed3ea07e47b3149ff8a2e21a3ea1f91cee68589d","b8800b93d8ab532f8915be73f8195b9d4ef06376d8a82e8cdc17c400553172d6","d7d469703b78beba76d511957f8c8b534c3bbb02bea7ab4705c65ef573532fb8","74c8c3057669c03264263d911d0f82e876cef50b05be21c54fef23c900de0420","b303eda2ff2d582a9c3c5ecb708fb57355cdc25e8c8197a9f66d4d1bf09fda19","4e5dc89fa22ff43da3dee1db97d5add0591ebaff9e4adef6c8b6f0b41f0f60f0","ec4e82cb42a902fe83dc13153c7a260bee95684541f8d7ef26cb0629a2f4ca31","5f36e24cd92b0ff3e2a243685a8a780c9413941c36739f04b428cc4e15de629d","40a26494e6ab10a91851791169582ab77fed4fbd799518968177e7eefe08c7a9","208e125b45bc561765a74f6f1019d88e44e94678769824cf93726e1bac457961","b3985971de086ef3aa698ef19009a53527b72e65851b782dc188ac341a1e1390","c81d421aabb6113cd98b9d4f11e9a03273b363b841f294b457f37c15d513151d","30063e3a184ff31254bbafa782c78a2d6636943dfe59e1a34f451827fd7a68dc","c05d4cae0bceed02c9d013360d3e65658297acb1b7a90252fe366f2bf4f9ccc9","6f14b92848889abba03a474e0750f7350cc91fc190c107408ca48679a03975ae","a588d0765b1d18bf00a498b75a83e095aef75a9300b6c1e91cbf39e408f2fe2f","8129db80142b929e65ac20b8337ee3d88011edbefb8bd33f335581ade1a5db87","bf14094068461b3c2b210071eb3f4f8f08c488872beea2b7b1cc43734edafbbf","7f6d3ef2715d5ca5404eb107e84e7ec3ee818d9cd1e0a5604e4448a2d73bbf8d","6e46df9fad03883b826f4c82b1d70a653a68769602aee73eef3e00e5b4d89cf3","126e5f9333536df4e732dd64205ab46500d7e6b5b2dd9c7143fb5015e70c8165","a19c55b24a4621ccf4ae14316383569def5162753792c427d424345302b5f399","a9dd05f9fb6799e317c62813e14a65a4f30a0a55d81c4d5e4ac41227c6bff13e","1d2657bba64f3e8725c3b35be632fe0d71a3ce35e78ed52182f58bcd41afd752","d60ce8095de1d45b6d2559aa8cf9dfe16e1b55811f96c28fb7fb4627af57f9b9","2277539cba1b02b37291d16e8aee38fe24ca22844e3044b2adfa1258c42d4037","b12ebd802c1646abf9f0f1b07b05b69201fc663c2c5caefe2784ab96dca753c1","dea0469c0e165652927fbfd91d0b9282d37e9b193c9b7da0e20b48fa5232287a","7449560ad7c67f1fdad19f56d9f51d6b5342f93a48fd04d816165b74d39c8a68","c5c8a2407ac43eb5debe5212b8b5dd5513f4eba2d01f1dacf0124d28b0a05f18","b659ce794cac98acec5e3931b6993772ba47945f7260f4070bfe64b59f40be96","fd74d70a5f477febafc3edf168d8c4e43168b76e0010ffdf5456d263f9f208ce","70f4e50fbf19ba08332601e1f2b948e88e8ef2b456edae48c9aa55e7c296aa97","d0e8e558bb4f592bcc6ffe508ac011cc86c84f26803cff8e923c0ec3165c6e2f","b0a568c21e5e65772db1adf0e519f46251f611377b74ae63c7b715d3cad6a6a1","29f408c8d39eafae2b653ab39c744469930ffe924370aea437842933a7c77c37","e4688174022aacb54290d599672c637c9eb0209fa0bac72390c3cd22ec664ada","02039050b052d7d7f53898ef909a279bb4999dd09022bce4e9fe16f4ad9303ce","e63061c7de68c3ff61633469684dcc89a904dc387ab1f3178ca24777848b213f","9d441989d1cbb52939625e57621620524bf19c3c223f01007941ecd10335d0d1","28e06b63c3f364ef754eedfb0cb0f5127011f3d685e102f07ff5c56aa87d1562","b0ee12813f8d26468aba1fd860db8180eb9e332183ad839dd554a2f19c8983cc","b407b6761debdcd11022f0157535e7bc4977433fc09b6c188cd7c324ded64a5d","4873fe69c2bd7be609e6f3f033db4534b88735ff0769e18cb100cbf24f25e0f1","094815f0e8d3c53c1b983debb0559cb347ad78142419654b6093ce285aa150cd","cc0fca544c9ee63d754899e93ebae35c8ba8304a100126b9c3dadee2c91a2250","74f4099cbce8fa62b18ea314b7b13693753a4d97620ded963fc064b39288acb8","5275faae938513e793a5ea551efa77b43a47bbfac8ed8550753ec217376f24ca","b0fe7c947694eb4f0f736af28a853b0a8dc59074329a3d9a3eb5967fbe83c10d","5d3db7107b3138edf0ddb9851bbba99caeb6b3e32074da4c7b45e751c296183b","b86137c60e0c62f7acfd8f0e761170bc6920c105ef03868c0518be562a5c5908","7ba39fedc2104c6d69f7f583e10ced54256f8d8e42770c754097e75f041cfb7d","69d5afc46850b54ef3388769cd339f8dc88e15cd74a189bf71dac3937b4e8850","a8db70d3ad601f4cf3c779623a3ca232606db0c1d052cf3f1d7a3a695bcbd368","6256ad6e7c41a9f9ecb6349b5d5be72ea2c60ba1c6c6b3954929eb59a6980688","77596a948c8deffc8f059fa0f3c38688f3b05caefa303506074034b5cb1a56ae","81ef0fab583499ba45dab44490620e7b870597d90c5e562ec5a9b38b6bd3fcdf","f2b309d4f1bdf8e9f4fa03bf2183eb1b2f7cb66efb5b16da52e378ce75ac17bb","9cbaf0317ec49acb6c84d142077670a301015979260c4ecded7705fd2141379c","5a49d16b6f7d3ca5c66569784290c0ed7a3d74821095e2ab91e17ea444ac4657","2e5fab5fe6e398cb14f695da07044a65f4e32c8d0fe9b31f5fe52d2cc7656230","92e581f3d154511056bfba03e72ed3cffa92681b4b9bb1953b0b724f67a664bc","c9deb61903fd8318e6845e4e0f03b3bd813cdae1778f8dc9ee0ec05f9ca22094","7bc3152a4c8adf395ad486da44acb6e8c98dedd2becc83810b076114338a5045","30a8688575aeada46c1268d671b2a1de78705ebc0d5343e75b96c25f149caa98","e29b5eb559a057d36584ec480d49711f0c81bed176bb6256df584e800c453760","57e52fd41767e09990c28cd092037736625b3c492c412d7b5c72282a4a97e2be","6d4bce054cce22306edccc85e738a800ea0364a82e85f9bf61156ed03604d24f","6b51c27c5dee2f6d6bca502a669e3941bc220c68cc66f4e45b4134ad6cc29231","b3e5a0fc169f8b45bf7e4f70d473f0f9b8eab10562fff98d33f9bfa6e66508cb","7439ab76b375658a0a5bdb5081f9f22a556e34953916522b18d6d7e01d20a798","6cef1daa7bd7f8b888d15512fe2a698d76f2d3442e8d4cbb2f108624e575759c","f97e467e4afcc9621184bed99bdaa280377267127864b3776055c765cd6dbe9b","48de3719157ebe5730b125e224564d90754707bc2dd19a34fe8f75861dd73ded","14272cf5e560df638409e768e655862b5b9524ecd34a3f6a6ea5f7854af76bb0","6b3e18cfa2c3ee15b6c1d3c1d3aeb00e4cd7a77af28c92ba86fa53413250066c","1ba7e65640b42ceccaabcabe41291822a115a70cdeae5f1a96787f35c3e61239","9da1bb7d7d75a154f8318acb566b708d9995e5a4ef4c4e850c890c838e5197a2","02c6d397e3195ff769db5cc1329a8b74402da41aace067fac8933195812258cf","bf0cb3efde539de4939ebe42263ccb9ba5c3f5e939ea2959f7ffc97971e54373","92177db67a88b744edbc56b299e43861f66c51091414827dcdf339e9c5541920","3332be2c229d8f6d56dc22b9bd0b07f360721df6bda0ddcf232b2360a413b818","168cc8abb6f1f425ed19a7b57a090fe5bf6ac8d5c98f8cfb7b5b3cd72db7653a","4ffff8f24a3e59b2a5817aece6db40c11a948445495b79048537461a8306b2c5","1197a604d0cfb7186469abe5d505d7602132ca7aeb1537a6b3693199808c15e1","e28a8692adefbf2526584f9216a4c10f141be127fdd62eef1d0ee5a9bdbfab66","334f9ae53412059c64018d80ba32e1e83afbd4473398ad3b1aec4459769362f2","ed67ec8ed00124ae16a321148e8de22b39b072a8f24c5deb4985ecd2c036fb2e","d9768f85d47804c972749dfebe23b9ffbb952d982d20021737dbfe286fd74e0a","10f3fbd0884a207e791a00961b96a89518855f242fd37a3a52567d9d01d3c24f","37ffdafaf785f906fcd892f364fda95656d2349d505628c363b304b2afe38679","21fe1e6a43e8ab2d9889fe7f48051386d681fadc7d36fe4125e10c8eb7deb48e","3e3559f9ff59e28ce2a59105d3bd9c2c4b18c931566a365623ab2ff6fe93e9ae","3acabafe6eec986efe95227705c43ea32c28787c9c25fdd79f13c6cf1ad2188e","75462ad980377f947ffb66d62eb78cdc15b1806cb00a7c30ec72f5951cdcf276","8e43855426fea44f3e5dfc8dc444d7e19010a2f9ec37f4c89ad4617401f742f1","ad92ddfbc6fa81b85bdfa71376e61eee16f0c2a24d35eb68562626c28d62931b","97a09540667d7e16502bee30f5d43d797467d07aa0f1dbbbbfda89d7a00df07d","f210d989255927604f6303ad355f7eb2deff241afaff4d6be201534f4404595a","9a885a50833aac4e51357dd2bf6af9bfcc6548f4ba02036d8ace920ae5d91da5","663c4708616caceb9ef4649fcd61f65c1f78e15b82b86849cb8c56fcff62aacb","63373086b50634ce0a05b462af6f5a60dfe9f97b4fc620a698bc61d9c18520f0","33711880e40cb3d480fdcef5f756a3254701cc80a3a22ffd7c60909d0febed1c","9a922ed188aa3276a02d02682910ee16a8f55778479866809bb31fb27ca69685","ddd9c986bdf8544f0820dfd089517ced9e156d4eb04b67133e98915a1587f772","96b8feb4bf414bafaefefcdb8f6800a52d37f8dd119a3e9e10ce7b449e8df2ff","5d86bc849a31c45293d00ba65f1ded267f2190da8cb697857e91a52bf257f61c","a84742a0a3631caffa9fa88f9b0b7a7c734f1eff94cfef2204b28235635d5112","4728fb06e16c721ff1c9aab48c8806717312fe7f8b231d61f7831696fbefcc94","5324462bb92fb6ae96818cdb029f7f52c4f084597684a8cf259a1987d9811a07","3ba07fff151d09b86f61669be488396c262c16c348e18488c5f2330e7d0342b0","b765a494b8d25b5a4eef3f7e19783bc1d947e837107b6e78339b3cf6398fe38e","96b49a9de749afcf92b5bce1d8cc42cfae6816cdf5ea36584fd9256b8b2e5292","ca61faceb7c03be9f75c034b4865eecc1241764756b78ba40d75c9360a2bf1ba","430734a56295be33efe847f698c1b2fb79022b6df80b40026acf82d63b8c86a2","4ba8d26292a2c39b0fec0b17d38a81fbb0927c0a3c91d1875461cfcd1f65e6b9","f62d9734a99f146b6d7b4b8930ea6520540b473d836ddbe867d9621c6b28405c","e918f9225d0673b7d3f4ef93cce434525852a19503a8ac09b0cf4ca8c9c6b2b9","d62ae5c1b6563f1dd3b018fb19db1c8561dcd8f2caeb9eae8a1a0b68a775d46b","698d5aac0597f8fd4ee2fad488d313ce81c5bb5be2646c6a4a10f21eb77b4694","d8c170966417eface5e75a3f06a7c37e6044c837fa19a8b6d3c5ad7394a46ad2","cd65c407470b249f49d6a289eefbb54096196a5b5138ee322a10b9059393349c","7d4c36cfc48eb69f9229759d0af49ac39cbc0b6b3af1fecda3e91b8cfa004d5f","ff7868e2791c5503cdf563fca52aeb98c2225ac1adaf0cbdd332b9ce2ea567c8","cef101ccd2ef143e701ea225e595b781eab40d8592120c31741e009b8475ca2e","7d3d38cf16ff534fd26953fc48838321902a4cf66715a7f150e9955dd35feaf4","60d7b44277bde760af8ca1c3c1042ef476687abfb59daaa5cb65249e320f1a10","22f0e1fc428e8a5593785b7f357a0fce2e3f6cd2cfc3c073a835afecbd01fe2c","06ee6d29c1bae8f30c9a1d4fed554bba52f2459b5859637c5556438fb9a0b5be","20ee941925aeed2eb219f0acf0f5dea511fa085951a2a993b53dd310f4f1e477","a6ca36cd95d8774c7d3765d425fc8ab89a8c977ac495408d2ad997fbe697bd57","a21b56480277184c87a55dc48b2980cea7b0e01e15037c79e1cc26cdcbdcfe5c","eeb62e40165f251c3abb06c45908c0e38b56fa739faedc27c5e056b2897041f9","564bc1cd1794d1ac395f4a608c33ec7ac9ec4434aa6c6306be64af0222e0deb4","aaca5c9dd91047a4fb74a022bdb37979f22795767b062ba984a7cf4d76e93155","7ce610fb5a07d9ce89e209941fd334767dd70aa2493fcc03f5a9a8dece6c8243","703e1fc97b9007d9343ecfa57e38c2d3a293d0fdfd541e31e1af22f3767330ed",{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},{"version":"09f93eb1a5f70b195569f58a3d7852d64e3b293d773cd35f332079efc75ded56","affectsGlobalScope":true},"be31c3317fe12e1f3726e00422ee332bebd6efc0261cac566582802eb8715cbb","7acd44106f898821bcbebff9813000576d338b9461b7f28d12bd74d9e8108a39","7197a8960376471722aaf50a7fe75d44e39e149a701567f66e9af2ed977fab7b","ce0aa16b579972d9da970ae2ee6c2666a0280351c5820124b1ea09aa9381b5aa","9a10439ce132d4f650d17564c408bcad6617081d54cd1c9723a109dad8568ce2","5836d75221710d6b4b9774fd713a8658d051872c9a50dcf7c33e5e643dda6e52","6855a8180fd083a3694aa86201beed68c9ac1eba734559910b4770b16b39b28c","53aaa852d7b78a8c6fbe00ab861c9cfcc518afbeaa50b949982e5d4ad48cbe8c","16aa4b854ab719acd8769fd86f4b005862c7b1d5b9b54089874b412e63fb8a09","ca866a32fafce03faf07289759cf3a45943689875eb43144a8fbe4afe5c33384","62ebca9802d16ac3ee1982871f269da13f65d5d741e52e2310132f277463aead","fe56c408e0e46dfac3e52cf7499d90b4d47ddce5c022368e52f3b36b9eb71dbe","a6970337b6efac95c78f105b7a728f3d248ea09cfc2f24840820fb6bdb2977f0","6bd6f03490f99fab45426282d1bfcc7910d696c6ca55f30bd20dc34546a584fc","4619b6efacef6894c0d59e0aa99c12688c8b1ddf0392f319ba9473e30b36495a","946519c8965f53045b495de62168ad26613fef364918b032fe0e13568130c546","a08d9e1ab62ae0408e71f060bcc5547c311fc8d336e89c365ceb6ae0ca48468a","73852d9fe02ad31a96356a0fdf650a7150d6f2a8bae9da2eb6f624dd3bac93a2","27ea1de21bc07c125c0dcd628a9acd263e2cb1a012b088580ec6183e6759b92c","79df7b5ddf96977f9df768f8022ad69c5eddfbf6837a06b59e66d4b906d302c9","3f12148ba1cd1a366fd92398040ee83b60d41206e95003accb5df721a5dafae9","b2d331d8b0aeb87453995ba703762d2d8d715f7c5a23bff5a9f69f6489fdffc8","94fa872ac9fef40dc317bdae42415da2b3a2069bda4fae381034140369af751f",{"version":"745456954d9f4a5054c30b0da14049719a97ed6d9aa819cdc0d3e68f768b0bcb","affectsGlobalScope":true},{"version":"31b90311d2c4ea7ef010df2f0639b2cdebad655ee4e709218cc4b0269b36fb0c","affectsGlobalScope":true},"c9f092fa413eb709080f1494dcbb4a18757e84eb5d2b8bb0cc84f73d84a70dd7","b6167e00019a8db27428651c58358d8cfac239107f25744e608816ed04361df7","1320ee42b30487cceb6da9f230354fc34826111f76bf12f0ad76c717c12625b0","b6e83cdeca61289e5ffd770e55ed035babdffadd87d1ffa42b03e9fe8411333f",{"version":"84515d6e021bcbce12d5f6e14f577f0004c5ec4d56f8ab21e26c081bbdfe659c","affectsGlobalScope":true},"3a1e165b22a1cb8df82c44c9a09502fd2b33f160cd277de2cd3a055d8e5c6b27","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","9a6d65d77455efaaaeff945bea30c38b8fe0922b807ba45cd23792392f1bfe76","ef6cede608fc396d0ad86d0240c40989a080c6a4c5b2ac5c84072c7e0ff2942e","3169db033165677f1d414baf0c82ba27801089ca1b66d97af464512a47df31b5"],"options":{"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":false,"inlineSourceMap":true,"inlineSources":true,"jsx":2,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":false,"noImplicitThis":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"strictNullChecks":false,"target":5},"fileIdsList":[[136,137,138,151,444,455],[454,455,456,461],[156,232,260,271,445,455],[151,156,232,376,445,454,455,463,477],[156,205,210,232,454,455,457,458,459],[156,205,232,260,262,265,271],[136,156,232,272,273],[136,156,210,273,445,446,448,455],[156,232,272],[156,270],[151,156,261],[136,156,205,232,272,273,274,445],[156,232],[136,156,232,445,454,455,466],[136,156,275,458],[136,151,376,445,454,455,463],[41,50,241,261,454],[41,50,136,151,241,261,444,454,456,469],[136,455],[136,151,261,376,445,449,451,452,454,455],[136,151,376,455],[136,205,376,442,455],[136,151,205,273,279,280,281,282,376,442,443,444,454,455],[136,151,156,158,205,376,445,448,451,452,453,454,455,456,461,462,464,465,468,469,470,472,474,479,480,485,486,494],[136,277],[77,118,127,136],[376],[136,156,454,455,473],[136,156,454,455,478],[136,156,454,455,460],[136,156,454,455,467],[280,445],[136,445,451,454,456],[136,444,445,447,448,455,461,468],[136,275,277,279,454],[278,490],[487,488,489],[136,454,455,480],[156,232,445,454,455],[136,156,445,448,454,455,472,487,488],[491,493],[151,277,454,455,457],[492],[136,151,158,205,241,445,448,453,455,456],[447],[151,205,211,272],[136,205,273,445,455],[136,205,275,278,445,454,455],[49,50,136,151,156,157,158,376,444,454],[63,136,151,158,282,376,442,450,454,455,463,480,481,484],[136,282,376,442,443,444,455],[32,41,136,158,376,443,450,455],[482,483],[403,404],[415],[414,415,416,417,418,419,420,421,422,423,424,425,426],[383],[383,403,404,415],[383,415],[406,407,408,409,410,411],[383,403,404,406,407,408,410],[383,405,406],[402,403,404],[403,404,411],[383,409],[432],[383,442],[403,404,412,442],[384,413,431,432,436,437,440,441],[428,429,430],[383,402,403,404,428,442],[402,403,429,442],[383,427,429],[403,404,413,431,432,433,436,437,440],[434,435],[402,403,431,434,442],[383,402,403,404,431,442],[427,432],[438,439],[402,403,438,442],[383,402,403,404,442],[233,234,235],[234,235,236,237,240],[237,238,239],[233,234],[233],[233,234,236],[234,238],[233,234,235,236,237],[266],[268,269],[156,266],[156,266,267],[156],[206,207,208,209],[156,206],[156,241,242],[156,241,245],[251,252,253,254,255,256,257,258],[156,241],[242,243,246,247,248,249,250,259],[263],[156,263,264],[241,353,358,371],[233,283],[233,283,284,285,286,287],[233,238,241,376],[289,353],[233,283,354,355,359,360],[233,354],[233,353,354,358],[233,288,361,362,363,364,365,366,367,368,369,370],[233,241],[32,74,233,283,289,353,362],[373,374],[233,241,283,289,361,371,372,375],[386],[385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401],[377,378,379,380,381,382],[402,403],[100,136,471],[136,276],[79],[78],[136],[83],[81,136],[41,82,136],[81,82],[92],[92,136],[41,85,86,87,88,89,90,91,92,136],[74,75,76,77,80,84,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135],[32,136],[136,276,471],[100,136,276],[471],[74],[502],[156,500],[504],[139,141,142,143,144,145,146,147,148,149,150,151],[139,140,142,143,144,145,146,147,148,149,150,151],[140,141,142,143,144,145,146,147,148,149,150,151],[139,140,141,143,144,145,146,147,148,149,150,151],[139,140,141,142,144,145,146,147,148,149,150,151],[139,140,141,142,143,145,146,147,148,149,150,151],[139,140,141,142,143,144,146,147,148,149,150,151],[139,140,141,142,143,144,145,147,148,149,150,151],[139,140,141,142,143,144,145,146,148,149,150,151],[139,140,141,142,143,144,145,146,147,149,150,151],[139,140,141,142,143,144,145,146,147,148,150,151],[139,140,141,142,143,144,145,146,147,148,149,151],[139,140,141,142,143,144,145,146,147,148,149,150],[71,72],[40,41,48,57],[32,40,48],[64],[36,41,49],[57],[38,40,48],[40],[40,42,57,63],[41],[48,57,63],[40,41,43,48,57,60,63],[43,60,63],[73],[63],[38,40,57],[30],[62],[55,64,66],[48],[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],[54],[40,42,57,63,66],[476],[153,154,155,475],[152,153,154,155],[153,156,244],[40,43,45,48,57,60,63,68,74],[41,74],[212,213,214,215,216,217,218,219,220,221],[222,224,226,227,229,230,231],[223,227,228],[223],[156,225],[225],[204],[164,204],[159,204],[159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[356,357],[290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,309,310,312,314,315,316,317,318,319,320,321,322,323,324,325,326,327,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352],[290,292,297],[292,329],[291,296],[290,291,292,293,294,295],[291,292,293,296,329],[290,292,296,297],[356],[291,292,296],[296],[296,336],[290,291,292,296],[291,292,293,296],[291,292],[290,291,292,296,297],[292,328],[290,291,292,297],[353],[290,291,305],[290,291,304],[313],[306,307],[308],[306],[290,291,305,306],[290,291,304,305,307],[311],[290,291,306,307],[290,291,292,293,296],[290,291],[291],[290,296]],"referencedMap":[[456,1],[462,2],[473,3],[478,4],[460,5],[272,6],[458,7],[447,8],[459,9],[271,10],[262,11],[446,12],[274,13],[467,14],[466,15],[464,16],[465,17],[470,18],[282,19],[453,20],[452,21],[443,22],[445,23],[495,24],[497,25],[496,26],[499,27],[474,28],[479,29],[461,30],[468,31],[281,32],[486,33],[469,34],[278,35],[491,36],[490,37],[488,38],[487,39],[489,40],[494,41],[492,42],[493,43],[454,44],[448,45],[273,46],[275,47],[279,48],[455,49],[485,50],[480,51],[451,52],[484,53],[414,54],[416,55],[427,56],[418,57],[421,58],[422,59],[425,57],[412,60],[411,61],[407,62],[409,63],[406,64],[408,64],[410,65],[433,66],[384,67],[413,68],[442,69],[431,70],[429,71],[430,72],[428,73],[441,74],[436,75],[435,76],[434,77],[437,78],[440,79],[439,80],[438,81],[236,82],[241,83],[240,84],[235,85],[234,86],[237,87],[239,88],[238,89],[267,90],[270,91],[269,92],[268,93],[206,94],[210,95],[207,96],[209,96],[208,96],[247,97],[248,97],[246,98],[251,94],[257,94],[259,99],[258,94],[252,94],[256,94],[255,94],[254,94],[253,94],[243,100],[250,94],[242,100],[249,100],[260,101],[264,102],[265,103],[372,104],[369,86],[284,105],[285,86],[286,86],[288,106],[287,107],[370,86],[354,108],[360,86],[361,109],[355,110],[359,111],[371,112],[362,113],[363,114],[364,105],[365,86],[366,86],[367,86],[368,86],[375,115],[376,116],[387,117],[388,117],[389,117],[390,117],[391,117],[402,118],[392,117],[393,117],[394,117],[395,117],[396,117],[397,117],[398,117],[400,117],[401,117],[383,119],[404,120],[276,121],[277,122],[80,123],[79,124],[78,125],[84,126],[82,127],[81,128],[83,129],[93,130],[86,131],[85,131],[87,130],[89,131],[88,131],[91,130],[92,132],[136,133],[75,125],[94,125],[95,134],[98,125],[100,135],[99,125],[101,125],[102,125],[103,125],[104,125],[105,125],[107,125],[108,125],[109,125],[110,125],[111,125],[112,125],[113,125],[115,125],[114,125],[116,125],[118,125],[117,125],[119,125],[120,125],[121,125],[122,125],[124,125],[125,125],[126,125],[128,125],[76,125],[129,125],[127,125],[130,125],[132,125],[133,125],[135,125],[134,125],[471,136],[472,137],[500,138],[503,139],[502,140],[505,141],[244,94],[140,142],[141,143],[139,144],[142,145],[143,146],[144,147],[145,148],[146,149],[147,150],[148,151],[149,152],[150,153],[151,154],[509,141],[73,155],[32,156],[33,157],[34,158],[35,159],[36,160],[37,161],[39,162],[40,162],[41,163],[42,164],[43,165],[44,166],[45,167],[74,168],[46,162],[47,169],[48,170],[51,171],[52,172],[55,162],[56,173],[57,162],[60,174],[71,175],[62,174],[63,176],[65,160],[67,177],[68,160],[157,94],[477,178],[476,179],[510,94],[156,180],[245,181],[481,182],[261,183],[449,27],[222,184],[214,94],[216,94],[230,94],[232,185],[229,186],[224,187],[231,94],[226,188],[223,94],[228,189],[227,187],[176,190],[175,190],[177,190],[178,190],[166,190],[181,191],[184,190],[185,190],[188,190],[165,190],[164,190],[189,190],[193,190],[167,190],[160,192],[169,190],[170,190],[171,190],[172,190],[173,190],[174,190],[204,193],[205,190],[195,190],[196,190],[197,190],[198,190],[200,190],[199,190],[168,190],[201,190],[159,190],[266,94],[358,194],[353,195],[303,196],[301,196],[328,197],[316,198],[296,199],[326,198],[327,198],[330,200],[331,198],[298,201],[332,198],[357,202],[356,203],[333,198],[334,198],[335,198],[336,204],[337,205],[338,198],[294,198],[339,198],[340,198],[341,204],[342,198],[343,198],[344,206],[345,198],[346,200],[347,198],[295,198],[348,198],[349,198],[350,207],[293,208],[299,209],[329,210],[302,211],[351,212],[304,213],[305,214],[314,215],[313,216],[309,217],[308,216],[310,218],[307,219],[306,220],[312,221],[311,218],[315,222],[297,223],[292,224],[290,225],[291,226],[320,204],[317,225]],"exportedModulesMap":[[456,1],[462,2],[473,3],[478,4],[460,5],[272,6],[458,7],[447,8],[459,9],[271,10],[262,11],[446,12],[274,13],[467,14],[466,15],[464,16],[465,17],[470,18],[282,19],[453,20],[452,21],[443,22],[445,23],[495,24],[497,25],[496,26],[499,27],[474,28],[479,29],[461,30],[468,31],[281,32],[486,33],[469,34],[278,35],[491,36],[490,37],[488,38],[487,39],[489,40],[494,41],[492,42],[493,43],[454,44],[448,45],[273,46],[275,47],[279,48],[455,49],[485,50],[480,51],[451,52],[484,53],[414,54],[416,55],[427,56],[418,57],[421,58],[422,59],[425,57],[412,60],[411,61],[407,62],[409,63],[406,64],[408,64],[410,65],[433,66],[384,67],[413,68],[442,69],[431,70],[429,71],[430,72],[428,73],[441,74],[436,75],[435,76],[434,77],[437,78],[440,79],[439,80],[438,81],[236,82],[241,83],[240,84],[235,85],[234,86],[237,87],[239,88],[238,89],[267,90],[270,91],[269,92],[268,93],[206,94],[210,95],[207,96],[209,96],[208,96],[247,97],[248,97],[246,98],[251,94],[257,94],[259,99],[258,94],[252,94],[256,94],[255,94],[254,94],[253,94],[243,100],[250,94],[242,100],[249,100],[260,101],[264,102],[265,103],[372,104],[369,86],[284,105],[285,86],[286,86],[288,106],[287,107],[370,86],[354,108],[360,86],[361,109],[355,110],[359,111],[371,112],[362,113],[363,114],[364,105],[365,86],[366,86],[367,86],[368,86],[375,115],[376,116],[387,117],[388,117],[389,117],[390,117],[391,117],[402,118],[392,117],[393,117],[394,117],[395,117],[396,117],[397,117],[398,117],[400,117],[401,117],[383,119],[404,120],[276,121],[277,122],[80,123],[79,124],[78,125],[84,126],[82,127],[81,128],[83,129],[93,130],[86,131],[85,131],[87,130],[89,131],[88,131],[91,130],[92,132],[136,133],[75,125],[94,125],[95,134],[98,125],[100,135],[99,125],[101,125],[102,125],[103,125],[104,125],[105,125],[107,125],[108,125],[109,125],[110,125],[111,125],[112,125],[113,125],[115,125],[114,125],[116,125],[118,125],[117,125],[119,125],[120,125],[121,125],[122,125],[124,125],[125,125],[126,125],[128,125],[76,125],[129,125],[127,125],[130,125],[132,125],[133,125],[135,125],[134,125],[471,136],[472,137],[500,138],[503,139],[502,140],[505,141],[244,94],[140,142],[141,143],[139,144],[142,145],[143,146],[144,147],[145,148],[146,149],[147,150],[148,151],[149,152],[150,153],[151,154],[509,141],[73,155],[32,156],[33,157],[34,158],[35,159],[36,160],[37,161],[39,162],[40,162],[41,163],[42,164],[43,165],[44,166],[45,167],[74,168],[46,162],[47,169],[48,170],[51,171],[52,172],[55,162],[56,173],[57,162],[60,174],[71,175],[62,174],[63,176],[65,160],[67,177],[68,160],[157,94],[477,178],[476,179],[510,94],[156,180],[245,181],[481,182],[261,183],[449,27],[222,184],[214,94],[216,94],[230,94],[232,185],[229,186],[224,187],[231,94],[226,188],[223,94],[228,189],[227,187],[176,190],[175,190],[177,190],[178,190],[166,190],[181,191],[184,190],[185,190],[188,190],[165,190],[164,190],[189,190],[193,190],[167,190],[160,192],[169,190],[170,190],[171,190],[172,190],[173,190],[174,190],[204,193],[205,190],[195,190],[196,190],[197,190],[198,190],[200,190],[199,190],[168,190],[201,190],[159,190],[266,94],[358,194],[353,195],[303,196],[301,196],[328,197],[316,198],[296,199],[326,198],[327,198],[330,200],[331,198],[298,201],[332,198],[357,202],[356,203],[333,198],[334,198],[335,198],[336,204],[337,205],[338,198],[294,198],[339,198],[340,198],[341,204],[342,198],[343,198],[344,206],[345,198],[346,200],[347,198],[295,198],[348,198],[349,198],[350,207],[293,208],[299,209],[329,210],[302,211],[351,212],[304,213],[305,214],[314,215],[313,216],[309,217],[308,216],[310,218],[307,219],[306,220],[312,221],[311,218],[315,222],[297,223],[292,224],[290,225],[291,226],[320,204],[317,225]],"semanticDiagnosticsPerFile":[[456,[{"file":"../lib/code-manager.ts","start":2921,"length":13,"code":2339,"category":1,"messageText":"Property 'getScopeChain' does not exist on type 'ScopeDescriptor'."},{"file":"../lib/code-manager.ts","start":4756,"length":15,"code":2339,"category":1,"messageText":"Property 'tokenizedBuffer' does not exist on type 'TextEditor'."},{"file":"../lib/code-manager.ts","start":8834,"length":9,"code":2339,"category":1,"messageText":"Property 'getHeight' does not exist on type 'TextEditorElement'."}]],462,473,[478,[{"file":"../lib/components/kernel-monitor.tsx","start":5678,"length":11,"code":2339,"category":1,"messageText":"Property 'displayName' does not exist on type '({ store }: { store: Store; }) => Element'."}]],460,[272,[{"file":"../lib/components/result-view/display.tsx","start":531,"length":5,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":545,"length":5,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":559,"length":5,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":573,"length":5,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":602,"length":9,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":620,"length":9,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":638,"length":9,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":656,"length":9,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":1538,"length":8,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; expanded: true; }' is not assignable to type 'IntrinsicAttributes & Pick, \"children\"> & Partial, \"output\" | \"output_type\">> & Partial<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & Pick, \"children\"> & Partial, \"output\" | \"output_type\">> & Partial<...>'.","category":1,"code":2339}]}},{"file":"../lib/components/result-view/display.tsx","start":1606,"length":8,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; expanded: true; }' is not assignable to type 'IntrinsicAttributes & Pick & Partial> & Partial>'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & Pick & Partial> & Partial>'.","category":1,"code":2339}]}},{"file":"../lib/components/result-view/display.tsx","start":1671,"length":8,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(props: Props | Readonly): StreamText', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ expanded: true; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes & Pick & Readonly<{ children?: ReactNode; }>, \"children\"> & Partial<...> & Partial<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes & Pick & Readonly<{ children?: ReactNode; }>, \"children\"> & Partial<...> & Partial<...>'.","category":1,"code":2339}]}]},{"messageText":"Overload 2 of 2, '(props: Props, context: any): StreamText', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ expanded: true; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes & Pick & Readonly<{ children?: ReactNode; }>, \"children\"> & Partial<...> & Partial<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes & Pick & Readonly<{ children?: ReactNode; }>, \"children\"> & Partial<...> & Partial<...>'.","category":1,"code":2339}]}]}]},"relatedInformation":[]},{"file":"../lib/components/result-view/display.tsx","start":1710,"length":8,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(props: Omit, never> & Partial, never>>, \"theme\"> & { theme?: any; } & { as?: never; forwardedAs?: never; }): ReactElement<...>', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ expanded: true; }' is not assignable to type 'IntrinsicAttributes & Omit, never> & Partial, never>>, \"theme\"> & { ...; } & { ...; }'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & Omit, never> & Partial, never>>, \"theme\"> & { ...; } & { ...; }'.","category":1,"code":2339}]}]},{"messageText":"Overload 2 of 2, '(props: StyledComponentPropsWithAs<(props: Partial) => Element, any, {}, never, (props: Partial) => Element>): ReactElement<...>', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ expanded: true; }' is not assignable to type 'IntrinsicAttributes & Omit, never> & Partial, never>>, \"theme\"> & { ...; } & { ...; }'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & Omit, never> & Partial, never>>, \"theme\"> & { ...; } & { ...; }'.","category":1,"code":2339}]}]}]},"relatedInformation":[]}]],458,[447,[{"file":"../lib/components/result-view/index.tsx","start":1329,"length":15,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'number[]' is not assignable to parameter of type 'PointLike'.","category":1,"code":2345,"next":[{"messageText":"Type 'number[]' is missing the following properties from type 'PointLike': row, column","category":1,"code":2739}]}},{"file":"../lib/components/result-view/index.tsx","start":1445,"length":8,"code":2339,"category":1,"messageText":"Property 'getWidth' does not exist on type 'TextEditorElement'."},{"file":"../lib/components/result-view/index.tsx","start":1463,"length":39,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ lineLength: number; lineHeight: number; editorWidth: any; charWidth: any; }' is not assignable to parameter of type '{ lineHeight?: number; lineLength?: number; editorWidth?: number; }'.","category":1,"code":2345,"next":[{"messageText":"Object literal may only specify known properties, and 'charWidth' does not exist in type '{ lineHeight?: number; lineLength?: number; editorWidth?: number; }'.","category":1,"code":2353}]}},{"file":"../lib/components/result-view/index.tsx","start":1481,"length":19,"code":2339,"category":1,"messageText":"Property 'getDefaultCharWidth' does not exist on type 'TextEditor'."},{"file":"../lib/components/result-view/index.tsx","start":1736,"length":2,"code":2339,"category":1,"messageText":"Property 'id' does not exist on type 'DisplayMarker'."},{"file":"../lib/components/result-view/index.tsx","start":2026,"length":8,"code":2339,"category":1,"messageText":"Property 'getWidth' does not exist on type 'TextEditorElement'."},{"file":"../lib/components/result-view/index.tsx","start":2048,"length":39,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ lineLength: number; lineHeight: number; editorWidth: any; charWidth: any; }' is not assignable to parameter of type '{ lineHeight?: number; lineLength?: number; editorWidth?: number; }'.","category":1,"code":2345,"next":[{"messageText":"Object literal may only specify known properties, and 'charWidth' does not exist in type '{ lineHeight?: number; lineLength?: number; editorWidth?: number; }'.","category":1,"code":2353}]}},{"file":"../lib/components/result-view/index.tsx","start":2066,"length":19,"code":2339,"category":1,"messageText":"Property 'getDefaultCharWidth' does not exist on type 'TextEditor'."}]],459,271,[262,[{"file":"../lib/components/result-view/plotly.tsx","start":1901,"length":230,"messageText":"Expected 3 arguments, but got 4.","category":1,"code":2554},{"file":"../lib/components/result-view/plotly.tsx","start":2055,"length":5,"code":2339,"category":1,"messageText":"Property 'Icons' does not exist on type '{ newPlot: (div: void | HTMLDivElement, data: Record, layout: FigureLayout) => void; redraw: (div?: PlotlyHTMLElement) => void; toImage: (gd: any) => Promise<...>; }'."},{"file":"../lib/components/result-view/plotly.tsx","start":2912,"length":25,"code":2739,"category":1,"messageText":"Type 'Record' is missing the following properties from type 'Figure': data, layout"}]],446,274,467,466,158,[464,[{"file":"../lib/existing-kernel-picker.ts","start":2384,"length":17,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'ISpecModel | KernelspecMetadata' is not assignable to parameter of type 'KernelspecMetadata'.","category":1,"code":2345,"next":[{"messageText":"Type 'ISpecModel' is not assignable to type 'KernelspecMetadata'.","category":1,"code":2322,"next":[{"messageText":"Types of property 'env' are incompatible.","category":1,"code":2326,"next":[{"messageText":"Type 'JSONObject' is not assignable to type '{ [variable: string]: string; }'.","category":1,"code":2322,"next":[{"messageText":"Index signatures are incompatible.","category":1,"code":2330,"next":[{"messageText":"Type 'JSONValue' is not assignable to type 'string'.","category":1,"code":2322,"next":[{"messageText":"Type 'number' is not assignable to type 'string'.","category":1,"code":2322}]}]}]}]}]}]}}]],[465,[{"file":"../lib/export-notebook.ts","start":923,"length":12,"code":2559,"category":1,"messageText":"Type '(filename: any) => void' has no properties in common with type 'SaveDialogOptions'."}]],444,[470,[{"file":"../lib/import-notebook.ts","start":358,"length":4,"messageText":"Module '\"@nteract/commutable\"' has no exported member 'Cell'.","category":1,"code":2305},{"file":"../lib/import-notebook.ts","start":4949,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'toJS' does not exist on type 'object | JSONObject'.","category":1,"code":2339,"next":[{"messageText":"Property 'toJS' does not exist on type 'object'.","category":1,"code":2339}]}},{"file":"../lib/import-notebook.ts","start":4980,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'toJS' does not exist on type 'object | JSONObject'.","category":1,"code":2339,"next":[{"messageText":"Property 'toJS' does not exist on type 'object'.","category":1,"code":2339}]}},{"file":"../lib/import-notebook.ts","start":7591,"length":9,"code":2339,"category":1,"messageText":"Property 'fileTypes' does not exist on type 'Grammar'."}]],282,453,452,443,445,[495,[{"file":"../lib/main.ts","start":7238,"length":11,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '(uri: string) => Promise' is not assignable to parameter of type '(uri: string, options?: WorkspaceOpenOptions) => ViewModel'.","category":1,"code":2345,"next":[{"messageText":"Property 'getTitle' is missing in type 'Promise' but required in type 'ViewModel'.","category":1,"code":2741}]},"relatedInformation":[{"file":"../node_modules/@types/atom/src/view-registry.d.ts","start":1216,"length":8,"messageText":"'getTitle' is declared here.","category":3,"code":2728}]}]],497,496,498,499,474,479,461,468,[281,[{"file":"../lib/plugin-api/hydrogen-kernel.ts","start":2196,"length":14,"code":2339,"category":1,"messageText":"Property 'connectionFile' does not exist on type 'KernelTransport'."},{"file":"../lib/plugin-api/hydrogen-kernel.ts","start":2242,"length":14,"code":2339,"category":1,"messageText":"Property 'connectionFile' does not exist on type 'KernelTransport'."}]],486,280,469,278,491,490,488,487,489,494,[492,[{"file":"../lib/services/provided/autocomplete.ts","start":5832,"length":28,"code":2322,"category":1,"messageText":{"messageText":"Type '{ enabled: any; selector: string; disableForSelector: string; inclusionPriority: number; suggestionPriority: any; excludeLowerPriority: boolean; suggestionDetailsEnabled: any; getSuggestions({ editor, bufferPosition, prefix }: { ...; }): Promise<...>; getSuggestionDetailsOnSelect({ text, replacementPrefix, replacedT...' is not assignable to type 'AutocompleteProvider'.","category":1,"code":2322,"next":[{"messageText":"The types returned by 'getSuggestions(...)' are incompatible between these types.","category":1,"code":2201,"next":[{"messageText":"Type 'Promise' is not assignable to type 'Suggestions | Promise'.","category":1,"code":2322,"next":[{"messageText":"Type 'Promise' is not assignable to type 'Promise'.","category":1,"code":2322,"next":[{"messageText":"Type '{}' is missing the following properties from type 'AnySuggestion[]': length, pop, push, concat, and 26 more.","category":1,"code":2740}]}]}]}]}}]],493,[454,[{"file":"../lib/store/index.ts","start":2251,"length":32,"code":4104,"category":1,"messageText":"The type 'readonly PropertyKey[]' is 'readonly' and cannot be assigned to the mutable type 'string[]'."},{"file":"../lib/store/index.ts","start":5431,"length":3,"code":2339,"category":1,"messageText":{"messageText":"Property 'set' does not exist on type 'Kernel | KernelMap'.","category":1,"code":2339,"next":[{"messageText":"Property 'set' does not exist on type 'Kernel'.","category":1,"code":2339}]}},{"file":"../lib/store/index.ts","start":9140,"length":14,"code":2339,"category":1,"messageText":"Property 'hydrogen_store' does not exist on type 'Window & typeof globalThis'."}]],[448,[{"file":"../lib/store/markers.ts","start":639,"length":2,"code":2339,"category":1,"messageText":"Property 'id' does not exist on type 'DisplayMarker'."}]],273,275,279,[455,[{"file":"../lib/utils.tsx","start":1840,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'show' does not exist on type 'Dock | WorkspaceCenter'.","category":1,"code":2339,"next":[{"messageText":"Property 'show' does not exist on type 'WorkspaceCenter'.","category":1,"code":2339}]}},{"file":"../lib/utils.tsx","start":2247,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'show' does not exist on type 'Dock | WorkspaceCenter'.","category":1,"code":2339,"next":[{"messageText":"Property 'show' does not exist on type 'WorkspaceCenter'.","category":1,"code":2339}]}},{"file":"../lib/utils.tsx","start":6741,"length":12,"code":2339,"category":1,"messageText":"Property 'languageMode' does not exist on type 'TextEditor'."},{"file":"../lib/utils.tsx","start":6845,"length":15,"code":2339,"category":1,"messageText":"Property 'tokenizedBuffer' does not exist on type 'TextEditor'."}]],[485,[{"file":"../lib/ws-kernel-picker.ts","start":5496,"length":25,"code":2352,"category":1,"messageText":"Conversion of type 'import(\"C:/Users/aminy/Documents/GitHub/JavaScript/@nteract/hydrogen/node_modules/@aminya/xmlhttprequest/lib/XMLHttpRequest\").XMLHttpRequest' to type 'XMLHttpRequest' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."},{"file":"../lib/ws-kernel-picker.ts","start":7771,"length":42,"code":2352,"category":1,"messageText":"Conversion of type 'import(\"C:/Users/aminy/Documents/GitHub/JavaScript/@nteract/hydrogen/node_modules/@aminya/xmlhttprequest/lib/XMLHttpRequest\").XMLHttpRequest' to type 'XMLHttpRequest' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."},{"file":"../lib/ws-kernel-picker.ts","start":7771,"length":42,"code":2352,"category":1,"messageText":{"messageText":"Conversion of type 'import(\"C:/Users/aminy/Documents/GitHub/JavaScript/@nteract/hydrogen/node_modules/@aminya/xmlhttprequest/lib/XMLHttpRequest\").XMLHttpRequest' to type 'XMLHttpRequest' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.","category":1,"code":2352,"next":[{"messageText":"Type 'XMLHttpRequest' is missing the following properties from type 'XMLHttpRequest': upload, overrideMimeType, onabort, onerror, and 5 more.","category":1,"code":2740}]}},{"file":"../lib/ws-kernel-picker.ts","start":7988,"length":14,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ baseUrl?: string; wsUrl?: string; withCredentials?: boolean; user?: string; password?: string; timeout?: number; token?: string; requestHeaders?: { readonly [key: string]: string; }; xhrFactory: (() => XMLHttpRequest) | (() => XMLHttpRequest); wsFactory: ((url: string, protocols?: string | string[]) => WebSocket) ...' is not assignable to parameter of type 'Partial'.","category":1,"code":2345,"next":[{"messageText":"Types of property 'wsFactory' are incompatible.","category":1,"code":2326,"next":[{"messageText":"Type '((url: string, protocols?: string | string[]) => WebSocket) | ((url: any, protocol: any) => WebSocket)' is not assignable to type '(url: string, protocols?: string | string[]) => WebSocket'.","category":1,"code":2322,"next":[{"messageText":"Type '(url: any, protocol: any) => WebSocket' is not assignable to type '(url: string, protocols?: string | string[]) => WebSocket'.","category":1,"code":2322,"next":[{"messageText":"Property 'dispatchEvent' is missing in type 'import(\"C:/Users/aminy/Documents/GitHub/JavaScript/@nteract/hydrogen/node_modules/@types/ws/index\")' but required in type 'WebSocket'.","category":1,"code":2741}]}]}]}]},"relatedInformation":[{"file":"../node_modules/typescript/lib/lib.dom.d.ts","start":186005,"length":37,"messageText":"'dispatchEvent' is declared here.","category":3,"code":2728}]},{"file":"../lib/ws-kernel-picker.ts","start":8929,"length":14,"code":2345,"category":1,"messageText":"Argument of type '{ baseUrl?: string; wsUrl?: string; withCredentials?: boolean; user?: string; password?: string; timeout?: number; token?: string; requestHeaders?: { readonly [key: string]: string; }; xhrFactory: (() => XMLHttpRequest) | (() => XMLHttpRequest); wsFactory: ((url: string, protocols?: string | string[]) => WebSocket) ...' is not assignable to parameter of type 'Partial'."},{"file":"../lib/ws-kernel-picker.ts","start":9934,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'path' does not exist on type 'JSONValue'.","category":1,"code":2339,"next":[{"messageText":"Property 'path' does not exist on type 'string'.","category":1,"code":2339}]}},{"file":"../lib/ws-kernel-picker.ts","start":9985,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'path' does not exist on type 'JSONValue'.","category":1,"code":2339,"next":[{"messageText":"Property 'path' does not exist on type 'string'.","category":1,"code":2339}]}},{"file":"../lib/ws-kernel-picker.ts","start":10331,"length":11,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ name: string; model: null; options: ServerConnection.ISettings; kernelSpecs: Kernel.ISpecModel[]; }' is not assignable to parameter of type '{ name: string; model: Session.IModel; options: ServerConnection.ISettings; }'.","category":1,"code":2345,"next":[{"messageText":"Object literal may only specify known properties, and 'kernelSpecs' does not exist in type '{ name: string; model: IModel; options: ISettings; }'.","category":1,"code":2353}]}}]],[480,[{"file":"../lib/ws-kernel.ts","start":1122,"length":8,"code":2339,"category":1,"messageText":"Property 'shutdown' does not exist on type 'IKernelConnection'."}]],451,483,484,482,414,416,427,415,417,418,419,420,421,422,423,424,425,426,412,411,407,409,406,408,410,433,384,413,442,431,429,430,428,441,432,436,435,434,437,440,439,438,236,241,240,235,234,237,239,238,267,270,269,268,206,210,207,209,208,247,248,246,251,257,259,258,252,256,255,254,253,243,250,242,249,260,264,265,263,372,369,284,285,286,288,287,370,354,360,361,355,359,371,362,363,364,365,366,367,368,373,375,374,289,376,283,385,387,388,389,390,391,402,386,392,393,394,395,396,397,398,399,400,401,383,377,378,379,380,381,382,404,405,403,276,277,77,80,79,78,84,82,81,83,93,86,85,87,89,88,90,91,92,136,75,94,95,96,97,98,100,99,101,102,103,104,105,106,107,108,109,110,111,112,113,115,114,116,118,117,119,120,121,122,123,124,125,126,128,76,129,127,130,132,131,133,135,134,471,472,500,501,503,502,505,244,506,507,508,140,141,139,142,143,144,145,146,147,148,149,150,151,509,72,30,73,31,32,33,34,35,36,37,38,39,40,41,42,29,69,43,44,45,74,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,71,62,63,64,65,66,70,67,68,154,157,477,475,476,510,152,156,511,155,245,504,450,481,457,153,261,211,137,233,449,212,222,214,221,216,213,218,219,215,220,217,230,232,229,224,231,226,223,228,225,227,176,175,177,178,166,179,180,181,182,183,184,185,186,187,188,165,164,189,190,191,192,193,167,160,169,170,171,172,173,174,204,205,194,195,196,163,197,198,200,199,168,201,161,162,202,203,159,266,358,353,303,301,352,328,316,296,326,327,330,331,298,332,357,356,333,334,335,336,337,338,294,339,340,341,342,343,344,345,346,347,295,348,349,350,293,299,329,302,351,304,305,314,313,309,308,310,307,306,312,311,315,297,292,290,300,291,321,322,319,320,318,323,317,325,324,138,463,6,8,7,2,9,10,11,12,13,14,15,16,3,4,20,17,18,19,21,22,23,5,24,25,26,27,1,28]},"version":"4.3.2"} \ No newline at end of file +{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/ts3.6/base.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/base.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/atom/src/atom-environment.d.ts","../node_modules/@types/atom/src/text-editor-element.d.ts","../node_modules/@types/atom/dependencies/event-kit/index.d.ts","../node_modules/@types/atom/dependencies/first-mate/src/grammar.d.ts","../node_modules/@types/atom/dependencies/first-mate/src/first-mate.d.ts","../node_modules/@types/atom/dependencies/first-mate/index.d.ts","../node_modules/@types/atom/dependencies/pathwatcher/src/file.d.ts","../node_modules/@types/atom/dependencies/pathwatcher/src/directory.d.ts","../node_modules/@types/atom/dependencies/pathwatcher/src/main.d.ts","../node_modules/@types/atom/dependencies/pathwatcher/index.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/display-marker.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/display-marker-layer.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/helpers.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/marker.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/marker-layer.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/point.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/range.d.ts","../node_modules/@types/atom/dependencies/text-buffer/src/text-buffer.d.ts","../node_modules/@types/atom/dependencies/text-buffer/index.d.ts","../node_modules/@types/atom/src/buffered-node-process.d.ts","../node_modules/@types/atom/src/buffered-process.d.ts","../node_modules/@types/atom/src/clipboard.d.ts","../node_modules/@types/atom/src/color.d.ts","../node_modules/@types/atom/src/command-registry.d.ts","../node_modules/@types/atom/src/config.d.ts","../node_modules/@types/atom/src/config-schema.d.ts","../node_modules/@types/atom/src/context-menu-manager.d.ts","../node_modules/@types/atom/src/cursor.d.ts","../node_modules/@types/atom/src/decoration.d.ts","../node_modules/@types/atom/src/deserializer-manager.d.ts","../node_modules/@types/atom/src/dock.d.ts","../node_modules/@types/atom/src/get-window-load-settings.d.ts","../node_modules/@types/atom/src/git-repository.d.ts","../node_modules/@types/atom/src/grammar-registry.d.ts","../node_modules/@types/atom/src/gutter.d.ts","../node_modules/@types/atom/src/history-manager.d.ts","../node_modules/@types/atom/src/keymap-extensions.d.ts","../node_modules/@types/atom/src/layer-decoration.d.ts","../node_modules/@types/atom/src/menu-manager.d.ts","../node_modules/@types/atom/src/notification.d.ts","../node_modules/@types/atom/src/notification-manager.d.ts","../node_modules/@types/atom/src/other-types.d.ts","../node_modules/@types/atom/src/package.d.ts","../node_modules/@types/atom/src/package-manager.d.ts","../node_modules/@types/atom/src/pane.d.ts","../node_modules/@types/atom/src/panel.d.ts","../node_modules/@types/atom/src/path-watcher.d.ts","../node_modules/@types/atom/src/project.d.ts","../node_modules/@types/atom/src/scope-descriptor.d.ts","../node_modules/@types/atom/src/selection.d.ts","../node_modules/@types/atom/src/style-manager.d.ts","../node_modules/@types/atom/src/task.d.ts","../node_modules/@types/atom/src/text-editor.d.ts","../node_modules/@types/atom/src/text-editor-component.d.ts","../node_modules/@types/atom/src/text-editor-registry.d.ts","../node_modules/@types/atom/src/theme-manager.d.ts","../node_modules/@types/atom/src/tooltip.d.ts","../node_modules/@types/atom/src/tooltip-manager.d.ts","../node_modules/@types/atom/src/view-registry.d.ts","../node_modules/@types/atom/src/workspace.d.ts","../node_modules/@types/atom/src/workspace-center.d.ts","../node_modules/@types/atom/index.d.ts","../node_modules/escape-string-regexp/index.d.ts","../node_modules/strip-indent/index.d.ts","../node_modules/@types/lodash/common/common.d.ts","../node_modules/@types/lodash/common/array.d.ts","../node_modules/@types/lodash/common/collection.d.ts","../node_modules/@types/lodash/common/date.d.ts","../node_modules/@types/lodash/common/function.d.ts","../node_modules/@types/lodash/common/lang.d.ts","../node_modules/@types/lodash/common/math.d.ts","../node_modules/@types/lodash/common/number.d.ts","../node_modules/@types/lodash/common/object.d.ts","../node_modules/@types/lodash/common/seq.d.ts","../node_modules/@types/lodash/common/string.d.ts","../node_modules/@types/lodash/common/util.d.ts","../node_modules/@types/lodash/index.d.ts","../node_modules/@types/react/global.d.ts","../node_modules/csstype/index.d.ts","../node_modules/@types/prop-types/index.d.ts","../node_modules/@types/scheduler/tracing.d.ts","../node_modules/@types/react/index.d.ts","../node_modules/@types/react-dom/index.d.ts","../lib/config.ts","../node_modules/mobx/lib/utils/utils.d.ts","../node_modules/mobx/lib/core/atom.d.ts","../node_modules/mobx/lib/utils/comparer.d.ts","../node_modules/mobx/lib/utils/decorators.d.ts","../node_modules/mobx/lib/types/modifiers.d.ts","../node_modules/mobx/lib/api/observabledecorator.d.ts","../node_modules/mobx/lib/api/observable.d.ts","../node_modules/mobx/lib/api/computed.d.ts","../node_modules/mobx/lib/core/action.d.ts","../node_modules/mobx/lib/types/observablevalue.d.ts","../node_modules/mobx/lib/core/computedvalue.d.ts","../node_modules/mobx/lib/core/derivation.d.ts","../node_modules/mobx/lib/core/globalstate.d.ts","../node_modules/mobx/lib/core/observable.d.ts","../node_modules/mobx/lib/core/reaction.d.ts","../node_modules/mobx/lib/core/spy.d.ts","../node_modules/mobx/lib/api/actiondecorator.d.ts","../node_modules/mobx/lib/api/action.d.ts","../node_modules/mobx/lib/api/autorun.d.ts","../node_modules/mobx/lib/api/become-observed.d.ts","../node_modules/mobx/lib/api/configure.d.ts","../node_modules/mobx/lib/api/decorate.d.ts","../node_modules/mobx/lib/api/extendobservable.d.ts","../node_modules/mobx/lib/api/extras.d.ts","../node_modules/mobx/lib/api/flow.d.ts","../node_modules/mobx/lib/api/intercept-read.d.ts","../node_modules/mobx/lib/api/intercept.d.ts","../node_modules/mobx/lib/api/iscomputed.d.ts","../node_modules/mobx/lib/api/isobservable.d.ts","../node_modules/mobx/lib/api/object-api.d.ts","../node_modules/mobx/lib/api/observe.d.ts","../node_modules/mobx/lib/api/tojs.d.ts","../node_modules/mobx/lib/api/trace.d.ts","../node_modules/mobx/lib/api/transaction.d.ts","../node_modules/mobx/lib/api/when.d.ts","../node_modules/mobx/lib/types/dynamicobject.d.ts","../node_modules/mobx/lib/types/intercept-utils.d.ts","../node_modules/mobx/lib/types/listen-utils.d.ts","../node_modules/mobx/lib/types/observablearray.d.ts","../node_modules/mobx/lib/types/observablemap.d.ts","../node_modules/mobx/lib/types/observableset.d.ts","../node_modules/mobx/lib/types/observableobject.d.ts","../node_modules/mobx/lib/types/type-utils.d.ts","../node_modules/mobx/lib/utils/eq.d.ts","../node_modules/mobx/lib/utils/iterable.d.ts","../node_modules/mobx/lib/internal.d.ts","../node_modules/mobx/lib/mobx.d.ts","../node_modules/@nteract/mathjax/lib/context.d.ts","../node_modules/@nteract/mathjax/lib/node.d.ts","../node_modules/@nteract/mathjax/lib/text.d.ts","../node_modules/@nteract/mathjax/lib/provider.d.ts","../node_modules/@nteract/mathjax/lib/index.d.ts","../node_modules/escape-carriage/index.d.ts","../node_modules/mobx-react-lite/dist/assertenvironment.d.ts","../node_modules/mobx-react-lite/dist/staticrendering.d.ts","../node_modules/mobx-react-lite/dist/observer.d.ts","../node_modules/mobx-react-lite/dist/useobserver.d.ts","../node_modules/mobx-react-lite/dist/observercomponent.d.ts","../node_modules/mobx-react-lite/dist/utils.d.ts","../node_modules/mobx-react-lite/dist/useasobservablesource.d.ts","../node_modules/mobx-react-lite/dist/uselocalstore.d.ts","../node_modules/mobx-react-lite/dist/usequeuedforceupdate.d.ts","../node_modules/mobx-react-lite/dist/observerbatching.d.ts","../node_modules/mobx-react-lite/dist/index.d.ts","../node_modules/mobx-react/dist/types/ireactcomponent.d.ts","../node_modules/mobx-react/dist/observer.d.ts","../node_modules/mobx-react/dist/types/ivaluemap.d.ts","../node_modules/mobx-react/dist/provider.d.ts","../node_modules/mobx-react/dist/types/iwrappedcomponent.d.ts","../node_modules/mobx-react/dist/types/istorestoprops.d.ts","../node_modules/mobx-react/dist/inject.d.ts","../node_modules/mobx-react/dist/disposeonunmount.d.ts","../node_modules/mobx-react/dist/proptypes.d.ts","../node_modules/mobx-react/dist/index.d.ts","../node_modules/immutable/dist/immutable-nonambient.d.ts","../node_modules/@nteract/commutable/lib/primitives.d.ts","../node_modules/@nteract/commutable/lib/outputs.d.ts","../node_modules/@nteract/commutable/lib/cells.d.ts","../node_modules/@nteract/commutable/lib/structures.d.ts","../node_modules/@nteract/commutable/lib/v4.d.ts","../node_modules/@nteract/commutable/lib/v3.d.ts","../node_modules/@nteract/commutable/lib/notebook.d.ts","../node_modules/@nteract/commutable/lib/index.d.ts","../node_modules/@nteract/outputs/lib/components/rich-media.d.ts","../node_modules/@nteract/outputs/lib/components/output.d.ts","../node_modules/@types/hoist-non-react-statics/index.d.ts","../node_modules/@types/styled-components/index.d.ts","../node_modules/@nteract/outputs/lib/components/kernel-output-error.d.ts","../node_modules/@nteract/outputs/lib/components/display-data.d.ts","../node_modules/@nteract/outputs/lib/components/execute-result.d.ts","../node_modules/@nteract/outputs/lib/components/stream-text.d.ts","../node_modules/@nteract/outputs/lib/components/prompt.d.ts","../node_modules/@nteract/outputs/lib/components/media/html.d.ts","../node_modules/@nteract/outputs/lib/components/media/json.d.ts","../node_modules/@nteract/outputs/lib/components/media/svg.d.ts","../node_modules/@nteract/outputs/lib/components/media/plain.d.ts","../node_modules/@nteract/outputs/lib/components/media/markdown.d.ts","../node_modules/@nteract/outputs/lib/components/media/latex.d.ts","../node_modules/@nteract/outputs/lib/components/media/image.d.ts","../node_modules/@nteract/outputs/lib/components/media/javascript.d.ts","../node_modules/@nteract/outputs/lib/components/media/index.d.ts","../node_modules/@nteract/outputs/lib/index.d.ts","../node_modules/electron/electron.d.ts","../lib/components/result-view/plotly.tsx","../node_modules/@nteract/transform-vega/lib/mime.d.ts","../node_modules/@nteract/transform-vega/lib/external.d.ts","../node_modules/@nteract/transform-vega/lib/index.d.ts","../node_modules/react-markdown/index.d.ts","../node_modules/@nteract/markdown/lib/attachment/attachment-transformer.d.ts","../node_modules/@nteract/markdown/lib/markdown-render.d.ts","../node_modules/@nteract/markdown/lib/markdown-previewer.d.ts","../node_modules/@nteract/markdown/lib/index.d.ts","../lib/components/result-view/markdown.tsx","../lib/components/result-view/display.tsx","../lib/store/output.ts","../lib/components/result-view/status.tsx","../lib/store/watch.ts","../node_modules/@types/atom/autocomplete-plus/config.d.ts","../node_modules/@types/atom/autocomplete-plus/index.d.ts","../lib/services/consumed/autocomplete.ts","../lib/store/watches.ts","../lib/plugin-api/hydrogen-types.ts","../lib/plugin-api/hydrogen-kernel.ts","../lib/input-view.ts","../node_modules/@nteract/types/lib/refs.d.ts","../node_modules/@nteract/types/lib/entities/contents/directory.d.ts","../node_modules/@nteract/types/lib/entities/contents/dummy.d.ts","../node_modules/@nteract/types/lib/entities/contents/file.d.ts","../node_modules/@nteract/types/lib/entities/contents/notebook.d.ts","../node_modules/@nteract/types/lib/entities/contents/index.d.ts","../node_modules/@nteract/types/lib/ids.d.ts","../node_modules/rxjs/internal/subscription.d.ts","../node_modules/rxjs/internal/types.d.ts","../node_modules/rxjs/internal/subscriber.d.ts","../node_modules/rxjs/internal/operator.d.ts","../node_modules/rxjs/internal/observable/iif.d.ts","../node_modules/rxjs/internal/observable/throwerror.d.ts","../node_modules/rxjs/internal/observable.d.ts","../node_modules/rxjs/internal/subject.d.ts","../node_modules/rxjs/internal/observable/connectableobservable.d.ts","../node_modules/rxjs/internal/operators/groupby.d.ts","../node_modules/rxjs/internal/symbol/observable.d.ts","../node_modules/rxjs/internal/behaviorsubject.d.ts","../node_modules/rxjs/internal/replaysubject.d.ts","../node_modules/rxjs/internal/asyncsubject.d.ts","../node_modules/rxjs/internal/scheduler.d.ts","../node_modules/rxjs/internal/scheduler/action.d.ts","../node_modules/rxjs/internal/scheduler/asyncscheduler.d.ts","../node_modules/rxjs/internal/scheduler/asyncaction.d.ts","../node_modules/rxjs/internal/scheduler/asapscheduler.d.ts","../node_modules/rxjs/internal/scheduler/asap.d.ts","../node_modules/rxjs/internal/scheduler/async.d.ts","../node_modules/rxjs/internal/scheduler/queuescheduler.d.ts","../node_modules/rxjs/internal/scheduler/queue.d.ts","../node_modules/rxjs/internal/scheduler/animationframescheduler.d.ts","../node_modules/rxjs/internal/scheduler/animationframe.d.ts","../node_modules/rxjs/internal/scheduler/virtualtimescheduler.d.ts","../node_modules/rxjs/internal/notification.d.ts","../node_modules/rxjs/internal/util/pipe.d.ts","../node_modules/rxjs/internal/util/noop.d.ts","../node_modules/rxjs/internal/util/identity.d.ts","../node_modules/rxjs/internal/util/isobservable.d.ts","../node_modules/rxjs/internal/util/argumentoutofrangeerror.d.ts","../node_modules/rxjs/internal/util/emptyerror.d.ts","../node_modules/rxjs/internal/util/objectunsubscribederror.d.ts","../node_modules/rxjs/internal/util/unsubscriptionerror.d.ts","../node_modules/rxjs/internal/util/timeouterror.d.ts","../node_modules/rxjs/internal/observable/bindcallback.d.ts","../node_modules/rxjs/internal/observable/bindnodecallback.d.ts","../node_modules/rxjs/internal/innersubscriber.d.ts","../node_modules/rxjs/internal/outersubscriber.d.ts","../node_modules/rxjs/internal/observable/combinelatest.d.ts","../node_modules/rxjs/internal/observable/concat.d.ts","../node_modules/rxjs/internal/observable/defer.d.ts","../node_modules/rxjs/internal/observable/empty.d.ts","../node_modules/rxjs/internal/observable/forkjoin.d.ts","../node_modules/rxjs/internal/observable/from.d.ts","../node_modules/rxjs/internal/observable/fromevent.d.ts","../node_modules/rxjs/internal/observable/fromeventpattern.d.ts","../node_modules/rxjs/internal/observable/generate.d.ts","../node_modules/rxjs/internal/observable/interval.d.ts","../node_modules/rxjs/internal/observable/merge.d.ts","../node_modules/rxjs/internal/observable/never.d.ts","../node_modules/rxjs/internal/observable/of.d.ts","../node_modules/rxjs/internal/observable/onerrorresumenext.d.ts","../node_modules/rxjs/internal/observable/pairs.d.ts","../node_modules/rxjs/internal/observable/partition.d.ts","../node_modules/rxjs/internal/observable/race.d.ts","../node_modules/rxjs/internal/observable/range.d.ts","../node_modules/rxjs/internal/observable/timer.d.ts","../node_modules/rxjs/internal/observable/using.d.ts","../node_modules/rxjs/internal/observable/zip.d.ts","../node_modules/rxjs/internal/scheduled/scheduled.d.ts","../node_modules/rxjs/internal/config.d.ts","../node_modules/rxjs/index.d.ts","../node_modules/@nteract/types/lib/entities/hosts/base.d.ts","../node_modules/@nteract/types/lib/entities/hosts/local-jupyter.d.ts","../node_modules/rxjs/internal/observable/dom/ajaxobservable.d.ts","../node_modules/rxjs/internal/observable/dom/ajax.d.ts","../node_modules/rxjs/ajax/index.d.ts","../node_modules/@nteract/types/lib/entities/hosts/remote-jupyter.d.ts","../node_modules/@nteract/types/lib/entities/hosts/empty.d.ts","../node_modules/@nteract/types/lib/entities/hosts/index.d.ts","../node_modules/@nteract/types/lib/entities/kernel-info.d.ts","../node_modules/@nteract/types/lib/entities/kernels.d.ts","../node_modules/@nteract/types/lib/entities/kernelspecs.d.ts","../node_modules/@nteract/types/lib/entities/messages.d.ts","../node_modules/@nteract/types/lib/entities/modals.d.ts","../node_modules/@nteract/types/lib/entities/sidebar.d.ts","../node_modules/@nteract/types/lib/entities/transforms.d.ts","../node_modules/@nteract/types/lib/entities/comms.d.ts","../node_modules/@nteract/types/lib/entities/editors.d.ts","../node_modules/@nteract/types/lib/entities/index.d.ts","../node_modules/@nteract/types/lib/content-provider.d.ts","../node_modules/@nteract/types/lib/errors/execute.d.ts","../node_modules/@nteract/types/lib/errors/launch.d.ts","../node_modules/@nteract/types/lib/errors/index.d.ts","../node_modules/@nteract/types/lib/index.d.ts","../node_modules/@phosphor/coreutils/lib/json.d.ts","../node_modules/@phosphor/coreutils/lib/mime.d.ts","../node_modules/@phosphor/coreutils/lib/promise.d.ts","../node_modules/@phosphor/coreutils/lib/random.d.ts","../node_modules/@phosphor/coreutils/lib/token.d.ts","../node_modules/@phosphor/coreutils/lib/uuid.d.ts","../node_modules/@phosphor/coreutils/lib/index.d.ts","../node_modules/@jupyterlab/services/lib/config/index.d.ts","../node_modules/@phosphor/algorithm/lib/array.d.ts","../node_modules/@phosphor/algorithm/lib/iter.d.ts","../node_modules/@phosphor/algorithm/lib/chain.d.ts","../node_modules/@phosphor/algorithm/lib/empty.d.ts","../node_modules/@phosphor/algorithm/lib/enumerate.d.ts","../node_modules/@phosphor/algorithm/lib/filter.d.ts","../node_modules/@phosphor/algorithm/lib/find.d.ts","../node_modules/@phosphor/algorithm/lib/map.d.ts","../node_modules/@phosphor/algorithm/lib/range.d.ts","../node_modules/@phosphor/algorithm/lib/reduce.d.ts","../node_modules/@phosphor/algorithm/lib/repeat.d.ts","../node_modules/@phosphor/algorithm/lib/retro.d.ts","../node_modules/@phosphor/algorithm/lib/sort.d.ts","../node_modules/@phosphor/algorithm/lib/stride.d.ts","../node_modules/@phosphor/algorithm/lib/string.d.ts","../node_modules/@phosphor/algorithm/lib/take.d.ts","../node_modules/@phosphor/algorithm/lib/zip.d.ts","../node_modules/@phosphor/algorithm/lib/index.d.ts","../node_modules/@phosphor/signaling/lib/index.d.ts","../node_modules/@phosphor/disposable/lib/index.d.ts","../node_modules/@phosphor/messaging/lib/index.d.ts","../node_modules/@jupyterlab/observables/lib/observablemap.d.ts","../node_modules/@jupyterlab/observables/lib/observablejson.d.ts","../node_modules/@jupyterlab/observables/lib/observablestring.d.ts","../node_modules/@jupyterlab/observables/lib/observablelist.d.ts","../node_modules/@jupyterlab/observables/lib/undoablelist.d.ts","../node_modules/@jupyterlab/observables/lib/modeldb.d.ts","../node_modules/@jupyterlab/observables/lib/index.d.ts","../node_modules/@jupyterlab/services/lib/contents/index.d.ts","../node_modules/@jupyterlab/coreutils/lib/activitymonitor.d.ts","../node_modules/@jupyterlab/coreutils/lib/interfaces.d.ts","../node_modules/@jupyterlab/coreutils/lib/dataconnector.d.ts","../node_modules/@jupyterlab/coreutils/lib/markdowncodeblocks.d.ts","../node_modules/@jupyterlab/coreutils/lib/nbformat.d.ts","../node_modules/@jupyterlab/coreutils/lib/pageconfig.d.ts","../node_modules/@jupyterlab/coreutils/lib/path.d.ts","../node_modules/@jupyterlab/coreutils/lib/settingregistry.d.ts","../node_modules/@jupyterlab/coreutils/lib/statedb.d.ts","../node_modules/@jupyterlab/coreutils/lib/text.d.ts","../node_modules/@jupyterlab/coreutils/lib/time.d.ts","../node_modules/@jupyterlab/coreutils/lib/url.d.ts","../node_modules/@jupyterlab/coreutils/lib/uuid.d.ts","../node_modules/@jupyterlab/coreutils/lib/index.d.ts","../node_modules/@jupyterlab/services/lib/kernel/messages.d.ts","../node_modules/@jupyterlab/services/lib/kernel/kernel.d.ts","../node_modules/@jupyterlab/services/lib/kernel/manager.d.ts","../node_modules/@jupyterlab/services/lib/kernel/index.d.ts","../node_modules/@jupyterlab/services/lib/serverconnection.d.ts","../node_modules/@jupyterlab/services/lib/builder/index.d.ts","../node_modules/@jupyterlab/services/lib/session/session.d.ts","../node_modules/@jupyterlab/services/lib/session/manager.d.ts","../node_modules/@jupyterlab/services/lib/session/index.d.ts","../node_modules/@jupyterlab/services/lib/setting/index.d.ts","../node_modules/@jupyterlab/services/lib/terminal/terminal.d.ts","../node_modules/@jupyterlab/services/lib/terminal/manager.d.ts","../node_modules/@jupyterlab/services/lib/terminal/index.d.ts","../node_modules/@jupyterlab/services/lib/manager.d.ts","../node_modules/@jupyterlab/services/lib/index.d.ts","../lib/kernel-transport.ts","../lib/hydrogen.ts","../lib/kernel.ts","../lib/components/result-view/result-view.tsx","../lib/components/result-view/index.tsx","../lib/store/markers.ts","../node_modules/kernelspecs/index.d.ts","../node_modules/@types/uuid/index.d.ts","../lib/zmq-kernel.ts","../lib/kernel-picker.ts","../lib/kernel-manager.ts","../lib/store/index.ts","../lib/utils.tsx","../lib/code-manager.ts","../node_modules/anser/lib/index.d.ts","../lib/components/result-view/history.tsx","../lib/components/result-view/list.tsx","../lib/components/output-area.tsx","../lib/panes/output-area.tsx","../lib/commands.ts","../node_modules/tildify/index.d.ts","../lib/existing-kernel-picker.ts","../lib/export-notebook.ts","../lib/components/watch-sidebar/watch.tsx","../lib/components/watch-sidebar/index.tsx","../lib/panes/watches.tsx","../lib/result.ts","../lib/import-notebook.ts","../node_modules/@types/atom/status-bar/config.d.ts","../node_modules/@types/atom/status-bar/index.d.ts","../lib/components/inspector.tsx","../lib/panes/inspector.tsx","../node_modules/@types/react-table/node_modules/@types/react/global.d.ts","../node_modules/@types/react-table/node_modules/@types/react/index.d.ts","../node_modules/@types/react-table/index.d.ts","../lib/components/kernel-monitor.tsx","../lib/panes/kernel-monitor.tsx","../lib/ws-kernel.ts","../node_modules/@types/ws/index.d.ts","../node_modules/@aminya/xmlhttprequest/lib/xmlhttprequest.d.ts","../node_modules/@aminya/xmlhttprequest/lib/domexception.d.ts","../node_modules/@aminya/xmlhttprequest/lib/index.d.ts","../lib/ws-kernel-picker.ts","../lib/plugin-api/hydrogen-provider.ts","../lib/services/consumed/status-bar/status-bar-component.tsx","../lib/services/consumed/status-bar/signal-list-view.ts","../lib/services/consumed/status-bar/status-bar.tsx","../lib/services/consumed/status-bar/index.ts","../lib/services/consumed/index.ts","../lib/services/provided/autocomplete.ts","../lib/services/provided/index.ts","../lib/services/index.ts","../lib/main.ts","../lib/module_types/atom/index.d.ts","../lib/module_types/atom/autocomplete-plus/index.d.ts","../lib/module_types/jupyter-paths/index.d.ts","../lib/module_types/kernelspecs/index.d.ts","../node_modules/@types/cheerio/index.d.ts","../node_modules/@types/dom4/index.d.ts","../node_modules/@types/enzyme/index.d.ts","../node_modules/@types/enzyme-adapter-react-16/index.d.ts","../node_modules/@types/unist/index.d.ts","../node_modules/@types/hast/index.d.ts","../node_modules/@types/jasmine/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/json5/index.d.ts","../node_modules/@types/mdast/index.d.ts","../node_modules/@types/react-test-renderer/index.d.ts","../node_modules/@types/scheduler/index.d.ts"],"fileInfos":[{"version":"ac3a8c4040e183ce38da69d23b96939112457d1936198e6542672b7963cf0fce","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06",{"version":"1dad4fe1561d99dfd6709127608b99a76e5c2643626c800434f99c48038567ee","affectsGlobalScope":true},{"version":"cce43d02223f8049864f8568bed322c39424013275cd3bcc3f51492d8b546cb3","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"8dff1b4c2df638fcd976cbb0e636f23ab5968e836cd45084cc31d47d1ab19c49","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"8f4c9f651c8294a2eb1cbd12581fe25bfb901ab1d474bb93cd38c7e2f4be7a30","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"60761e6ea886034af0f294f025a7199360ce4e2c8ba4ec6408bc049cf9b89799","affectsGlobalScope":true},{"version":"506b80b9951c9381dc5f11897b31fca5e2a65731d96ddefa19687fbc26b23c6e","affectsGlobalScope":true},{"version":"25b4a0c4fab47c373ee49df4c239826ee3430019fc0c1b5e59edc3e398b7468d","affectsGlobalScope":true},"e23424b97418eca3226fd24de079f1203eb70360622e4e093af2aff14d4be6ec","a473cf45c3d9809518f8af913312139d9f4db6887dc554e0d06d0f4e52722e6b","a668dfae917097b30fc29bbebeeb869cee22529f2aa9976cea03c7e834a1b841","04eaa93bd75f937f9184dcb95a7983800c5770cf8ddd8ac0f3734dc02f5b20ef",{"version":"c8155caf28fc7b0a564156a5df28ad8a844a3bd32d331d148d8f3ce88025c870","affectsGlobalScope":true},"45ac321f2e15d268fd74a90ddaa6467dcaaff2c5b13f95b4b85831520fb7a491","aab38abd210255237d4dc101c9e5b5f8d746fd75aeb30cc77b6a4d322b06693d","797a9d37eb1f76143311c3f0a186ce5c0d8735e94c0ca08ff8712a876c9b4f9e","bc31e01146eec89eb870b9ad8c55d759bcbc8989a894e6f0f81f832e0d10eb04",{"version":"2866a528b2708aa272ec3eaafd3c980abb23aec1ef831cfc5eb2186b98c37ce5","affectsGlobalScope":true},{"version":"153d835dc32985120790e10102834b0a5bd979bb5e42bfbb33c0ff6260cf03ce","affectsGlobalScope":true},"a44c87a409b60f211a240341905d818f5f173420dcf7f989ee6c8a1a3d812ae9","bdaf554ae2d9d09e2a42f58a29ef7f80e5b5c1d7b96bfb717243dc91a477216e","ea194ae7fee69ab77ee0ff7b7f35227eb09515583f6c08988a59fa65661af990","321ea733ae7f611077a2d7b4bc378ac4a6b7e365e1a51c71a7e5b2818e1e310a","13257840c0850d4ebd7c2b17604a9e006f752de76c2400ebc752bc465c330452","42176966283d3835c34278b9b5c0f470d484c0c0c6a55c20a2c916a1ce69b6e8","0cff7901aedfe78e314f7d44088f07e2afa1b6e4f0473a4169b8456ca2fb245d","ae7b9d7ab1652cc1866ba6e269d0eeaf1708d07327714124ed2cbd059f5e4766","69640cc2e76dad52daeb9914e6b70c5c9a5591a3a65190a2d3ea432cf0015e16","21e64a125f65dff99cc3ed366c96e922b90daed343eb52ecdace5f220401dcda","4982d94cb6427263c8839d8d6324a8bbe129e931deb61a7380f8fad17ba2cfc0",{"version":"b0b00cf2e8107ab671243a73d2fbd6296a853bebe3fcfaaca293f65aaa245eaf","affectsGlobalScope":true},"7f77304372efe3c9967e5f9ea2061f1b4bf41dc3cda3c83cdd676f2e5af6b7e6","992c6f6be16c0a1d2eec13ece33adeea2c747ba27fcd078353a8f4bb5b4fea58","3b790d08129aca55fd5ae1672d1d26594147ac0d5f2eedc30c7575eb18daef7e","a6b0abdb67d63ebe964ba5fee31bc3daf10c12eecd46b24d778426010c04c67e","e7b5a3f40f19d9eea71890c70dfb37ac5dd82cbffe5f95bc8f23c536455732d0","4fd3c4debadce3e9ab9dec3eb45f7f5e2e3d4ad65cf975a6d938d883cfb25a50","0953427f9c2498f71dd912fdd8a81b19cf6925de3e1ad67ab9a77b9a0f79bf0b","f89a6d56f0267f6e73c707f8a89d2f38e9928e10bfa505f39a4f4bf954093aee","7df562288f949945cf69c21cd912100c2afedeeb7cdb219085f7f4b46cb7dde4","9d16690485ff1eb4f6fc57aebe237728fd8e03130c460919da3a35f4d9bd97f5","dcc6910d95a3625fd2b0487fda055988e46ab46c357a1b3618c27b4a8dd739c9","e649840284bab8c4d09cadc125cd7fbde7529690cc1a0881872b6a9cd202819b","a364b4a8a015ae377052fa4fac94204d79a69d879567f444c7ceff1b7a18482d","60c9e27816ec8ac8df7240598bb086e95b47edfb454c5cbf4003c812e0ed6e39","6c63cb179eda2be5ab45dc146fa4151bec8ce4781986935fe40adfc69cbbf214","4926467de88a92a4fc9971d8c6f21b91eca1c0e7fc2a46cc4638ab9440c73875",{"version":"2708349d5a11a5c2e5f3a0765259ebe7ee00cdcc8161cb9990cb4910328442a1","affectsGlobalScope":true},"4e0a4d84b15692ea8669fe4f3d05a4f204567906b1347da7a58b75f45bae48d3","ae68a04912ee5a0f589276f9ec60b095f8c40d48128a4575b3fdd7d93806931c","b3593bd345ebea5e4d0a894c03251a3774b34df3d6db57075c18e089a599ba76","e61a21e9418f279bc480394a94d1581b2dee73747adcbdef999b6737e34d721b","49daf80661034e07d919f1c716aef69324e34d18a63a282f8100f52c961b58a7","538743c4a70f32d2f6af137ff44a043c49dc8da6ebe2ad5e7da60cc953630e29","d2104c54b34158356c4c17dd37c7dd29e1c7dc4c77d9077e921f37d0b0f5cb87","8989b83d1d34dc4ef1100cbcc0f983f69d63118aeca3de5947e1c431ccd21ccc","35c935b77ca1da8fbf901931e0d8f25bff1cdedc9cbc01d98180cb496c445c21","3d1ffbc8fc8790ce6eef1e4ce1e79bfd5e9d0bc7d4f7cac0e95c54a7e1141875","128307a9785a229de861f811864e872ccc7b98da7953f6a67168addf64164fae","79d8197c490b07c732957dfc053b0a1bceaeba6cca9d3de6ce784d6b949fca4b","a49b47dfb004f10f3b23bb790de0c74667dfd053f7eda02ac831c351c7875498","5af3737dddb6e952a498672892404be1105ec2751b09467fbb5fd4b95efbd99b","9a1aef5196a946220a7ef874a7bc7424efef78d23ba8ff20df281b36ef62837a","3e587a8ba8dccc8217a1dfe64ca76e132ed54fdcc794765d090e0aa0147aad67","4d6e6619818eca8ab323f7b2199d9f2b324492bbf8e28dd29e3be90eb3530e8e","05d99f695e6424963c16f8a990e2fd0b703a8079baa1445ef2915fe525efc85b","acf2768b45d187b81284aa4f8e716413ce8776a90a72e755403faba08eef7dbe","8acaecb37a96026cb6d1ddb3ca4ddb32722890d18f35bc6e019dc9703dd72529","88d9da0dab92c994d171a7999ca48974be8f99c041622a78d0b1f3ff27588fc1","dc172eb5106eefa395d091bdb0d8b1963a86aae82a6a7192c1910e7f11083ccd","edaf342a2f1528da49e69e479132a88102b8d9866b129bdcf1e59d86cbd6341f","2cb11a971470a03e828df7520b3153e514bfc5065597d0690a0439f7a5e4284a","839f9c729f3bfd673257683bb86879ba1c3f8b41f01c2a6a33295ebf14927ab5","9b37c5e6e6c985efb20425b725034100d4240afe789b2ea7c5760ab6205ab645","4d74b98b593856085848bde7d83f400ad2fe5a2c36ac9dfe863f96ac206ae55d","27656836bf9547d24ed317c044fe1a3feeb58aff8433ba7813d50e8f69088034","e42db4296d48fa63531ac389627d0577a0dd6f6491b47fd7398b17ff6abd2f6c","bddc0d81daa46345e19c159cbc90638380b24e8d6ddd89d1542c6d9e31ebeddc","a204b31c3672914ff68bb20bfdaae933bf7f8f943687c371b0fd32a3482fc5d4","aeed82530b6398bccd5920a2d4c19011102927c19ce0682dc94f70ecd457a4bb","c129f26b2f8b768c7fc6c5edfd7353599d2fa9fbd19c9175192a608d687ca9a4","41507092ec15c44f72df77d95847b87dccff5f9cce4a11ff6a6f0270f3df3e74","ef048a1d0f1a5f33453b2481987a0f5011e158b757fe4f4def16a2a31efd4623","0534a685ecb1022ec62f19fe7252137f652dde0d86404723e021ed714d44c442","0be9967f0df1fd5673b743b218dde9378b8d0aa0e4a8f364f567b0bd3f004d27","867d4bc564691a35170c6620b658d0f745229a3cc30016e08520181bb1a7f1d3","429c0ccb47f85fab9f0096859a31f2bc20e2b8a814022cd71f6e5cc88ee550f1","060abd605f5f3a963d04ce8a5242f751294d4ad135ad349751089e7c29aec0d0","6c83ec67f9e4afb6ca82b7be9548cc004e8d9ef6ac6aa29b2a6846cb9e5adb5d","23782509c8247596fc3cd2080fc4491e548e1b4587939b68eb4e390eca48b971","f50fa063598d47694feba8f4d91f9fcac813b2c6fdaa5981c6ff466952faaf48","69977ff2a9fb72635702a1d7bf86fab73cf5184d45921f27affac20bb0c3ceae","5a4381be6da0f0383519663bb25660e094c9fc7cb658bf60a2cc221ffa8c7cda","b193ed7441b78595000bcd07c92bfa1b36493910579f1c33daafe42a90600537","e0196a20e6956f17ecf8f04188d34e4b3102e2b6f068b68fdfcecdefaa506e7a","e3d78def8d4e6bb8397b25068fdae6eac9d181a75c78dcf20227a251ee00bce3","0d70c986f1a71c38bf3c3c6b54425c4ba624642231ea8471a21adcd69ecbdd4d","13508efda3383aae203a1a8b5b90b79f99fea1920b65db9ff4a39538934b6c10","3a46c481fc512cce568b39ab364bb02ec588fc276240caf34e015444a5fd26d2","9098640c076d1bdbe6daf7b48d08bb2200ac28cce6db7d08118ae676a99406c9","b64113de8d7989a04f8f94e2c125ac426b9a5797fc2245bf70b96e25c1a06d76","7916e7c886d2088f3a9cad90c7967426d23a92930baf4f9e3b027cb904bc5c09","833a669fdba855086b045a3021b9b51040bd46c565a44f5cae5393cf1e8093b8","c6e2264465eb2e8cb2e12b67adc878e3a397efd6328e550b0a1a5bffabcad66d","048f40812b2a786d92fc8db2f174d35fa64581859cef090087a0f392d4010a3d","b130b6175f23bb5d9e5006ea959b78db664fe4f01abb377258e789c49c4c7cfd","2163bfddb0e1569e330731191e593feb3582cd0d27518993b6970aa8d62016ed","d302ecc0b3d2c60e6408fd2469e726967c7114d5f89b97d82f316feb8557c69d","4782235ebc38ab1dada9c9bb80ee43982f076c6d420bb0772c40fe615901889c","8f3a97edf479a690f731502f11179ec8264e11876a2b5b960a8ed64201392d86","fe9b9da3ace303035d4492d77bfed0260b3d50a04e0fbb128f6c47dcc97e8618","26062553cec8ef883a3617e98d29b395419287e48f4102105a2ee80c1997bac1","13972f1ccb5602c28eba0b02e7f6012f9eaaa0a1d56fb091996a33d67df5b3f0","f2b32e966e35467d563af676842b4e0718f1cd634f2dfdce3972ae101e5a8564",{"version":"00ef4a4324556eab6e45809e757354899d1ded0f5b2134465ee10e450f9c8d61","affectsGlobalScope":true},"a9fd76613c52aa62a036e7d85d6503601ac3aae1444f4765c738567e5f687f4f","808f34beed9f00ab3acc06abe97a60f060e38ec10b06d9dcd6cacbf045714b9d","3594c022901a1c8993b0f78a3f534cfb81e7b619ed215348f7f6882f3db02abc","438284c7c455a29b9c0e2d1e72abc62ee93d9a163029ffe918a34c5db3b92da2","0c75b204aed9cf6ff1c7b4bed87a3ece0d9d6fc857a6350c0c95ed0c38c814e8","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","782abf371043fc65a987f835a3acfd80602a30c3e2122f6d5756a86bf6913352","509235563ea2b939e1bbe92aae17e71e6a82ceab8f568b45fb4fce7d72523a32","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","82251920b05f30981c9a4109cb5f3169dce4b477effc845c6d781044a30e7672","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","4908e4c00832b26ce77a629de8501b0e23a903c094f9e79a7fec313a15da796a","2630a7cbb597e85d713b7ef47f2946d4280d3d4c02733282770741d40672b1a5",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},"4ee363f83d7be2202f34fcd84c44da71bf3a9329fee8a05f976f75083a52ea94","a7e32dcb90bf0c1b7a1e4ac89b0f7747cbcba25e7beddc1ebf17be1e161842ad","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"3264032a4141e0ce43727634c9a136b7e9cbf3292e6097b8d17ba8ec8d2a29bd","affectsGlobalScope":true},"c45d6f4d3a20be54e46237608f537a8d85397f87b9c3318d68ed925c2f1d0b51","983b055016a8412ba6d54c971219805038fbc7861c52388e0f205f134356182f","63ddff320a89f6871034933fec3d04e68bfb428e9c78c543ea13c510b363bc42","19d56d852739d209835dc7c64f6d508310d4018376cf8bb9c8febda362ca8f78","33c337de15324843b658d00995db674f9c618fe9ad6ad6b43f0fe6835984fa0b","835eac23d8469562ee8b6cb46a875c694a29a196dbf3d075d850972ecc834620","98d0a7a057191ce8f111a5b8ecc7107ff9ab45d63ead4ce29a07296d31b5e91c","4041620e27e40e45b2245c7b4a8c71f61ca3fa3c4a13ee90d09cc63ca77869a8","b85b721978ea4bb7624ac8e7e6cb512a5cb290a85cf44e524f242fba25d476fa","e73468f0faf1cc6da95dcffc4533896c0cf91c4a8e4b3f9f65f87fab36d7e174","3b5d72a128afa26b8636e191b082947ea1e1ccd799543e3ce7a57adc35697eb8","efa8f798ccfc988c480922f64a92968a862a8ea200bfe88982edf46dad94bc28","79e715a58ae3ee0470cb55d55653c4dc89f7d8ef4f5a7b5720b7be08a998f649","6a2b74f0ec5c05b43dcea9d05433739900b7052a483f0dba4c515cdd29734942","4609c547e1956bee7974fc845dea2eb9be4292a943bf3cc9964ba2b041759b4b","740bacc689be6f431d28f32ff98278810840de1869b4f03dc47b8c92a6d860fa","78dc572c57915fa4a3172b59a3cf590a86b4e7e65dff5c27d2438f578b5d9ffc","501485ac42f4a9298ee77c4ba6c3eaa818041e63066003ef88b87a7ac3f62beb","228f1b1845cf8eab22806df7fdfd57803cb4161d190ce930491fe80d8a2b6e98","5b0b345017f6b471b620f1c8fbdbf0e04c3721375d3e800c52618dabfeef1f07","ce662439cb897a60ae7657ac19cfa47dfeb558e13ecb30ee84a3112d0fd466fa","470a0fb853080bdd226587e7b4bd403c21b3dc7ff41b598622518e0308934b87","4655c6622f6d0bb3182ee903b35013605425b421c24b17d3e826782c773dd75f","c6e88565b597b47d3d2a304af8b99f2b2b818e2136815ff473cd9e371899fbf7","ff51bf727325b7ae84d7296a0f6f701b9db4c1950c83ef389ac3b7dcdcb5efd7","bfca9c2cc975dd04310c02d200c61baac194b8ebb52d26ea83c50092ae005f88","0f2fc3b17287c4bbf75b2acc39ab504b794ea332972d914c17ec7f1dd95efe25","05e9a6cc3630bb41f3bd0a2cd86627fd19afe4837f34062e24ec799f1748def9","292404c1008d69cb301e9cdc821fdecd347a574da87cf5041c166041a7b1a2e9","6d4f8e81b0c78a3282862d631b067c8857feb438ffb804ab16ec6787a984f07e","8558b13817b7ff64d16f004ec1f8503baf48b0257428de64ce67646da6dd2142","aa0a1c26b1f6ae3d55a9942ea119b301e2a455a601ca868a1bc84372c1d3f045","5ad10a0a2db50586db554af700cb48fe317f80d881428d5473807a9ebbf3d738","44074878bfdc747b948feef53cd672bca37675bb885127bc6c2669d5baf57902","f2ecf41bea9d32be3e27c71b7d1d9e3f58083b45fd36bd25980899a1168ee109","0adcb5db0aa0de1425495b135dacaf6f2240e3ad48b905cd8139f730fedaa4ca","ad0a9f226ccbba7ea6b2b991a0bec5d95f0b1e8104f12d691c1a407710a7a832","2f96180e51009103c6f383ddd03c1452229f514b585c2ad1a4dc25ac7ec7ab7a","70f1bfeb39734149e329e52e51f28b88f3f83ff25c6e3a43c1441981ac318126","05129db68d57fbb85476b7e6e164e8b292efe68d5fdc544b70ee3a32233b2487","5d3838dbbcfda003fbc39f2716a106f2b514a54dd2def9ea08ab04c8e7db4835","b86b288947dd561b5cb2d62c7ec02a83a00858e6673719699f960f48121116b0","b5c3e2baa5d632f3489ecb4f6d9ad8e2c914cda3f11a98570c7100d6ac52615b","ff2ece145bb888655363773f3c781ea9f6a06bdc0f35f125f159dfd4ecfb37df","f14823adf03c5cd507c4d7a8cbb242e02c6e2835424e1183e729464bdf4f3f73","118d80f9540cfa2b110c2835648059d35660b02250e6ac64b7d81791ccb5a5e1","99b6d4c09e9743dc5b57ed14d1cb75434539838ba5f53de259693de8f5027d8d","5577f642fe5b71710a4fe4b8a3d5f1bdcb9760d7b6162f0184d97267f31dd6e3","fb8e8e664c26078702764fa8efe1ba1a3125f1c32995821800a94f01a3273fa1","d1c2921a49b20bc830e1f288a41d29deffb65a629e77e7d5e9a981f331297a34","576db8c61a68aeaca86dfb43d4963fc6ee5d5f77e8874cc70c4ef7568f590731","124ad91ffda83fbd3afbe654a1ff708caaa8828128fd4c189644f28df6412743","4cbbab467863aae8abdafd506d0d950263065c3bfde07feace7280ed858aebcf","e309ec774381f07a91fba05854110b9fc5c6e13390b70068bf3ccff99188889c","9971300f0622080bcd990574d9f5b599512cd6268e3170867ce369f7418e39be","f761c91419d0a89422a0004ef1a92929dd4d2d5e5c16758654d8b0467d1998c6","f0cf46afbdff530923e8eaa10ae909d0fc4894d3beeab71be5972660d0f94657","20423b338529dc6c08091a31dfd4c8eb59c43618add12be380bc5c2c1defdefa","322aa16c6c143f1d818c5971d3f7641ab15cd726daed0c3bc4e344fa3377ef6b","32a6a915cfd763b55a3fdd52a1be4c33d0d6ff2b8b4e31477e522f983c168c32","5c5975a57f974dea93b814baaa9e001f0bc4a832d9f3d75a8193c2e12331171b","7f9b0d5e3fa15ab156fdc7967b7cde90bc655199c9f27bfd529dc8936f0ed5d0","c1fc7bc6a2c8ed40e9d17abba1c515923a7d860916611171b1f78019e4c75ec5","7a736da957c9a1d576a5a4dd4ce145b782944bc8e9470b8ad2ac3c4a349fb666","960e9a6f3844831c0b827ad4c116c1d5ae2eb4ee6a364f55650ecf0f4b358254","53825c0d7205506faa91825612373dacb25f70fc05776c69c998f4081cc67da7","bfdcbaa21d9ceeb25394c1d67836a3355660a9cc38dd790fb138c801ecfc10a6","3dda11e0c7b1da55fb3576a8c863d1e8067004060d844b6e3ab9cbb2522ee6d4","be6b8e95eaad887b3e26da22215f188ac01ec13d8e6fe89c57d671a04f241e09","a0772a49c68c8ad09fd9b41f73fe542e52535e14f7825db9d605c3c99166c377","9e7a6963251629b917820b5c2ed4e3d78a20e9918efe2b6615fd484fa0cb6523","55447554cf27022611a95091556b48ba78e962b8e2a5ef0572f3dbaef1c9ec8d","ed1d1e789510fb8a6956f82b0160c069846c35e23ee3bb65f3cdbfcda319742d","26851ae9962b794c44cb4d3c7ac2abf88e7c09104011c0158613358fcc6949e6","6d13ddfedb26a0ebe0ab867e22db3064640b350edd7f29e4736475ec273c21eb","a825fab8128556b9f2cfca1de0e65bef960a4cd8123ead23f5f735dac1bf28bf","e5e65d1d223b004f5c19145b39f1359d233cbdbaaa6dd576e42e87fd0a5a66e6","540fca79b8b30092983469137f6398890cf52caacd019b97cdcd06f8b01de145","cdb3c3fae7a4f20443850e06ab11e5d57d2baf06d474159908a91ff0e4a2c624","6b5b606a13efa3ab0ef1b9885a9df353a972c82eb69203f5aeae04f002f08692","b45d65f0a5fbe79f4ce2c5e0788c42710658134d13090142954f1fe2f1f6edf8","fbe00df82d77f8c14a6923170654cfb28cb46ecf3c1af6ad3e851f5aafe70f43","0af30493c8bd4f5ec4f462e4881d5355157e4f07e1c90502da3c72d89e22f662","73e82f1fe24c38b8616cf49db49cabab77887a904bc91808e81fe32bce493bcf","2d5385cc4c6b85a831e828d6761b880c747d15e403f90ba9385d3ea9f5b59c32","7b1fbe1d46ad67315d73bd52a172a752c4c05bf18bfaf7a86d18ffbb33c19cae","e9796a4beccc5293ab4fc32d73333311640645a209a5f298be0877dbe79b96d3","bfe1b52cf71aea9bf8815810cc5d9490fa9617313e3d3c2ee3809a28b80d0bb4",{"version":"6839e1779e1f61e0ed62b1ca3ff7e74dc70479a5455077a38434d0e404103c28","affectsGlobalScope":true},"e927087d0e2432ca048f7e4db004a2548282befce0ff919c0a6f9a376400b6c2","93aebe83466496340ef8b003c196f7e6fe325fbe6ee98c08ed715ac3ea61567d","47a85f99c4b4f9dc691c76b037a861a9f429c75e580d9262c68d739cd02a27c4","2b497f5fa54fed8de6a0e935e5d3cd55a4cbd2531c426a343aebf24d2dccc2d7","abf31cf4e16b7b9e29fcba2b970a7c5e5fbb0f53b092a11d5dd92cf714b653fb","9227936c4b5cb4e7dc7ef102f52f8a3ead02d270230ad81b9c79df1b3bcf5908","41e938c10a11ba59df74a150166274021bb456af2e77761b74e7a96dfcf67596","64d2153231dc1152827eafc3281d562b8560529441cc9bdd0f35947234a234a3","c44d61dc883e72e84ad75a5135f2f9fe98708ab5a56ca6d35371cba902439e61","8cf06b3c48224540274cc19d2c75f4cb117a177ac444ef5c9b0d04836067b57f","dae16886c7d2bdd5a9774c0885c1b2cac93026328fdc6b64ab6810c225f22c52","2ff61910daf993742d6e5c83816a249b58f4f97ff93b37fa4b1c98253e174f92","e9223cc22ec1be13bab6e2562f3a6086e203c2983c382408a2d6fd741c67f20c","f60c30119651a9779a7fb605d0387190699331734a5049a42d0b009951a3f707","40e7db95904ee001e2c8d69de60edc32c346f9895063210adca2ceac076e9d8e",{"version":"1fa918c9b9d80b206812f511ba564c3de70de0a438bf277e3cee67209135c872","affectsGlobalScope":true},"25944ee83d9315cf7c875ff7a7a67b3190fe23799ea4f908f829fa098a4ae7fd","63dabc2c7a61884c12711baf51f280632c8912fa9470be64f12293c70a08dcd7","1725e5d46dc7469cda6011ef6e258bf2bb3ddb1885426ed6e318f99de3e3abe3","d37af09d956230822f7d7426e015ab7ad50202d24c28fe1df59c5e7a2cdebe0a","db6e02fd3d77ebe45d9328da83772787481e0982dcc53723d7a5ba8c6b25bfa1","67d3da96c7d8720637854b0accfb59132e850601657567f3e790100057583ab6","16ae3c942dfc70db648761230549f4c5ea71171cdc2f544cece7dabe968ee4a5","9ff47561507e36916d8eff69e827c60f0634ae19bf2454c5e5aac4614000ad88","839d07ae78ff176526907baf25b3b28fc6f9193e965e275a60917e8ef0034d23","8cfbfcbbf0fa67402908a4e6cd6f4af0742e5321dc170dc8eed0b7ad572db6dc","730cbe6975b496e341b91c0af2bc6aaa7fdbb9f80952288ef9461e9ebf795e8e","b3d2a1a6e51fcab32219cdfc8aab5d01a63392a1bac233fb58bc5dc96b058062","a237952822d8063012701664c9b19e16870dbad6e5b00d1f531152f805bea0ac","1f9991c2c5ba79a1c65f15bd7c475d9d49ed03d834606f90f7c865f50b4405e6","cd715ad1bdab30da9b91b985780d5b9696262d0e9fe5f390a7e6468b828a751c","d21a01533cbd8e4fd8ca51ddb3e7ca1f9b958bcd22bd98f3ba9f2739b90f47a1","1562149ff2ce2c0bc2825bfeeb8ba6a32bcb205dedd4ee95d274c908870da179","f278b7ba2ca4f3e96c51ebec8a977c5cc31883a145f60b05b6cc972aaa9ec5f2","21ea5b9a5dabf424b51aac168db18e2be2666449cc4f120329d0fc1ef66dcd1f","fc96e5b1029b3c61491bc241e6727676f890eb14c1a56a786255ad76b5e94650","2d924cfaaac52cf88256d7a23b62d8831011207e7caee1ee0a8949bc5c25593f","5479e864cf80c2c6b48354d2ff1f70e76c7196d31a1538fc12306b8f6dbb3366","a6647b2803a444342815a70f34694cc6c61393463237fadfddbf4c320f631429","971eb4d6b600ef600a360fb55e0d684e36f14754ba2b7847827769934ae6368b","d2c5b0dfb932b4a7b4d8d1dc44b241c5096ff93bdd11fe6357bd1c2c938fd5d5","2a7303938915735d760facb158e9fd5aa6d04ea0f7b79fd4d1bbf085c4fbfd36","4990dc465a1bb5cc9eb1ede7050b2b5ee7407b8ef51d3460707bc3f50339a17c","d59d7c33ea06333290cb024f6ccb32169fa9d8243f69353b5aae78da0f72b837","6cb35d83d21a7e72bd00398c93302749bcd38349d0cc5e76ff3a90c6d1498a4d",{"version":"369dd7668d0e6c91550bce0c325f37ce6402e5dd40ecfca66fbb5283e23e559d","affectsGlobalScope":true},"2632057d8b983ee33295566088c080384d7d69a492bc60b008d6a6dfd3508d6b","4bf71cf2a94492fc71e97800bdf2bcb0a9a0fa5fce921c8fe42c67060780cbfa","0996ff06f64cb05b6dac158a6ada2e16f8c2ccd20f9ff6f3c3e871f1ba5fb6d9","5c492d01a19fea5ebfff9d27e786bc533e5078909521ca17ae41236f16f9686a","a6ee930b81c65ec79aca49025b797817dde6f2d2e9b0e0106f0844e18e2cc819","84fce15473e993e6b656db9dd3c9196b80f545647458e6621675e840fd700d29","7d5336ee766aa72dffb1cc2a515f61d18a4fb61b7a2757cbccfb7b286b783dfb","63e96248ab63f6e7a86e31aa3e654ed6de1c3f99e3b668e04800df05874e8b77","80da0f61195385d22b666408f6cccbc261c066d401611a286f07dfddf7764017","06a20cc7d937074863861ea1159ac783ff97b13952b4b5d1811c7d8ab5c94776","ab6de4af0e293eae73b67dad251af097d7bcc0b8b62de84e3674e831514cb056","18cbd79079af97af66c9c07c61b481fce14a4e7282eca078c474b40c970ba1d0","e7b45405689d87e745a217b648d3646fb47a6aaba9c8d775204de90c7ea9ff35","669b754ec246dd7471e19b655b73bda6c2ca5bb7ccb1a4dff44a9ae45b6a716a","bcfaca4a8ff50f57fd36df91fba5d34056883f213baff7192cbfc4d3805d2084","76a564b360b267502219a89514953058494713ee0923a63b2024e542c18b40e5","8f62cbd3afbd6a07bb8c934294b6bfbe437021b89e53a4da7de2648ecfc7af25","a20629551ed7923f35f7556c4c15d0c8b2ebe7afaa68ceaab079a1707ba64be2","d6de66600c97cd499526ddecea6e12166ab1c0e8d9bf36fb2339fd39c8b3372a","8e7a5b8f867b99cc8763c0b024068fb58e09f7da2c4810c12833e1ca6eb11c4f","a8932876de2e3138a5a27f9426b225a4d27f0ba0a1e2764ba20930b4c3faf4b9","df877050b04c29b9f8409aa10278d586825f511f0841d1ec41b6554f8362092b","027d600e00c5f5e1816c207854285d736f2f5fa28276e2829db746d5d6811ba1","5443113a16ef378446e08d6500bb48b35de582426459abdb5c9704f5c7d327d9","0fb581ecb53304a3c95bb930160b4fa610537470cce850371cbaad5a458ca0d9","7da4e290c009d7967343a7f8c3f145a3d2c157c62483362183ba9f637a536489","eb21ddc3a8136a12e69176531197def71dc28ffaf357b74d4bf83407bd845991","914560d0c4c6aa947cfe7489fe970c94ba25383c414bbe0168b44fd20dbf0df4","4fb3405055b54566dea2135845c3a776339e7e170d692401d97fd41ad9a20e5d","8d607832a6ef0eac30657173441367dd76c96bf7800d77193428b922e060c3af","20ff7207f0bb5cdde5fee8e83315ade7e5b8100cfa2087d20d39069a3d7d06f4","7ca4c534eab7cff43d81327e369a23464bc37ef38ce5337ceff24a42c6c84eb2","5252dec18a34078398be4e321dee884dc7f47930e5225262543a799b591b36d2","23caed4dff98bd28157d2b798b43f1dfefe727f18641648c01ce4e0e929a1630","f67e013d5374826596d7c23dbae1cdb14375a27cd72e16c5fb46a4b445059329","ea3401b70e2302683bbf4c18b69ef2292b60f4d8f8e6d920413b81fb7bde0f65","71afe26642c0fb86b9f8b1af4af5deb5181b43b6542a3ff2314871b53d04c749","0d7f01634e6234d84cf0106508efdb8ae00e5ed126eff9606d37b031ac1de654","f8d209086bad78af6bd7fef063c1ed449c815e6f8d36058115f222d9f788b848","3ad003278d569d1953779e2f838f7798f02e793f6a1eceac8e0065f1a202669b","fb2c5eceffcd918dbb86332afa0199f5e7b6cf6ee42809e930a827b28ef25afe","f664aaff6a981eeca68f1ff2d9fd21b6664f47bf45f3ae19874df5a6683a8d8a","ce066f85d73e09e9adbd0049bcf6471c7eefbfc2ec4b5692b5bcef1e36babd2a","09d302513cacfbcc54b67088739bd8ac1c3c57917f83f510b2d1adcb99fd7d2a","3faa54e978b92a6f726440c13fe3ab35993dc74d697c7709681dc1764a25219f","2bd0489e968925eb0c4c0fb12ef090be5165c86bd088e1e803102c38d4a717d8","88924207132b9ba339c1adb1ed3ea07e47b3149ff8a2e21a3ea1f91cee68589d","b8800b93d8ab532f8915be73f8195b9d4ef06376d8a82e8cdc17c400553172d6","d7d469703b78beba76d511957f8c8b534c3bbb02bea7ab4705c65ef573532fb8","74c8c3057669c03264263d911d0f82e876cef50b05be21c54fef23c900de0420","b303eda2ff2d582a9c3c5ecb708fb57355cdc25e8c8197a9f66d4d1bf09fda19","4e5dc89fa22ff43da3dee1db97d5add0591ebaff9e4adef6c8b6f0b41f0f60f0","ec4e82cb42a902fe83dc13153c7a260bee95684541f8d7ef26cb0629a2f4ca31","5f36e24cd92b0ff3e2a243685a8a780c9413941c36739f04b428cc4e15de629d","40a26494e6ab10a91851791169582ab77fed4fbd799518968177e7eefe08c7a9","208e125b45bc561765a74f6f1019d88e44e94678769824cf93726e1bac457961","b3985971de086ef3aa698ef19009a53527b72e65851b782dc188ac341a1e1390","c81d421aabb6113cd98b9d4f11e9a03273b363b841f294b457f37c15d513151d","30063e3a184ff31254bbafa782c78a2d6636943dfe59e1a34f451827fd7a68dc","c05d4cae0bceed02c9d013360d3e65658297acb1b7a90252fe366f2bf4f9ccc9","6f14b92848889abba03a474e0750f7350cc91fc190c107408ca48679a03975ae","a588d0765b1d18bf00a498b75a83e095aef75a9300b6c1e91cbf39e408f2fe2f","8129db80142b929e65ac20b8337ee3d88011edbefb8bd33f335581ade1a5db87","bf14094068461b3c2b210071eb3f4f8f08c488872beea2b7b1cc43734edafbbf","7f6d3ef2715d5ca5404eb107e84e7ec3ee818d9cd1e0a5604e4448a2d73bbf8d","6e46df9fad03883b826f4c82b1d70a653a68769602aee73eef3e00e5b4d89cf3","126e5f9333536df4e732dd64205ab46500d7e6b5b2dd9c7143fb5015e70c8165","a19c55b24a4621ccf4ae14316383569def5162753792c427d424345302b5f399","a9dd05f9fb6799e317c62813e14a65a4f30a0a55d81c4d5e4ac41227c6bff13e","1d2657bba64f3e8725c3b35be632fe0d71a3ce35e78ed52182f58bcd41afd752","d60ce8095de1d45b6d2559aa8cf9dfe16e1b55811f96c28fb7fb4627af57f9b9","2277539cba1b02b37291d16e8aee38fe24ca22844e3044b2adfa1258c42d4037","b12ebd802c1646abf9f0f1b07b05b69201fc663c2c5caefe2784ab96dca753c1","dea0469c0e165652927fbfd91d0b9282d37e9b193c9b7da0e20b48fa5232287a","7449560ad7c67f1fdad19f56d9f51d6b5342f93a48fd04d816165b74d39c8a68","c5c8a2407ac43eb5debe5212b8b5dd5513f4eba2d01f1dacf0124d28b0a05f18","b659ce794cac98acec5e3931b6993772ba47945f7260f4070bfe64b59f40be96","fd74d70a5f477febafc3edf168d8c4e43168b76e0010ffdf5456d263f9f208ce","70f4e50fbf19ba08332601e1f2b948e88e8ef2b456edae48c9aa55e7c296aa97","d0e8e558bb4f592bcc6ffe508ac011cc86c84f26803cff8e923c0ec3165c6e2f","b0a568c21e5e65772db1adf0e519f46251f611377b74ae63c7b715d3cad6a6a1","29f408c8d39eafae2b653ab39c744469930ffe924370aea437842933a7c77c37","e4688174022aacb54290d599672c637c9eb0209fa0bac72390c3cd22ec664ada","02039050b052d7d7f53898ef909a279bb4999dd09022bce4e9fe16f4ad9303ce","e63061c7de68c3ff61633469684dcc89a904dc387ab1f3178ca24777848b213f","9d441989d1cbb52939625e57621620524bf19c3c223f01007941ecd10335d0d1","28e06b63c3f364ef754eedfb0cb0f5127011f3d685e102f07ff5c56aa87d1562","b0ee12813f8d26468aba1fd860db8180eb9e332183ad839dd554a2f19c8983cc","b407b6761debdcd11022f0157535e7bc4977433fc09b6c188cd7c324ded64a5d","4873fe69c2bd7be609e6f3f033db4534b88735ff0769e18cb100cbf24f25e0f1","094815f0e8d3c53c1b983debb0559cb347ad78142419654b6093ce285aa150cd","cc0fca544c9ee63d754899e93ebae35c8ba8304a100126b9c3dadee2c91a2250","74f4099cbce8fa62b18ea314b7b13693753a4d97620ded963fc064b39288acb8","5275faae938513e793a5ea551efa77b43a47bbfac8ed8550753ec217376f24ca","b0fe7c947694eb4f0f736af28a853b0a8dc59074329a3d9a3eb5967fbe83c10d","5d3db7107b3138edf0ddb9851bbba99caeb6b3e32074da4c7b45e751c296183b","b86137c60e0c62f7acfd8f0e761170bc6920c105ef03868c0518be562a5c5908","7ba39fedc2104c6d69f7f583e10ced54256f8d8e42770c754097e75f041cfb7d","69d5afc46850b54ef3388769cd339f8dc88e15cd74a189bf71dac3937b4e8850","a8db70d3ad601f4cf3c779623a3ca232606db0c1d052cf3f1d7a3a695bcbd368","6256ad6e7c41a9f9ecb6349b5d5be72ea2c60ba1c6c6b3954929eb59a6980688","77596a948c8deffc8f059fa0f3c38688f3b05caefa303506074034b5cb1a56ae","81ef0fab583499ba45dab44490620e7b870597d90c5e562ec5a9b38b6bd3fcdf","f2b309d4f1bdf8e9f4fa03bf2183eb1b2f7cb66efb5b16da52e378ce75ac17bb","9cbaf0317ec49acb6c84d142077670a301015979260c4ecded7705fd2141379c","5a49d16b6f7d3ca5c66569784290c0ed7a3d74821095e2ab91e17ea444ac4657","2e5fab5fe6e398cb14f695da07044a65f4e32c8d0fe9b31f5fe52d2cc7656230","92e581f3d154511056bfba03e72ed3cffa92681b4b9bb1953b0b724f67a664bc","c9deb61903fd8318e6845e4e0f03b3bd813cdae1778f8dc9ee0ec05f9ca22094","7bc3152a4c8adf395ad486da44acb6e8c98dedd2becc83810b076114338a5045","30a8688575aeada46c1268d671b2a1de78705ebc0d5343e75b96c25f149caa98","e29b5eb559a057d36584ec480d49711f0c81bed176bb6256df584e800c453760","57e52fd41767e09990c28cd092037736625b3c492c412d7b5c72282a4a97e2be","6d4bce054cce22306edccc85e738a800ea0364a82e85f9bf61156ed03604d24f","6b51c27c5dee2f6d6bca502a669e3941bc220c68cc66f4e45b4134ad6cc29231","b3e5a0fc169f8b45bf7e4f70d473f0f9b8eab10562fff98d33f9bfa6e66508cb","7439ab76b375658a0a5bdb5081f9f22a556e34953916522b18d6d7e01d20a798","6cef1daa7bd7f8b888d15512fe2a698d76f2d3442e8d4cbb2f108624e575759c","f97e467e4afcc9621184bed99bdaa280377267127864b3776055c765cd6dbe9b","48de3719157ebe5730b125e224564d90754707bc2dd19a34fe8f75861dd73ded","14272cf5e560df638409e768e655862b5b9524ecd34a3f6a6ea5f7854af76bb0","6b3e18cfa2c3ee15b6c1d3c1d3aeb00e4cd7a77af28c92ba86fa53413250066c","1ba7e65640b42ceccaabcabe41291822a115a70cdeae5f1a96787f35c3e61239","9da1bb7d7d75a154f8318acb566b708d9995e5a4ef4c4e850c890c838e5197a2","02c6d397e3195ff769db5cc1329a8b74402da41aace067fac8933195812258cf","bf0cb3efde539de4939ebe42263ccb9ba5c3f5e939ea2959f7ffc97971e54373","92177db67a88b744edbc56b299e43861f66c51091414827dcdf339e9c5541920","3332be2c229d8f6d56dc22b9bd0b07f360721df6bda0ddcf232b2360a413b818","168cc8abb6f1f425ed19a7b57a090fe5bf6ac8d5c98f8cfb7b5b3cd72db7653a","4ffff8f24a3e59b2a5817aece6db40c11a948445495b79048537461a8306b2c5","1197a604d0cfb7186469abe5d505d7602132ca7aeb1537a6b3693199808c15e1","e28a8692adefbf2526584f9216a4c10f141be127fdd62eef1d0ee5a9bdbfab66","334f9ae53412059c64018d80ba32e1e83afbd4473398ad3b1aec4459769362f2","ed67ec8ed00124ae16a321148e8de22b39b072a8f24c5deb4985ecd2c036fb2e","d9768f85d47804c972749dfebe23b9ffbb952d982d20021737dbfe286fd74e0a","10f3fbd0884a207e791a00961b96a89518855f242fd37a3a52567d9d01d3c24f","37ffdafaf785f906fcd892f364fda95656d2349d505628c363b304b2afe38679","21fe1e6a43e8ab2d9889fe7f48051386d681fadc7d36fe4125e10c8eb7deb48e","3e3559f9ff59e28ce2a59105d3bd9c2c4b18c931566a365623ab2ff6fe93e9ae","3acabafe6eec986efe95227705c43ea32c28787c9c25fdd79f13c6cf1ad2188e","75462ad980377f947ffb66d62eb78cdc15b1806cb00a7c30ec72f5951cdcf276","8e43855426fea44f3e5dfc8dc444d7e19010a2f9ec37f4c89ad4617401f742f1","ad92ddfbc6fa81b85bdfa71376e61eee16f0c2a24d35eb68562626c28d62931b","97a09540667d7e16502bee30f5d43d797467d07aa0f1dbbbbfda89d7a00df07d","f210d989255927604f6303ad355f7eb2deff241afaff4d6be201534f4404595a","9a885a50833aac4e51357dd2bf6af9bfcc6548f4ba02036d8ace920ae5d91da5","663c4708616caceb9ef4649fcd61f65c1f78e15b82b86849cb8c56fcff62aacb","63373086b50634ce0a05b462af6f5a60dfe9f97b4fc620a698bc61d9c18520f0","33711880e40cb3d480fdcef5f756a3254701cc80a3a22ffd7c60909d0febed1c","9a922ed188aa3276a02d02682910ee16a8f55778479866809bb31fb27ca69685","ddd9c986bdf8544f0820dfd089517ced9e156d4eb04b67133e98915a1587f772","96b8feb4bf414bafaefefcdb8f6800a52d37f8dd119a3e9e10ce7b449e8df2ff","5d86bc849a31c45293d00ba65f1ded267f2190da8cb697857e91a52bf257f61c","a84742a0a3631caffa9fa88f9b0b7a7c734f1eff94cfef2204b28235635d5112","4728fb06e16c721ff1c9aab48c8806717312fe7f8b231d61f7831696fbefcc94","5324462bb92fb6ae96818cdb029f7f52c4f084597684a8cf259a1987d9811a07","3ba07fff151d09b86f61669be488396c262c16c348e18488c5f2330e7d0342b0","b765a494b8d25b5a4eef3f7e19783bc1d947e837107b6e78339b3cf6398fe38e","96b49a9de749afcf92b5bce1d8cc42cfae6816cdf5ea36584fd9256b8b2e5292","357d034190d5cc5c266c75555d5cb3bb292f93cbac32065ece021ddc9d7d91ed","430734a56295be33efe847f698c1b2fb79022b6df80b40026acf82d63b8c86a2","4ba8d26292a2c39b0fec0b17d38a81fbb0927c0a3c91d1875461cfcd1f65e6b9","f62d9734a99f146b6d7b4b8930ea6520540b473d836ddbe867d9621c6b28405c","e918f9225d0673b7d3f4ef93cce434525852a19503a8ac09b0cf4ca8c9c6b2b9","d62ae5c1b6563f1dd3b018fb19db1c8561dcd8f2caeb9eae8a1a0b68a775d46b","698d5aac0597f8fd4ee2fad488d313ce81c5bb5be2646c6a4a10f21eb77b4694","d8c170966417eface5e75a3f06a7c37e6044c837fa19a8b6d3c5ad7394a46ad2","cd65c407470b249f49d6a289eefbb54096196a5b5138ee322a10b9059393349c","7d4c36cfc48eb69f9229759d0af49ac39cbc0b6b3af1fecda3e91b8cfa004d5f","ff7868e2791c5503cdf563fca52aeb98c2225ac1adaf0cbdd332b9ce2ea567c8","cef101ccd2ef143e701ea225e595b781eab40d8592120c31741e009b8475ca2e","7d3d38cf16ff534fd26953fc48838321902a4cf66715a7f150e9955dd35feaf4","60d7b44277bde760af8ca1c3c1042ef476687abfb59daaa5cb65249e320f1a10","62c8913023219d6591aa1b54dc63b30607a10a8e8ea1f7951a1762287d8ede6d","06ee6d29c1bae8f30c9a1d4fed554bba52f2459b5859637c5556438fb9a0b5be","20ee941925aeed2eb219f0acf0f5dea511fa085951a2a993b53dd310f4f1e477","a6ca36cd95d8774c7d3765d425fc8ab89a8c977ac495408d2ad997fbe697bd57","a21b56480277184c87a55dc48b2980cea7b0e01e15037c79e1cc26cdcbdcfe5c","eeb62e40165f251c3abb06c45908c0e38b56fa739faedc27c5e056b2897041f9","564bc1cd1794d1ac395f4a608c33ec7ac9ec4434aa6c6306be64af0222e0deb4","aaca5c9dd91047a4fb74a022bdb37979f22795767b062ba984a7cf4d76e93155","7ce610fb5a07d9ce89e209941fd334767dd70aa2493fcc03f5a9a8dece6c8243","703e1fc97b9007d9343ecfa57e38c2d3a293d0fdfd541e31e1af22f3767330ed",{"version":"ecf78e637f710f340ec08d5d92b3f31b134a46a4fcf2e758690d8c46ce62cba6","affectsGlobalScope":true},{"version":"09f93eb1a5f70b195569f58a3d7852d64e3b293d773cd35f332079efc75ded56","affectsGlobalScope":true},"be31c3317fe12e1f3726e00422ee332bebd6efc0261cac566582802eb8715cbb","7acd44106f898821bcbebff9813000576d338b9461b7f28d12bd74d9e8108a39","7197a8960376471722aaf50a7fe75d44e39e149a701567f66e9af2ed977fab7b","ce0aa16b579972d9da970ae2ee6c2666a0280351c5820124b1ea09aa9381b5aa","9a10439ce132d4f650d17564c408bcad6617081d54cd1c9723a109dad8568ce2","5836d75221710d6b4b9774fd713a8658d051872c9a50dcf7c33e5e643dda6e52","6855a8180fd083a3694aa86201beed68c9ac1eba734559910b4770b16b39b28c","53aaa852d7b78a8c6fbe00ab861c9cfcc518afbeaa50b949982e5d4ad48cbe8c","16aa4b854ab719acd8769fd86f4b005862c7b1d5b9b54089874b412e63fb8a09","ca866a32fafce03faf07289759cf3a45943689875eb43144a8fbe4afe5c33384","62ebca9802d16ac3ee1982871f269da13f65d5d741e52e2310132f277463aead","fe56c408e0e46dfac3e52cf7499d90b4d47ddce5c022368e52f3b36b9eb71dbe","a6970337b6efac95c78f105b7a728f3d248ea09cfc2f24840820fb6bdb2977f0","6bd6f03490f99fab45426282d1bfcc7910d696c6ca55f30bd20dc34546a584fc","4619b6efacef6894c0d59e0aa99c12688c8b1ddf0392f319ba9473e30b36495a","946519c8965f53045b495de62168ad26613fef364918b032fe0e13568130c546","a08d9e1ab62ae0408e71f060bcc5547c311fc8d336e89c365ceb6ae0ca48468a","73852d9fe02ad31a96356a0fdf650a7150d6f2a8bae9da2eb6f624dd3bac93a2","cfc39f883f9c8be3619d312542dd7ba403bd270e5fc92ca900fc99a136701a6e","79df7b5ddf96977f9df768f8022ad69c5eddfbf6837a06b59e66d4b906d302c9","3f12148ba1cd1a366fd92398040ee83b60d41206e95003accb5df721a5dafae9","b2d331d8b0aeb87453995ba703762d2d8d715f7c5a23bff5a9f69f6489fdffc8","94fa872ac9fef40dc317bdae42415da2b3a2069bda4fae381034140369af751f",{"version":"745456954d9f4a5054c30b0da14049719a97ed6d9aa819cdc0d3e68f768b0bcb","affectsGlobalScope":true},{"version":"31b90311d2c4ea7ef010df2f0639b2cdebad655ee4e709218cc4b0269b36fb0c","affectsGlobalScope":true},"c9f092fa413eb709080f1494dcbb4a18757e84eb5d2b8bb0cc84f73d84a70dd7","b6167e00019a8db27428651c58358d8cfac239107f25744e608816ed04361df7","1320ee42b30487cceb6da9f230354fc34826111f76bf12f0ad76c717c12625b0","b6e83cdeca61289e5ffd770e55ed035babdffadd87d1ffa42b03e9fe8411333f",{"version":"84515d6e021bcbce12d5f6e14f577f0004c5ec4d56f8ab21e26c081bbdfe659c","affectsGlobalScope":true},"3a1e165b22a1cb8df82c44c9a09502fd2b33f160cd277de2cd3a055d8e5c6b27","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","9a6d65d77455efaaaeff945bea30c38b8fe0922b807ba45cd23792392f1bfe76","ef6cede608fc396d0ad86d0240c40989a080c6a4c5b2ac5c84072c7e0ff2942e","3169db033165677f1d414baf0c82ba27801089ca1b66d97af464512a47df31b5"],"options":{"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":false,"inlineSourceMap":true,"inlineSources":true,"jsx":2,"module":1,"noFallthroughCasesInSwitch":true,"noImplicitAny":false,"noImplicitReturns":false,"noImplicitThis":true,"noUnusedLocals":false,"noUnusedParameters":false,"outDir":"./","removeComments":true,"skipLibCheck":true,"strictNullChecks":false,"target":5},"fileIdsList":[[136,137,138,151,444,455],[454,455,456,461],[156,232,260,271,445,455],[151,156,232,376,445,454,455,463,477],[156,205,210,232,454,455,457,458,459],[156,205,232,260,262,265,271],[136,156,232,272,273],[136,156,210,273,445,446,448,455],[156,232,272],[156,270],[151,156,261],[136,156,205,232,272,273,274,445],[156,232],[136,156,232,445,454,455,466],[136,156,275,458],[136,151,376,445,454,455,463],[41,50,241,261,454],[41,50,136,151,241,261,444,454,456,469],[136,455],[136,151,261,376,445,449,451,452,454,455],[136,151,376,455],[136,205,376,442,455],[136,151,205,273,279,280,281,282,376,442,443,444,454,455],[136,151,156,158,205,376,445,448,451,452,453,454,455,456,461,462,464,465,468,469,470,472,474,479,480,485,486,494],[136,277],[77,118,127,136],[376],[136,156,454,455,473],[136,156,454,455,478],[136,156,454,455,460],[136,156,454,455,467],[280,445],[136,445,451,454,456],[136,444,445,447,448,455,461,468],[136,275,277,279,454],[278,490],[487,488,489],[136,454,455,480],[156,232,445,454,455],[136,156,445,448,454,455,472,487,488],[491,493],[151,277,454,455,457],[492],[136,151,158,205,241,445,448,453,455,456],[447],[151,205,211,272],[136,205,273,445,455],[136,205,275,278,445,454,455],[49,50,136,151,156,157,158,376,444,454],[63,136,151,158,282,376,442,450,454,455,463,480,481,484],[136,282,376,442,443,444,455],[32,41,136,158,376,443,450,455],[482,483],[403,404],[415],[414,415,416,417,418,419,420,421,422,423,424,425,426],[383],[383,403,404,415],[383,415],[406,407,408,409,410,411],[383,403,404,406,407,408,410],[383,405,406],[402,403,404],[403,404,411],[383,409],[432],[383,442],[403,404,412,442],[384,413,431,432,436,437,440,441],[428,429,430],[383,402,403,404,428,442],[402,403,429,442],[383,427,429],[403,404,413,431,432,433,436,437,440],[434,435],[402,403,431,434,442],[383,402,403,404,431,442],[427,432],[438,439],[402,403,438,442],[383,402,403,404,442],[233,234,235],[234,235,236,237,240],[237,238,239],[233,234],[233],[233,234,236],[234,238],[233,234,235,236,237],[266],[268,269],[156,266],[156,266,267],[156],[206,207,208,209],[156,206],[156,241,242],[156,241,245],[251,252,253,254,255,256,257,258],[156,241],[242,243,246,247,248,249,250,259],[263],[156,263,264],[241,353,358,371],[233,283],[233,283,284,285,286,287],[233,238,241,376],[289,353],[233,283,354,355,359,360],[233,354],[233,353,354,358],[233,288,361,362,363,364,365,366,367,368,369,370],[233,241],[32,74,233,283,289,353,362],[373,374],[233,241,283,289,361,371,372,375],[386],[385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401],[377,378,379,380,381,382],[402,403],[100,136,471],[136,276],[79],[78],[136],[83],[81,136],[41,82,136],[81,82],[92],[92,136],[41,85,86,87,88,89,90,91,92,136],[74,75,76,77,80,84,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135],[32,136],[136,276,471],[100,136,276],[471],[74],[502],[156,500],[504],[139,141,142,143,144,145,146,147,148,149,150,151],[139,140,142,143,144,145,146,147,148,149,150,151],[140,141,142,143,144,145,146,147,148,149,150,151],[139,140,141,143,144,145,146,147,148,149,150,151],[139,140,141,142,144,145,146,147,148,149,150,151],[139,140,141,142,143,145,146,147,148,149,150,151],[139,140,141,142,143,144,146,147,148,149,150,151],[139,140,141,142,143,144,145,147,148,149,150,151],[139,140,141,142,143,144,145,146,148,149,150,151],[139,140,141,142,143,144,145,146,147,149,150,151],[139,140,141,142,143,144,145,146,147,148,150,151],[139,140,141,142,143,144,145,146,147,148,149,151],[139,140,141,142,143,144,145,146,147,148,149,150],[71,72],[40,41,48,57],[32,40,48],[64],[36,41,49],[57],[38,40,48],[40],[40,42,57,63],[41],[48,57,63],[40,41,43,48,57,60,63],[43,60,63],[73],[63],[38,40,57],[30],[62],[55,64,66],[48],[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],[54],[40,42,57,63,66],[476],[153,154,155,475],[152,153,154,155],[153,156,244],[40,43,45,48,57,60,63,68,74],[41,74],[212,213,214,215,216,217,218,219,220,221],[222,224,226,227,229,230,231],[223,227,228],[223],[156,225],[225],[204],[164,204],[159,204],[159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203],[356,357],[290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,309,310,312,314,315,316,317,318,319,320,321,322,323,324,325,326,327,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352],[290,292,297],[292,329],[291,296],[290,291,292,293,294,295],[291,292,293,296,329],[290,292,296,297],[356],[291,292,296],[296],[296,336],[290,291,292,296],[291,292,293,296],[291,292],[290,291,292,296,297],[292,328],[290,291,292,297],[353],[290,291,305],[290,291,304],[313],[306,307],[308],[306],[290,291,305,306],[290,291,304,305,307],[311],[290,291,306,307],[290,291,292,293,296],[290,291],[291],[290,296]],"referencedMap":[[456,1],[462,2],[473,3],[478,4],[460,5],[272,6],[458,7],[447,8],[459,9],[271,10],[262,11],[446,12],[274,13],[467,14],[466,15],[464,16],[465,17],[470,18],[282,19],[453,20],[452,21],[443,22],[445,23],[495,24],[497,25],[496,26],[499,27],[474,28],[479,29],[461,30],[468,31],[281,32],[486,33],[469,34],[278,35],[491,36],[490,37],[488,38],[487,39],[489,40],[494,41],[492,42],[493,43],[454,44],[448,45],[273,46],[275,47],[279,48],[455,49],[485,50],[480,51],[451,52],[484,53],[414,54],[416,55],[427,56],[418,57],[421,58],[422,59],[425,57],[412,60],[411,61],[407,62],[409,63],[406,64],[408,64],[410,65],[433,66],[384,67],[413,68],[442,69],[431,70],[429,71],[430,72],[428,73],[441,74],[436,75],[435,76],[434,77],[437,78],[440,79],[439,80],[438,81],[236,82],[241,83],[240,84],[235,85],[234,86],[237,87],[239,88],[238,89],[267,90],[270,91],[269,92],[268,93],[206,94],[210,95],[207,96],[209,96],[208,96],[247,97],[248,97],[246,98],[251,94],[257,94],[259,99],[258,94],[252,94],[256,94],[255,94],[254,94],[253,94],[243,100],[250,94],[242,100],[249,100],[260,101],[264,102],[265,103],[372,104],[369,86],[284,105],[285,86],[286,86],[288,106],[287,107],[370,86],[354,108],[360,86],[361,109],[355,110],[359,111],[371,112],[362,113],[363,114],[364,105],[365,86],[366,86],[367,86],[368,86],[375,115],[376,116],[387,117],[388,117],[389,117],[390,117],[391,117],[402,118],[392,117],[393,117],[394,117],[395,117],[396,117],[397,117],[398,117],[400,117],[401,117],[383,119],[404,120],[276,121],[277,122],[80,123],[79,124],[78,125],[84,126],[82,127],[81,128],[83,129],[93,130],[86,131],[85,131],[87,130],[89,131],[88,131],[91,130],[92,132],[136,133],[75,125],[94,125],[95,134],[98,125],[100,135],[99,125],[101,125],[102,125],[103,125],[104,125],[105,125],[107,125],[108,125],[109,125],[110,125],[111,125],[112,125],[113,125],[115,125],[114,125],[116,125],[118,125],[117,125],[119,125],[120,125],[121,125],[122,125],[124,125],[125,125],[126,125],[128,125],[76,125],[129,125],[127,125],[130,125],[132,125],[133,125],[135,125],[134,125],[471,136],[472,137],[500,138],[503,139],[502,140],[505,141],[244,94],[140,142],[141,143],[139,144],[142,145],[143,146],[144,147],[145,148],[146,149],[147,150],[148,151],[149,152],[150,153],[151,154],[509,141],[73,155],[32,156],[33,157],[34,158],[35,159],[36,160],[37,161],[39,162],[40,162],[41,163],[42,164],[43,165],[44,166],[45,167],[74,168],[46,162],[47,169],[48,170],[51,171],[52,172],[55,162],[56,173],[57,162],[60,174],[71,175],[62,174],[63,176],[65,160],[67,177],[68,160],[157,94],[477,178],[476,179],[510,94],[156,180],[245,181],[481,182],[261,183],[449,27],[222,184],[214,94],[216,94],[230,94],[232,185],[229,186],[224,187],[231,94],[226,188],[223,94],[228,189],[227,187],[176,190],[175,190],[177,190],[178,190],[166,190],[181,191],[184,190],[185,190],[188,190],[165,190],[164,190],[189,190],[193,190],[167,190],[160,192],[169,190],[170,190],[171,190],[172,190],[173,190],[174,190],[204,193],[205,190],[195,190],[196,190],[197,190],[198,190],[200,190],[199,190],[168,190],[201,190],[159,190],[266,94],[358,194],[353,195],[303,196],[301,196],[328,197],[316,198],[296,199],[326,198],[327,198],[330,200],[331,198],[298,201],[332,198],[357,202],[356,203],[333,198],[334,198],[335,198],[336,204],[337,205],[338,198],[294,198],[339,198],[340,198],[341,204],[342,198],[343,198],[344,206],[345,198],[346,200],[347,198],[295,198],[348,198],[349,198],[350,207],[293,208],[299,209],[329,210],[302,211],[351,212],[304,213],[305,214],[314,215],[313,216],[309,217],[308,216],[310,218],[307,219],[306,220],[312,221],[311,218],[315,222],[297,223],[292,224],[290,225],[291,226],[320,204],[317,225]],"exportedModulesMap":[[456,1],[462,2],[473,3],[478,4],[460,5],[272,6],[458,7],[447,8],[459,9],[271,10],[262,11],[446,12],[274,13],[467,14],[466,15],[464,16],[465,17],[470,18],[282,19],[453,20],[452,21],[443,22],[445,23],[495,24],[497,25],[496,26],[499,27],[474,28],[479,29],[461,30],[468,31],[281,32],[486,33],[469,34],[278,35],[491,36],[490,37],[488,38],[487,39],[489,40],[494,41],[492,42],[493,43],[454,44],[448,45],[273,46],[275,47],[279,48],[455,49],[485,50],[480,51],[451,52],[484,53],[414,54],[416,55],[427,56],[418,57],[421,58],[422,59],[425,57],[412,60],[411,61],[407,62],[409,63],[406,64],[408,64],[410,65],[433,66],[384,67],[413,68],[442,69],[431,70],[429,71],[430,72],[428,73],[441,74],[436,75],[435,76],[434,77],[437,78],[440,79],[439,80],[438,81],[236,82],[241,83],[240,84],[235,85],[234,86],[237,87],[239,88],[238,89],[267,90],[270,91],[269,92],[268,93],[206,94],[210,95],[207,96],[209,96],[208,96],[247,97],[248,97],[246,98],[251,94],[257,94],[259,99],[258,94],[252,94],[256,94],[255,94],[254,94],[253,94],[243,100],[250,94],[242,100],[249,100],[260,101],[264,102],[265,103],[372,104],[369,86],[284,105],[285,86],[286,86],[288,106],[287,107],[370,86],[354,108],[360,86],[361,109],[355,110],[359,111],[371,112],[362,113],[363,114],[364,105],[365,86],[366,86],[367,86],[368,86],[375,115],[376,116],[387,117],[388,117],[389,117],[390,117],[391,117],[402,118],[392,117],[393,117],[394,117],[395,117],[396,117],[397,117],[398,117],[400,117],[401,117],[383,119],[404,120],[276,121],[277,122],[80,123],[79,124],[78,125],[84,126],[82,127],[81,128],[83,129],[93,130],[86,131],[85,131],[87,130],[89,131],[88,131],[91,130],[92,132],[136,133],[75,125],[94,125],[95,134],[98,125],[100,135],[99,125],[101,125],[102,125],[103,125],[104,125],[105,125],[107,125],[108,125],[109,125],[110,125],[111,125],[112,125],[113,125],[115,125],[114,125],[116,125],[118,125],[117,125],[119,125],[120,125],[121,125],[122,125],[124,125],[125,125],[126,125],[128,125],[76,125],[129,125],[127,125],[130,125],[132,125],[133,125],[135,125],[134,125],[471,136],[472,137],[500,138],[503,139],[502,140],[505,141],[244,94],[140,142],[141,143],[139,144],[142,145],[143,146],[144,147],[145,148],[146,149],[147,150],[148,151],[149,152],[150,153],[151,154],[509,141],[73,155],[32,156],[33,157],[34,158],[35,159],[36,160],[37,161],[39,162],[40,162],[41,163],[42,164],[43,165],[44,166],[45,167],[74,168],[46,162],[47,169],[48,170],[51,171],[52,172],[55,162],[56,173],[57,162],[60,174],[71,175],[62,174],[63,176],[65,160],[67,177],[68,160],[157,94],[477,178],[476,179],[510,94],[156,180],[245,181],[481,182],[261,183],[449,27],[222,184],[214,94],[216,94],[230,94],[232,185],[229,186],[224,187],[231,94],[226,188],[223,94],[228,189],[227,187],[176,190],[175,190],[177,190],[178,190],[166,190],[181,191],[184,190],[185,190],[188,190],[165,190],[164,190],[189,190],[193,190],[167,190],[160,192],[169,190],[170,190],[171,190],[172,190],[173,190],[174,190],[204,193],[205,190],[195,190],[196,190],[197,190],[198,190],[200,190],[199,190],[168,190],[201,190],[159,190],[266,94],[358,194],[353,195],[303,196],[301,196],[328,197],[316,198],[296,199],[326,198],[327,198],[330,200],[331,198],[298,201],[332,198],[357,202],[356,203],[333,198],[334,198],[335,198],[336,204],[337,205],[338,198],[294,198],[339,198],[340,198],[341,204],[342,198],[343,198],[344,206],[345,198],[346,200],[347,198],[295,198],[348,198],[349,198],[350,207],[293,208],[299,209],[329,210],[302,211],[351,212],[304,213],[305,214],[314,215],[313,216],[309,217],[308,216],[310,218],[307,219],[306,220],[312,221],[311,218],[315,222],[297,223],[292,224],[290,225],[291,226],[320,204],[317,225]],"semanticDiagnosticsPerFile":[[456,[{"file":"../lib/code-manager.ts","start":2921,"length":13,"code":2339,"category":1,"messageText":"Property 'getScopeChain' does not exist on type 'ScopeDescriptor'."},{"file":"../lib/code-manager.ts","start":4756,"length":15,"code":2339,"category":1,"messageText":"Property 'tokenizedBuffer' does not exist on type 'TextEditor'."},{"file":"../lib/code-manager.ts","start":8834,"length":9,"code":2339,"category":1,"messageText":"Property 'getHeight' does not exist on type 'TextEditorElement'."}]],462,473,[478,[{"file":"../lib/components/kernel-monitor.tsx","start":5678,"length":11,"code":2339,"category":1,"messageText":"Property 'displayName' does not exist on type '({ store }: { store: Store; }) => Element'."}]],460,[272,[{"file":"../lib/components/result-view/display.tsx","start":531,"length":5,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":545,"length":5,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":559,"length":5,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":573,"length":5,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":602,"length":9,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":620,"length":9,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":638,"length":9,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":656,"length":9,"code":2741,"category":1,"messageText":"Property 'data' is missing in type '{}' but required in type 'Pick'.","relatedInformation":[{"file":"../node_modules/@nteract/transform-vega/lib/index.d.ts","start":186,"length":4,"messageText":"'data' is declared here.","category":3,"code":2728}]},{"file":"../lib/components/result-view/display.tsx","start":1538,"length":8,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; expanded: true; }' is not assignable to type 'IntrinsicAttributes & Pick, \"children\"> & Partial, \"output\" | \"output_type\">> & Partial<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & Pick, \"children\"> & Partial, \"output\" | \"output_type\">> & Partial<...>'.","category":1,"code":2339}]}},{"file":"../lib/components/result-view/display.tsx","start":1606,"length":8,"code":2322,"category":1,"messageText":{"messageText":"Type '{ children: Element; expanded: true; }' is not assignable to type 'IntrinsicAttributes & Pick & Partial> & Partial>'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & Pick & Partial> & Partial>'.","category":1,"code":2339}]}},{"file":"../lib/components/result-view/display.tsx","start":1671,"length":8,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(props: Props | Readonly): StreamText', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ expanded: true; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes & Pick & Readonly<{ children?: ReactNode; }>, \"children\"> & Partial<...> & Partial<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes & Pick & Readonly<{ children?: ReactNode; }>, \"children\"> & Partial<...> & Partial<...>'.","category":1,"code":2339}]}]},{"messageText":"Overload 2 of 2, '(props: Props, context: any): StreamText', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ expanded: true; }' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes & Pick & Readonly<{ children?: ReactNode; }>, \"children\"> & Partial<...> & Partial<...>'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes & Pick & Readonly<{ children?: ReactNode; }>, \"children\"> & Partial<...> & Partial<...>'.","category":1,"code":2339}]}]}]},"relatedInformation":[]},{"file":"../lib/components/result-view/display.tsx","start":1710,"length":8,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"messageText":"Overload 1 of 2, '(props: Omit, never> & Partial, never>>, \"theme\"> & { theme?: any; } & { as?: never; forwardedAs?: never; }): ReactElement<...>', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ expanded: true; }' is not assignable to type 'IntrinsicAttributes & Omit, never> & Partial, never>>, \"theme\"> & { ...; } & { ...; }'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & Omit, never> & Partial, never>>, \"theme\"> & { ...; } & { ...; }'.","category":1,"code":2339}]}]},{"messageText":"Overload 2 of 2, '(props: StyledComponentPropsWithAs<(props: Partial) => Element, any, {}, never, (props: Partial) => Element>): ReactElement<...>', gave the following error.","category":1,"code":2772,"next":[{"messageText":"Type '{ expanded: true; }' is not assignable to type 'IntrinsicAttributes & Omit, never> & Partial, never>>, \"theme\"> & { ...; } & { ...; }'.","category":1,"code":2322,"next":[{"messageText":"Property 'expanded' does not exist on type 'IntrinsicAttributes & Omit, never> & Partial, never>>, \"theme\"> & { ...; } & { ...; }'.","category":1,"code":2339}]}]}]},"relatedInformation":[]}]],458,[447,[{"file":"../lib/components/result-view/index.tsx","start":1329,"length":15,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'number[]' is not assignable to parameter of type 'PointLike'.","category":1,"code":2345,"next":[{"messageText":"Type 'number[]' is missing the following properties from type 'PointLike': row, column","category":1,"code":2739}]}},{"file":"../lib/components/result-view/index.tsx","start":1445,"length":8,"code":2339,"category":1,"messageText":"Property 'getWidth' does not exist on type 'TextEditorElement'."},{"file":"../lib/components/result-view/index.tsx","start":1463,"length":39,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ lineLength: number; lineHeight: number; editorWidth: any; charWidth: any; }' is not assignable to parameter of type '{ lineHeight?: number; lineLength?: number; editorWidth?: number; }'.","category":1,"code":2345,"next":[{"messageText":"Object literal may only specify known properties, and 'charWidth' does not exist in type '{ lineHeight?: number; lineLength?: number; editorWidth?: number; }'.","category":1,"code":2353}]}},{"file":"../lib/components/result-view/index.tsx","start":1481,"length":19,"code":2339,"category":1,"messageText":"Property 'getDefaultCharWidth' does not exist on type 'TextEditor'."},{"file":"../lib/components/result-view/index.tsx","start":1736,"length":2,"code":2339,"category":1,"messageText":"Property 'id' does not exist on type 'DisplayMarker'."},{"file":"../lib/components/result-view/index.tsx","start":2026,"length":8,"code":2339,"category":1,"messageText":"Property 'getWidth' does not exist on type 'TextEditorElement'."},{"file":"../lib/components/result-view/index.tsx","start":2048,"length":39,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ lineLength: number; lineHeight: number; editorWidth: any; charWidth: any; }' is not assignable to parameter of type '{ lineHeight?: number; lineLength?: number; editorWidth?: number; }'.","category":1,"code":2345,"next":[{"messageText":"Object literal may only specify known properties, and 'charWidth' does not exist in type '{ lineHeight?: number; lineLength?: number; editorWidth?: number; }'.","category":1,"code":2353}]}},{"file":"../lib/components/result-view/index.tsx","start":2066,"length":19,"code":2339,"category":1,"messageText":"Property 'getDefaultCharWidth' does not exist on type 'TextEditor'."}]],459,271,[262,[{"file":"../lib/components/result-view/plotly.tsx","start":1901,"length":230,"messageText":"Expected 3 arguments, but got 4.","category":1,"code":2554},{"file":"../lib/components/result-view/plotly.tsx","start":2055,"length":5,"code":2339,"category":1,"messageText":"Property 'Icons' does not exist on type '{ newPlot: (div: void | HTMLDivElement, data: Record, layout: FigureLayout) => void; redraw: (div?: PlotlyHTMLElement) => void; toImage: (gd: any) => Promise<...>; }'."},{"file":"../lib/components/result-view/plotly.tsx","start":2912,"length":25,"code":2739,"category":1,"messageText":"Type 'Record' is missing the following properties from type 'Figure': data, layout"}]],446,274,467,466,158,[464,[{"file":"../lib/existing-kernel-picker.ts","start":2384,"length":17,"code":2345,"category":1,"messageText":{"messageText":"Argument of type 'ISpecModel | KernelspecMetadata' is not assignable to parameter of type 'KernelspecMetadata'.","category":1,"code":2345,"next":[{"messageText":"Type 'ISpecModel' is not assignable to type 'KernelspecMetadata'.","category":1,"code":2322,"next":[{"messageText":"Types of property 'env' are incompatible.","category":1,"code":2326,"next":[{"messageText":"Type 'JSONObject' is not assignable to type '{ [variable: string]: string; }'.","category":1,"code":2322,"next":[{"messageText":"Index signatures are incompatible.","category":1,"code":2330,"next":[{"messageText":"Type 'JSONValue' is not assignable to type 'string'.","category":1,"code":2322,"next":[{"messageText":"Type 'number' is not assignable to type 'string'.","category":1,"code":2322}]}]}]}]}]}]}}]],465,444,[470,[{"file":"../lib/import-notebook.ts","start":358,"length":4,"messageText":"Module '\"@nteract/commutable\"' has no exported member 'Cell'.","category":1,"code":2305},{"file":"../lib/import-notebook.ts","start":4949,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'toJS' does not exist on type 'object | JSONObject'.","category":1,"code":2339,"next":[{"messageText":"Property 'toJS' does not exist on type 'object'.","category":1,"code":2339}]}},{"file":"../lib/import-notebook.ts","start":4980,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'toJS' does not exist on type 'object | JSONObject'.","category":1,"code":2339,"next":[{"messageText":"Property 'toJS' does not exist on type 'object'.","category":1,"code":2339}]}},{"file":"../lib/import-notebook.ts","start":7591,"length":9,"code":2339,"category":1,"messageText":"Property 'fileTypes' does not exist on type 'Grammar'."}]],282,453,452,443,445,[495,[{"file":"../lib/main.ts","start":7466,"length":11,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '(uri: string) => Promise' is not assignable to parameter of type '(uri: string, options?: WorkspaceOpenOptions) => ViewModel'.","category":1,"code":2345,"next":[{"messageText":"Property 'getTitle' is missing in type 'Promise' but required in type 'ViewModel'.","category":1,"code":2741}]},"relatedInformation":[{"file":"../node_modules/@types/atom/src/view-registry.d.ts","start":1216,"length":8,"messageText":"'getTitle' is declared here.","category":3,"code":2728}]}]],497,496,498,499,474,479,461,468,[281,[{"file":"../lib/plugin-api/hydrogen-kernel.ts","start":2196,"length":14,"code":2339,"category":1,"messageText":"Property 'connectionFile' does not exist on type 'KernelTransport'."},{"file":"../lib/plugin-api/hydrogen-kernel.ts","start":2242,"length":14,"code":2339,"category":1,"messageText":"Property 'connectionFile' does not exist on type 'KernelTransport'."}]],486,280,469,278,491,490,488,487,489,494,[492,[{"file":"../lib/services/provided/autocomplete.ts","start":5832,"length":28,"code":2322,"category":1,"messageText":{"messageText":"Type '{ enabled: any; selector: string; disableForSelector: string; inclusionPriority: number; suggestionPriority: any; excludeLowerPriority: boolean; suggestionDetailsEnabled: any; getSuggestions({ editor, bufferPosition, prefix }: { ...; }): Promise<...>; getSuggestionDetailsOnSelect({ text, replacementPrefix, replacedT...' is not assignable to type 'AutocompleteProvider'.","category":1,"code":2322,"next":[{"messageText":"The types returned by 'getSuggestions(...)' are incompatible between these types.","category":1,"code":2201,"next":[{"messageText":"Type 'Promise' is not assignable to type 'Suggestions | Promise'.","category":1,"code":2322,"next":[{"messageText":"Type 'Promise' is not assignable to type 'Promise'.","category":1,"code":2322,"next":[{"messageText":"Type '{}' is missing the following properties from type 'AnySuggestion[]': length, pop, push, concat, and 26 more.","category":1,"code":2740}]}]}]}]}}]],493,[454,[{"file":"../lib/store/index.ts","start":2251,"length":32,"code":4104,"category":1,"messageText":"The type 'readonly PropertyKey[]' is 'readonly' and cannot be assigned to the mutable type 'string[]'."},{"file":"../lib/store/index.ts","start":5431,"length":3,"code":2339,"category":1,"messageText":{"messageText":"Property 'set' does not exist on type 'Kernel | KernelMap'.","category":1,"code":2339,"next":[{"messageText":"Property 'set' does not exist on type 'Kernel'.","category":1,"code":2339}]}},{"file":"../lib/store/index.ts","start":9140,"length":14,"code":2339,"category":1,"messageText":"Property 'hydrogen_store' does not exist on type 'Window & typeof globalThis'."}]],[448,[{"file":"../lib/store/markers.ts","start":639,"length":2,"code":2339,"category":1,"messageText":"Property 'id' does not exist on type 'DisplayMarker'."}]],273,275,279,[455,[{"file":"../lib/utils.tsx","start":1840,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'show' does not exist on type 'Dock | WorkspaceCenter'.","category":1,"code":2339,"next":[{"messageText":"Property 'show' does not exist on type 'WorkspaceCenter'.","category":1,"code":2339}]}},{"file":"../lib/utils.tsx","start":2247,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'show' does not exist on type 'Dock | WorkspaceCenter'.","category":1,"code":2339,"next":[{"messageText":"Property 'show' does not exist on type 'WorkspaceCenter'.","category":1,"code":2339}]}},{"file":"../lib/utils.tsx","start":6741,"length":12,"code":2339,"category":1,"messageText":"Property 'languageMode' does not exist on type 'TextEditor'."},{"file":"../lib/utils.tsx","start":6845,"length":15,"code":2339,"category":1,"messageText":"Property 'tokenizedBuffer' does not exist on type 'TextEditor'."}]],[485,[{"file":"../lib/ws-kernel-picker.ts","start":5496,"length":25,"code":2352,"category":1,"messageText":"Conversion of type 'import(\"C:/Users/aminy/Documents/GitHub/JavaScript/@nteract/hydrogen/node_modules/@aminya/xmlhttprequest/lib/XMLHttpRequest\").XMLHttpRequest' to type 'XMLHttpRequest' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."},{"file":"../lib/ws-kernel-picker.ts","start":7771,"length":42,"code":2352,"category":1,"messageText":"Conversion of type 'import(\"C:/Users/aminy/Documents/GitHub/JavaScript/@nteract/hydrogen/node_modules/@aminya/xmlhttprequest/lib/XMLHttpRequest\").XMLHttpRequest' to type 'XMLHttpRequest' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."},{"file":"../lib/ws-kernel-picker.ts","start":7771,"length":42,"code":2352,"category":1,"messageText":{"messageText":"Conversion of type 'import(\"C:/Users/aminy/Documents/GitHub/JavaScript/@nteract/hydrogen/node_modules/@aminya/xmlhttprequest/lib/XMLHttpRequest\").XMLHttpRequest' to type 'XMLHttpRequest' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.","category":1,"code":2352,"next":[{"messageText":"Type 'XMLHttpRequest' is missing the following properties from type 'XMLHttpRequest': upload, overrideMimeType, onabort, onerror, and 5 more.","category":1,"code":2740}]}},{"file":"../lib/ws-kernel-picker.ts","start":7988,"length":14,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ baseUrl?: string; wsUrl?: string; withCredentials?: boolean; user?: string; password?: string; timeout?: number; token?: string; requestHeaders?: { readonly [key: string]: string; }; xhrFactory: (() => XMLHttpRequest) | (() => XMLHttpRequest); wsFactory: ((url: string, protocols?: string | string[]) => WebSocket) ...' is not assignable to parameter of type 'Partial'.","category":1,"code":2345,"next":[{"messageText":"Types of property 'wsFactory' are incompatible.","category":1,"code":2326,"next":[{"messageText":"Type '((url: string, protocols?: string | string[]) => WebSocket) | ((url: any, protocol: any) => WebSocket)' is not assignable to type '(url: string, protocols?: string | string[]) => WebSocket'.","category":1,"code":2322,"next":[{"messageText":"Type '(url: any, protocol: any) => WebSocket' is not assignable to type '(url: string, protocols?: string | string[]) => WebSocket'.","category":1,"code":2322,"next":[{"messageText":"Property 'dispatchEvent' is missing in type 'import(\"C:/Users/aminy/Documents/GitHub/JavaScript/@nteract/hydrogen/node_modules/@types/ws/index\")' but required in type 'WebSocket'.","category":1,"code":2741}]}]}]}]},"relatedInformation":[{"file":"../node_modules/typescript/lib/lib.dom.d.ts","start":186005,"length":37,"messageText":"'dispatchEvent' is declared here.","category":3,"code":2728}]},{"file":"../lib/ws-kernel-picker.ts","start":8929,"length":14,"code":2345,"category":1,"messageText":"Argument of type '{ baseUrl?: string; wsUrl?: string; withCredentials?: boolean; user?: string; password?: string; timeout?: number; token?: string; requestHeaders?: { readonly [key: string]: string; }; xhrFactory: (() => XMLHttpRequest) | (() => XMLHttpRequest); wsFactory: ((url: string, protocols?: string | string[]) => WebSocket) ...' is not assignable to parameter of type 'Partial'."},{"file":"../lib/ws-kernel-picker.ts","start":9934,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'path' does not exist on type 'JSONValue'.","category":1,"code":2339,"next":[{"messageText":"Property 'path' does not exist on type 'string'.","category":1,"code":2339}]}},{"file":"../lib/ws-kernel-picker.ts","start":9985,"length":4,"code":2339,"category":1,"messageText":{"messageText":"Property 'path' does not exist on type 'JSONValue'.","category":1,"code":2339,"next":[{"messageText":"Property 'path' does not exist on type 'string'.","category":1,"code":2339}]}},{"file":"../lib/ws-kernel-picker.ts","start":10331,"length":11,"code":2345,"category":1,"messageText":{"messageText":"Argument of type '{ name: string; model: null; options: ServerConnection.ISettings; kernelSpecs: Kernel.ISpecModel[]; }' is not assignable to parameter of type '{ name: string; model: Session.IModel; options: ServerConnection.ISettings; }'.","category":1,"code":2345,"next":[{"messageText":"Object literal may only specify known properties, and 'kernelSpecs' does not exist in type '{ name: string; model: IModel; options: ISettings; }'.","category":1,"code":2353}]}}]],[480,[{"file":"../lib/ws-kernel.ts","start":1122,"length":8,"code":2339,"category":1,"messageText":"Property 'shutdown' does not exist on type 'IKernelConnection'."}]],451,483,484,482,414,416,427,415,417,418,419,420,421,422,423,424,425,426,412,411,407,409,406,408,410,433,384,413,442,431,429,430,428,441,432,436,435,434,437,440,439,438,236,241,240,235,234,237,239,238,267,270,269,268,206,210,207,209,208,247,248,246,251,257,259,258,252,256,255,254,253,243,250,242,249,260,264,265,263,372,369,284,285,286,288,287,370,354,360,361,355,359,371,362,363,364,365,366,367,368,373,375,374,289,376,283,385,387,388,389,390,391,402,386,392,393,394,395,396,397,398,399,400,401,383,377,378,379,380,381,382,404,405,403,276,277,77,80,79,78,84,82,81,83,93,86,85,87,89,88,90,91,92,136,75,94,95,96,97,98,100,99,101,102,103,104,105,106,107,108,109,110,111,112,113,115,114,116,118,117,119,120,121,122,123,124,125,126,128,76,129,127,130,132,131,133,135,134,471,472,500,501,503,502,505,244,506,507,508,140,141,139,142,143,144,145,146,147,148,149,150,151,509,72,30,73,31,32,33,34,35,36,37,38,39,40,41,42,29,69,43,44,45,74,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,71,62,63,64,65,66,70,67,68,154,157,477,475,476,510,152,156,511,155,245,504,450,481,457,153,261,211,137,233,449,212,222,214,221,216,213,218,219,215,220,217,230,232,229,224,231,226,223,228,225,227,176,175,177,178,166,179,180,181,182,183,184,185,186,187,188,165,164,189,190,191,192,193,167,160,169,170,171,172,173,174,204,205,194,195,196,163,197,198,200,199,168,201,161,162,202,203,159,266,358,353,303,301,352,328,316,296,326,327,330,331,298,332,357,356,333,334,335,336,337,338,294,339,340,341,342,343,344,345,346,347,295,348,349,350,293,299,329,302,351,304,305,314,313,309,308,310,307,306,312,311,315,297,292,290,300,291,321,322,319,320,318,323,317,325,324,138,463,6,8,7,2,9,10,11,12,13,14,15,16,3,4,20,17,18,19,21,22,23,5,24,25,26,27,1,28]},"version":"4.3.2"} \ No newline at end of file diff --git a/dist/zmq-kernel.js b/dist/zmq-kernel.js index 4dfa7954f..fc66627e1 100644 --- a/dist/zmq-kernel.js +++ b/dist/zmq-kernel.js @@ -321,4 +321,4 @@ function _createMessage(msgType, msgId = uuid_1.v4()) { }; return message; } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem1xLWtlcm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi96bXEta2VybmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsNENBQW9CO0FBQ3BCLHFDQUE4QztBQUM5QywrQkFBMEI7QUFDMUIsNkNBQXVFO0FBQ3ZFLHNEQUE4QjtBQUM5QiwwRUFBaUQ7QUFFakQsbUNBQWtEO0FBZWxELE1BQXFCLFNBQVUsU0FBUSwwQkFBZTtJQVVwRCxZQUNFLFVBQThCLEVBQzlCLE9BQWdCLEVBQ2hCLE9BQTRCLEVBQzVCLFNBQTREO1FBRTVELEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFmN0IsdUJBQWtCLEdBQXdCLEVBQUUsQ0FBQztRQWdCM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRTdCLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDdEMsd0JBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNsQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBRTNCLElBQUksU0FBUyxFQUFFO29CQUNiLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDakI7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUF1RDtRQUM3RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFlBQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxZQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksWUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0MsTUFBTSxFQUFFLEdBQUcsU0FBRSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsU0FBUyxFQUFFLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFlBQTBCO1FBQzdDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQXFCLEVBQUUsRUFBRTtZQUN2RCxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRXZCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsRUFBRTtnQkFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7b0JBQ3ZELFdBQVcsRUFBRSxJQUFJO29CQUNqQixXQUFXLEVBQUUsSUFBSTtpQkFDbEIsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsV0FBRyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFxQixFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7Z0JBQ3hELFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUM1QixXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBdUQ7UUFDN0QsSUFBSTtZQUNGLE1BQU0sV0FBVyxHQUFHLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2hELElBQUksU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFFbkMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO2dCQUMzQyxXQUFHLENBQUMsY0FBYyxVQUFVLFlBQVksQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ25CLFNBQVMsRUFBRSxDQUFDO2dCQUVaLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRTtvQkFDbkIsV0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDL0IsSUFBSSxJQUFJLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLENBQUM7cUJBQ1I7aUJBQ0Y7WUFDSCxDQUFDLENBQUM7WUFFRixNQUFNLE9BQU8sR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDckMsV0FBRyxDQUFDLHNCQUFzQixVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxNQUFNLENBQUMsRUFBRSxDQUNQLFNBQVMsRUFDVCxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtvQkFDbkIsVUFBVTtvQkFDVixNQUFNO2lCQUNQLENBQUMsQ0FDSCxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUM7WUFFRixPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwQztRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osV0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsRUFBRTtnQkFDNUQsTUFBTSxFQUFFLDREQUE0RDthQUNyRSxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsV0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILFdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7UUFDakQsSUFBSSxXQUFXLEdBQUcsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFN0QsSUFBSSxXQUFXLEVBQUU7WUFDZixXQUFHLENBQUMsd0NBQXdDLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDM0QsV0FBVyxJQUFJLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU8sQ0FBQyxXQUE4RDtRQUNwRSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBc0MsS0FBSztRQUN6RCxNQUFNLFNBQVMsR0FBRyxZQUFZLFNBQUUsRUFBRSxFQUFFLENBQUM7UUFFckMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTlELE9BQU8sQ0FBQyxPQUFPLEdBQUc7WUFDaEIsT0FBTztTQUNSLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLGFBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjLENBQ1osV0FBOEQ7UUFFOUQsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLFlBQVksRUFBRTtZQUN4QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFYixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsMENBQTRCLENBQzVDLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUUzQixJQUFJLFdBQVcsRUFBRTtnQkFDZixXQUFXLEVBQUUsQ0FBQzthQUNmO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBSUQsT0FBTyxDQUFDLElBQVksRUFBRSxTQUEwQjtRQUM5QyxXQUFHLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsTUFBTSxTQUFTLEdBQUcsV0FBVyxTQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXBDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU3RCxPQUFPLENBQUMsT0FBTyxHQUFHO1lBQ2hCLElBQUk7WUFDSixNQUFNLEVBQUUsS0FBSztZQUNiLGFBQWEsRUFBRSxJQUFJO1lBQ25CLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxhQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVksRUFBRSxTQUEwQjtRQUMvQyxXQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakMsTUFBTSxTQUFTLEdBQUcsWUFBWSxTQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXJDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU5RCxPQUFPLENBQUMsT0FBTyxHQUFHO1lBQ2hCLElBQUk7WUFDSixJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxJQUFJO1lBQ1YsVUFBVSxFQUFFLDBCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1NBQ2xELENBQUM7UUFDRixJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksYUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZLEVBQUUsU0FBaUIsRUFBRSxTQUEwQjtRQUNqRSxXQUFHLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sU0FBUyxHQUFHLFdBQVcsU0FBRSxFQUFFLEVBQUUsQ0FBQztRQUVwQyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFN0QsT0FBTyxDQUFDLE9BQU8sR0FBRztZQUNoQixJQUFJO1lBQ0osVUFBVSxFQUFFLFNBQVM7WUFDckIsWUFBWSxFQUFFLENBQUM7U0FDaEIsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxhQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsTUFBTSxTQUFTLEdBQUcsZUFBZSxTQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXhDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFekQsT0FBTyxDQUFDLE9BQU8sR0FBRztZQUNoQixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLGFBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZ0I7UUFDN0IsV0FBRyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxRQUFRLENBQUM7UUFFYixJQUFJLE1BQU0sRUFBRTtZQUNWLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDNUM7UUFFRCxJQUFJLFFBQVEsRUFBRTtZQUNaLFFBQVEsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQWdCO1FBQzdCLFdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUlELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksUUFBUSxDQUFDO1FBRWIsSUFBSSxNQUFNLEVBQUU7WUFDVixRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDWixRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFnQjtRQUMxQixXQUFHLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFcEMsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQy9DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNoQztRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksUUFBUSxDQUFDO1FBRWIsSUFBSSxNQUFNLEVBQUU7WUFDVixRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDWixRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxXQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLFlBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUEzVUQsNEJBMlVDO0FBRUQsU0FBUyxlQUFlLENBQUMsT0FBZ0I7SUFDdkMsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLFdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtRQUNwQixXQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN4QyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsS0FBSyxVQUFVLEVBQUU7UUFFbEQsV0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1FBQzFCLFdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7UUFDakMsV0FBRyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtRQUNuQyxXQUFHLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUN2RCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDbkIsV0FBRyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUMxQixXQUFHLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUM5QyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQzVCLFdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLFlBQVk7SUFDbkIsT0FBTyxDQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTztRQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUk7UUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLE9BQWUsRUFBRSxRQUFnQixTQUFFLEVBQUU7SUFDM0QsTUFBTSxPQUFPLEdBQUc7UUFDZCxNQUFNLEVBQUU7WUFDTixRQUFRLEVBQUUsWUFBWSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxzQ0FBc0M7WUFDL0MsUUFBUSxFQUFFLE9BQU87WUFDakIsTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDaEIsT0FBTyxFQUFFLEtBQUs7U0FDZjtRQUNELFFBQVEsRUFBRSxFQUFFO1FBQ1osYUFBYSxFQUFFLEVBQUU7UUFDakIsT0FBTyxFQUFFLEVBQUU7S0FDWixDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyYW1tYXIgfSBmcm9tIFwiYXRvbVwiO1xyXG5pbXBvcnQgeyBDaGlsZFByb2Nlc3MgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiO1xyXG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XHJcbmltcG9ydCB7IE1lc3NhZ2UsIFNvY2tldCB9IGZyb20gXCJAYW1pbnlhL2ptcFwiO1xyXG5pbXBvcnQgeyB2NCB9IGZyb20gXCJ1dWlkXCI7XHJcbmltcG9ydCB7IGxhdW5jaFNwZWMsIGxhdW5jaFNwZWNGcm9tQ29ubmVjdGlvbkluZm8gfSBmcm9tIFwic3Bhd250ZXJhY3RcIjtcclxuaW1wb3J0IENvbmZpZyBmcm9tIFwiLi9jb25maWdcIjtcclxuaW1wb3J0IEtlcm5lbFRyYW5zcG9ydCBmcm9tIFwiLi9rZXJuZWwtdHJhbnNwb3J0XCI7XHJcbmltcG9ydCB0eXBlIHsgUmVzdWx0c0NhbGxiYWNrIH0gZnJvbSBcIi4va2VybmVsLXRyYW5zcG9ydFwiO1xyXG5pbXBvcnQgeyBsb2csIGpzX2lkeF90b19jaGFyX2lkeCB9IGZyb20gXCIuL3V0aWxzXCI7XHJcbmltcG9ydCB0eXBlIHsgS2VybmVsc3BlY01ldGFkYXRhIH0gZnJvbSBcIkBudGVyYWN0L3R5cGVzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBDb25uZWN0aW9uID0ge1xyXG4gIGNvbnRyb2xfcG9ydDogbnVtYmVyO1xyXG4gIGhiX3BvcnQ6IG51bWJlcjtcclxuICBpb3B1Yl9wb3J0OiBudW1iZXI7XHJcbiAgaXA6IHN0cmluZztcclxuICBrZXk6IHN0cmluZztcclxuICBzaGVsbF9wb3J0OiBudW1iZXI7XHJcbiAgc2lnbmF0dXJlX3NjaGVtZTogc3RyaW5nO1xyXG4gIHN0ZGluX3BvcnQ6IG51bWJlcjtcclxuICB0cmFuc3BvcnQ6IHN0cmluZztcclxuICB2ZXJzaW9uOiBudW1iZXI7XHJcbn07XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFpNUUtlcm5lbCBleHRlbmRzIEtlcm5lbFRyYW5zcG9ydCB7XHJcbiAgZXhlY3V0aW9uQ2FsbGJhY2tzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgY29ubmVjdGlvbjogQ29ubmVjdGlvbjtcclxuICBjb25uZWN0aW9uRmlsZTogc3RyaW5nO1xyXG4gIGtlcm5lbFByb2Nlc3M6IENoaWxkUHJvY2VzcztcclxuICBvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIHNoZWxsU29ja2V0OiBTb2NrZXQ7XHJcbiAgc3RkaW5Tb2NrZXQ6IFNvY2tldDtcclxuICBpb1NvY2tldDogU29ja2V0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGtlcm5lbFNwZWM6IEtlcm5lbHNwZWNNZXRhZGF0YSxcclxuICAgIGdyYW1tYXI6IEdyYW1tYXIsXHJcbiAgICBvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG4gICAgb25TdGFydGVkOiAoKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IGFueSkgfCBudWxsIHwgdW5kZWZpbmVkXHJcbiAgKSB7XHJcbiAgICBzdXBlcihrZXJuZWxTcGVjLCBncmFtbWFyKTtcclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgfHwge307XHJcbiAgICAvLyBPdGhlcndpc2Ugc3Bhd250ZXJhY3QgZGVsZXRlcyB0aGUgZmlsZSBhbmQgaHlkcm9nZW4ncyByZXN0YXJ0IGtlcm5lbCBmYWlsc1xyXG4gICAgb3B0aW9ucy5jbGVhbnVwQ29ubmVjdGlvbkZpbGUgPSBmYWxzZTtcclxuICAgIGxhdW5jaFNwZWMoa2VybmVsU3BlYywgb3B0aW9ucykudGhlbihcclxuICAgICAgKHsgY29uZmlnLCBjb25uZWN0aW9uRmlsZSwgc3Bhd24gfSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdGlvbiA9IGNvbmZpZztcclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb25GaWxlID0gY29ubmVjdGlvbkZpbGU7XHJcbiAgICAgICAgdGhpcy5rZXJuZWxQcm9jZXNzID0gc3Bhd247XHJcbiAgICAgICAgdGhpcy5tb25pdG9yTm90aWZpY2F0aW9ucyhzcGF3bik7XHJcbiAgICAgICAgdGhpcy5jb25uZWN0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX2V4ZWN1dGVTdGFydHVwQ29kZSgpO1xyXG5cclxuICAgICAgICAgIGlmIChvblN0YXJ0ZWQpIHtcclxuICAgICAgICAgICAgb25TdGFydGVkKHRoaXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY29ubmVjdChkb25lOiAoKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IGFueSkgfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBjb25zdCBzY2hlbWUgPSB0aGlzLmNvbm5lY3Rpb24uc2lnbmF0dXJlX3NjaGVtZS5zbGljZShcImhtYWMtXCIubGVuZ3RoKTtcclxuICAgIGNvbnN0IHsga2V5IH0gPSB0aGlzLmNvbm5lY3Rpb247XHJcbiAgICB0aGlzLnNoZWxsU29ja2V0ID0gbmV3IFNvY2tldChcImRlYWxlclwiLCBzY2hlbWUsIGtleSk7XHJcbiAgICB0aGlzLnN0ZGluU29ja2V0ID0gbmV3IFNvY2tldChcImRlYWxlclwiLCBzY2hlbWUsIGtleSk7XHJcbiAgICB0aGlzLmlvU29ja2V0ID0gbmV3IFNvY2tldChcInN1YlwiLCBzY2hlbWUsIGtleSk7XHJcbiAgICBjb25zdCBpZCA9IHY0KCk7XHJcbiAgICB0aGlzLnNoZWxsU29ja2V0LmlkZW50aXR5ID0gYGRlYWxlciR7aWR9YDtcclxuICAgIHRoaXMuc3RkaW5Tb2NrZXQuaWRlbnRpdHkgPSBgZGVhbGVyJHtpZH1gO1xyXG4gICAgdGhpcy5pb1NvY2tldC5pZGVudGl0eSA9IGBzdWIke2lkfWA7XHJcbiAgICBjb25zdCBhZGRyZXNzID0gYCR7dGhpcy5jb25uZWN0aW9uLnRyYW5zcG9ydH06Ly8ke3RoaXMuY29ubmVjdGlvbi5pcH06YDtcclxuICAgIHRoaXMuc2hlbGxTb2NrZXQuY29ubmVjdChhZGRyZXNzICsgdGhpcy5jb25uZWN0aW9uLnNoZWxsX3BvcnQpO1xyXG4gICAgdGhpcy5pb1NvY2tldC5jb25uZWN0KGFkZHJlc3MgKyB0aGlzLmNvbm5lY3Rpb24uaW9wdWJfcG9ydCk7XHJcbiAgICB0aGlzLmlvU29ja2V0LnN1YnNjcmliZShcIlwiKTtcclxuICAgIHRoaXMuc3RkaW5Tb2NrZXQuY29ubmVjdChhZGRyZXNzICsgdGhpcy5jb25uZWN0aW9uLnN0ZGluX3BvcnQpO1xyXG4gICAgdGhpcy5zaGVsbFNvY2tldC5vbihcIm1lc3NhZ2VcIiwgdGhpcy5vblNoZWxsTWVzc2FnZS5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuaW9Tb2NrZXQub24oXCJtZXNzYWdlXCIsIHRoaXMub25JT01lc3NhZ2UuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLnN0ZGluU29ja2V0Lm9uKFwibWVzc2FnZVwiLCB0aGlzLm9uU3RkaW5NZXNzYWdlLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy5tb25pdG9yKGRvbmUpO1xyXG4gIH1cclxuXHJcbiAgbW9uaXRvck5vdGlmaWNhdGlvbnMoY2hpbGRQcm9jZXNzOiBDaGlsZFByb2Nlc3MpIHtcclxuICAgIGNoaWxkUHJvY2Vzcy5zdGRvdXQub24oXCJkYXRhXCIsIChkYXRhOiBzdHJpbmcgfCBCdWZmZXIpID0+IHtcclxuICAgICAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgIGlmIChhdG9tLmNvbmZpZy5nZXQoXCJIeWRyb2dlbi5rZXJuZWxOb3RpZmljYXRpb25zXCIpKSB7XHJcbiAgICAgICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEluZm8odGhpcy5rZXJuZWxTcGVjLmRpc3BsYXlfbmFtZSwge1xyXG4gICAgICAgICAgZGVzY3JpcHRpb246IGRhdGEsXHJcbiAgICAgICAgICBkaXNtaXNzYWJsZTogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsb2coXCJaTVFLZXJuZWw6IHN0ZG91dDpcIiwgZGF0YSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY2hpbGRQcm9jZXNzLnN0ZGVyci5vbihcImRhdGFcIiwgKGRhdGE6IHN0cmluZyB8IEJ1ZmZlcikgPT4ge1xyXG4gICAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkRXJyb3IodGhpcy5rZXJuZWxTcGVjLmRpc3BsYXlfbmFtZSwge1xyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBkYXRhLnRvU3RyaW5nKCksXHJcbiAgICAgICAgZGlzbWlzc2FibGU6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtb25pdG9yKGRvbmU6ICgoLi4uYXJnczogQXJyYXk8YW55PikgPT4gYW55KSB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHNvY2tldE5hbWVzID0gW1wic2hlbGxTb2NrZXRcIiwgXCJpb1NvY2tldFwiXTtcclxuICAgICAgbGV0IHdhaXRHcm91cCA9IHNvY2tldE5hbWVzLmxlbmd0aDtcclxuXHJcbiAgICAgIGNvbnN0IG9uQ29ubmVjdCA9ICh7IHNvY2tldE5hbWUsIHNvY2tldCB9KSA9PiB7XHJcbiAgICAgICAgbG9nKGBaTVFLZXJuZWw6ICR7c29ja2V0TmFtZX0gY29ubmVjdGVkYCk7XHJcbiAgICAgICAgc29ja2V0LnVubW9uaXRvcigpO1xyXG4gICAgICAgIHdhaXRHcm91cC0tO1xyXG5cclxuICAgICAgICBpZiAod2FpdEdyb3VwID09PSAwKSB7XHJcbiAgICAgICAgICBsb2coXCJaTVFLZXJuZWw6IGFsbCBtYWluIHNvY2tldHMgY29ubmVjdGVkXCIpO1xyXG4gICAgICAgICAgdGhpcy5zZXRFeGVjdXRpb25TdGF0ZShcImlkbGVcIik7XHJcbiAgICAgICAgICBpZiAoZG9uZSkge1xyXG4gICAgICAgICAgICBkb25lKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgY29uc3QgbW9uaXRvciA9IChzb2NrZXROYW1lLCBzb2NrZXQpID0+IHtcclxuICAgICAgICBsb2coYFpNUUtlcm5lbDogbW9uaXRvciAke3NvY2tldE5hbWV9YCk7XHJcbiAgICAgICAgc29ja2V0Lm9uKFxyXG4gICAgICAgICAgXCJjb25uZWN0XCIsXHJcbiAgICAgICAgICBvbkNvbm5lY3QuYmluZCh0aGlzLCB7XHJcbiAgICAgICAgICAgIHNvY2tldE5hbWUsXHJcbiAgICAgICAgICAgIHNvY2tldCxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgICBzb2NrZXQubW9uaXRvcigpO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgbW9uaXRvcihcInNoZWxsU29ja2V0XCIsIHRoaXMuc2hlbGxTb2NrZXQpO1xyXG4gICAgICBtb25pdG9yKFwiaW9Tb2NrZXRcIiwgdGhpcy5pb1NvY2tldCk7XHJcbiAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgbG9nKFwiWk1RS2VybmVsOlwiLCBlcnIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW50ZXJydXB0KCkge1xyXG4gICAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09IFwid2luMzJcIikge1xyXG4gICAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkV2FybmluZyhcIkNhbm5vdCBpbnRlcnJ1cHQgdGhpcyBrZXJuZWxcIiwge1xyXG4gICAgICAgIGRldGFpbDogXCJLZXJuZWwgaW50ZXJydXB0aW9uIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGluIFdpbmRvd3MuXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbG9nKFwiWk1RS2VybmVsOiBzZW5kaW5nIFNJR0lOVFwiKTtcclxuICAgICAgdGhpcy5rZXJuZWxQcm9jZXNzLmtpbGwoXCJTSUdJTlRcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfa2lsbCgpIHtcclxuICAgIGxvZyhcIlpNUUtlcm5lbDogc2VuZGluZyBTSUdLSUxMXCIpO1xyXG4gICAgdGhpcy5rZXJuZWxQcm9jZXNzLmtpbGwoXCJTSUdLSUxMXCIpO1xyXG4gIH1cclxuXHJcbiAgX2V4ZWN1dGVTdGFydHVwQ29kZSgpIHtcclxuICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gdGhpcy5rZXJuZWxTcGVjLmRpc3BsYXlfbmFtZTtcclxuICAgIGxldCBzdGFydHVwQ29kZSA9IENvbmZpZy5nZXRKc29uKFwic3RhcnR1cENvZGVcIilbZGlzcGxheU5hbWVdO1xyXG5cclxuICAgIGlmIChzdGFydHVwQ29kZSkge1xyXG4gICAgICBsb2coXCJLZXJuZWxNYW5hZ2VyOiBFeGVjdXRpbmcgc3RhcnR1cCBjb2RlOlwiLCBzdGFydHVwQ29kZSk7XHJcbiAgICAgIHN0YXJ0dXBDb2RlICs9IFwiXFxuXCI7XHJcbiAgICAgIHRoaXMuZXhlY3V0ZShzdGFydHVwQ29kZSwgKG1lc3NhZ2UsIGNoYW5uZWwpID0+IHt9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNodXRkb3duKCkge1xyXG4gICAgdGhpcy5fc29ja2V0U2h1dGRvd24oKTtcclxuICB9XHJcblxyXG4gIHJlc3RhcnQob25SZXN0YXJ0ZWQ6ICgoLi4uYXJnczogQXJyYXk8YW55PikgPT4gYW55KSB8IG51bGwgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX3NvY2tldFJlc3RhcnQob25SZXN0YXJ0ZWQpO1xyXG4gIH1cclxuXHJcbiAgX3NvY2tldFNodXRkb3duKHJlc3RhcnQ6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHJlcXVlc3RJZCA9IGBzaHV0ZG93bl8ke3Y0KCl9YDtcclxuXHJcbiAgICBjb25zdCBtZXNzYWdlID0gX2NyZWF0ZU1lc3NhZ2UoXCJzaHV0ZG93bl9yZXF1ZXN0XCIsIHJlcXVlc3RJZCk7XHJcblxyXG4gICAgbWVzc2FnZS5jb250ZW50ID0ge1xyXG4gICAgICByZXN0YXJ0LFxyXG4gICAgfTtcclxuICAgIHRoaXMuc2hlbGxTb2NrZXQuc2VuZChuZXcgTWVzc2FnZShtZXNzYWdlKSk7XHJcbiAgfVxyXG5cclxuICBfc29ja2V0UmVzdGFydChcclxuICAgIG9uUmVzdGFydGVkOiAoKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IGFueSkgfCBudWxsIHwgdW5kZWZpbmVkXHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5leGVjdXRpb25TdGF0ZSA9PT0gXCJyZXN0YXJ0aW5nXCIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0RXhlY3V0aW9uU3RhdGUoXCJyZXN0YXJ0aW5nXCIpO1xyXG5cclxuICAgIHRoaXMuX3NvY2tldFNodXRkb3duKHRydWUpO1xyXG5cclxuICAgIHRoaXMuX2tpbGwoKTtcclxuXHJcbiAgICBjb25zdCB7IHNwYXduIH0gPSBsYXVuY2hTcGVjRnJvbUNvbm5lY3Rpb25JbmZvKFxyXG4gICAgICB0aGlzLmtlcm5lbFNwZWMsXHJcbiAgICAgIHRoaXMuY29ubmVjdGlvbixcclxuICAgICAgdGhpcy5jb25uZWN0aW9uRmlsZSxcclxuICAgICAgdGhpcy5vcHRpb25zXHJcbiAgICApO1xyXG4gICAgdGhpcy5rZXJuZWxQcm9jZXNzID0gc3Bhd247XHJcbiAgICB0aGlzLm1vbml0b3IoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9leGVjdXRlU3RhcnR1cENvZGUoKTtcclxuXHJcbiAgICAgIGlmIChvblJlc3RhcnRlZCkge1xyXG4gICAgICAgIG9uUmVzdGFydGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gb25SZXN1bHRzIGlzIGEgY2FsbGJhY2sgdGhhdCBtYXkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzXHJcbiAgLy8gYXMgcmVzdWx0cyBjb21lIGluIGZyb20gdGhlIGtlcm5lbFxyXG4gIGV4ZWN1dGUoY29kZTogc3RyaW5nLCBvblJlc3VsdHM6IFJlc3VsdHNDYWxsYmFjaykge1xyXG4gICAgbG9nKFwiWk1RS2VybmVsLmV4ZWN1dGU6XCIsIGNvZGUpO1xyXG4gICAgY29uc3QgcmVxdWVzdElkID0gYGV4ZWN1dGVfJHt2NCgpfWA7XHJcblxyXG4gICAgY29uc3QgbWVzc2FnZSA9IF9jcmVhdGVNZXNzYWdlKFwiZXhlY3V0ZV9yZXF1ZXN0XCIsIHJlcXVlc3RJZCk7XHJcblxyXG4gICAgbWVzc2FnZS5jb250ZW50ID0ge1xyXG4gICAgICBjb2RlLFxyXG4gICAgICBzaWxlbnQ6IGZhbHNlLFxyXG4gICAgICBzdG9yZV9oaXN0b3J5OiB0cnVlLFxyXG4gICAgICB1c2VyX2V4cHJlc3Npb25zOiB7fSxcclxuICAgICAgYWxsb3dfc3RkaW46IHRydWUsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5leGVjdXRpb25DYWxsYmFja3NbcmVxdWVzdElkXSA9IG9uUmVzdWx0cztcclxuICAgIHRoaXMuc2hlbGxTb2NrZXQuc2VuZChuZXcgTWVzc2FnZShtZXNzYWdlKSk7XHJcbiAgfVxyXG5cclxuICBjb21wbGV0ZShjb2RlOiBzdHJpbmcsIG9uUmVzdWx0czogUmVzdWx0c0NhbGxiYWNrKSB7XHJcbiAgICBsb2coXCJaTVFLZXJuZWwuY29tcGxldGU6XCIsIGNvZGUpO1xyXG4gICAgY29uc3QgcmVxdWVzdElkID0gYGNvbXBsZXRlXyR7djQoKX1gO1xyXG5cclxuICAgIGNvbnN0IG1lc3NhZ2UgPSBfY3JlYXRlTWVzc2FnZShcImNvbXBsZXRlX3JlcXVlc3RcIiwgcmVxdWVzdElkKTtcclxuXHJcbiAgICBtZXNzYWdlLmNvbnRlbnQgPSB7XHJcbiAgICAgIGNvZGUsXHJcbiAgICAgIHRleHQ6IGNvZGUsXHJcbiAgICAgIGxpbmU6IGNvZGUsXHJcbiAgICAgIGN1cnNvcl9wb3M6IGpzX2lkeF90b19jaGFyX2lkeChjb2RlLmxlbmd0aCwgY29kZSksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5leGVjdXRpb25DYWxsYmFja3NbcmVxdWVzdElkXSA9IG9uUmVzdWx0cztcclxuICAgIHRoaXMuc2hlbGxTb2NrZXQuc2VuZChuZXcgTWVzc2FnZShtZXNzYWdlKSk7XHJcbiAgfVxyXG5cclxuICBpbnNwZWN0KGNvZGU6IHN0cmluZywgY3Vyc29yUG9zOiBudW1iZXIsIG9uUmVzdWx0czogUmVzdWx0c0NhbGxiYWNrKSB7XHJcbiAgICBsb2coXCJaTVFLZXJuZWwuaW5zcGVjdDpcIiwgY29kZSwgY3Vyc29yUG9zKTtcclxuICAgIGNvbnN0IHJlcXVlc3RJZCA9IGBpbnNwZWN0XyR7djQoKX1gO1xyXG5cclxuICAgIGNvbnN0IG1lc3NhZ2UgPSBfY3JlYXRlTWVzc2FnZShcImluc3BlY3RfcmVxdWVzdFwiLCByZXF1ZXN0SWQpO1xyXG5cclxuICAgIG1lc3NhZ2UuY29udGVudCA9IHtcclxuICAgICAgY29kZSxcclxuICAgICAgY3Vyc29yX3BvczogY3Vyc29yUG9zLFxyXG4gICAgICBkZXRhaWxfbGV2ZWw6IDAsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5leGVjdXRpb25DYWxsYmFja3NbcmVxdWVzdElkXSA9IG9uUmVzdWx0cztcclxuICAgIHRoaXMuc2hlbGxTb2NrZXQuc2VuZChuZXcgTWVzc2FnZShtZXNzYWdlKSk7XHJcbiAgfVxyXG5cclxuICBpbnB1dFJlcGx5KGlucHV0OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHJlcXVlc3RJZCA9IGBpbnB1dF9yZXBseV8ke3Y0KCl9YDtcclxuXHJcbiAgICBjb25zdCBtZXNzYWdlID0gX2NyZWF0ZU1lc3NhZ2UoXCJpbnB1dF9yZXBseVwiLCByZXF1ZXN0SWQpO1xyXG5cclxuICAgIG1lc3NhZ2UuY29udGVudCA9IHtcclxuICAgICAgdmFsdWU6IGlucHV0LFxyXG4gICAgfTtcclxuICAgIHRoaXMuc3RkaW5Tb2NrZXQuc2VuZChuZXcgTWVzc2FnZShtZXNzYWdlKSk7XHJcbiAgfVxyXG5cclxuICBvblNoZWxsTWVzc2FnZShtZXNzYWdlOiBNZXNzYWdlKSB7XHJcbiAgICBsb2coXCJzaGVsbCBtZXNzYWdlOlwiLCBtZXNzYWdlKTtcclxuXHJcbiAgICBpZiAoIV9pc1ZhbGlkTWVzc2FnZShtZXNzYWdlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBtc2dfaWQgfSA9IG1lc3NhZ2UucGFyZW50X2hlYWRlcjtcclxuICAgIGxldCBjYWxsYmFjaztcclxuXHJcbiAgICBpZiAobXNnX2lkKSB7XHJcbiAgICAgIGNhbGxiYWNrID0gdGhpcy5leGVjdXRpb25DYWxsYmFja3NbbXNnX2lkXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgY2FsbGJhY2sobWVzc2FnZSwgXCJzaGVsbFwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3RkaW5NZXNzYWdlKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcclxuICAgIGxvZyhcInN0ZGluIG1lc3NhZ2U6XCIsIG1lc3NhZ2UpO1xyXG5cclxuICAgIGlmICghX2lzVmFsaWRNZXNzYWdlKG1lc3NhZ2UpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpbnB1dF9yZXF1ZXN0IG1lc3NhZ2VzIGFyZSBhdHRyaWJ1dGFibGUgdG8gcGFydGljdWxhciBleGVjdXRpb24gcmVxdWVzdHMsXHJcbiAgICAvLyBhbmQgc2hvdWxkIHBhc3MgdGhyb3VnaCB0aGUgbWlkZGxld2FyZSBzdGFjayB0byBhbGxvdyBwbHVnaW5zIHRvIHNlZSB0aGVtXHJcbiAgICBjb25zdCB7IG1zZ19pZCB9ID0gbWVzc2FnZS5wYXJlbnRfaGVhZGVyO1xyXG4gICAgbGV0IGNhbGxiYWNrO1xyXG5cclxuICAgIGlmIChtc2dfaWQpIHtcclxuICAgICAgY2FsbGJhY2sgPSB0aGlzLmV4ZWN1dGlvbkNhbGxiYWNrc1ttc2dfaWRdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICBjYWxsYmFjayhtZXNzYWdlLCBcInN0ZGluXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JT01lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSkge1xyXG4gICAgbG9nKFwiSU8gbWVzc2FnZTpcIiwgbWVzc2FnZSk7XHJcblxyXG4gICAgaWYgKCFfaXNWYWxpZE1lc3NhZ2UobWVzc2FnZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgbXNnX3R5cGUgfSA9IG1lc3NhZ2UuaGVhZGVyO1xyXG5cclxuICAgIGlmIChtc2dfdHlwZSA9PT0gXCJzdGF0dXNcIikge1xyXG4gICAgICBjb25zdCBzdGF0dXMgPSBtZXNzYWdlLmNvbnRlbnQuZXhlY3V0aW9uX3N0YXRlO1xyXG4gICAgICB0aGlzLnNldEV4ZWN1dGlvblN0YXRlKHN0YXR1cyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBtc2dfaWQgfSA9IG1lc3NhZ2UucGFyZW50X2hlYWRlcjtcclxuICAgIGxldCBjYWxsYmFjaztcclxuXHJcbiAgICBpZiAobXNnX2lkKSB7XHJcbiAgICAgIGNhbGxiYWNrID0gdGhpcy5leGVjdXRpb25DYWxsYmFja3NbbXNnX2lkXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgY2FsbGJhY2sobWVzc2FnZSwgXCJpb3B1YlwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlc3Ryb3koKSB7XHJcbiAgICBsb2coXCJaTVFLZXJuZWw6IGRlc3Ryb3k6XCIsIHRoaXMpO1xyXG4gICAgdGhpcy5zaHV0ZG93bigpO1xyXG5cclxuICAgIHRoaXMuX2tpbGwoKTtcclxuXHJcbiAgICBmcy51bmxpbmtTeW5jKHRoaXMuY29ubmVjdGlvbkZpbGUpO1xyXG4gICAgdGhpcy5zaGVsbFNvY2tldC5jbG9zZSgpO1xyXG4gICAgdGhpcy5pb1NvY2tldC5jbG9zZSgpO1xyXG4gICAgdGhpcy5zdGRpblNvY2tldC5jbG9zZSgpO1xyXG4gICAgc3VwZXIuZGVzdHJveSgpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gX2lzVmFsaWRNZXNzYWdlKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcclxuICBpZiAoIW1lc3NhZ2UpIHtcclxuICAgIGxvZyhcIkludmFsaWQgbWVzc2FnZTogbnVsbFwiKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmICghbWVzc2FnZS5jb250ZW50KSB7XHJcbiAgICBsb2coXCJJbnZhbGlkIG1lc3NhZ2U6IE1pc3NpbmcgY29udGVudFwiKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmIChtZXNzYWdlLmNvbnRlbnQuZXhlY3V0aW9uX3N0YXRlID09PSBcInN0YXJ0aW5nXCIpIHtcclxuICAgIC8vIEtlcm5lbHMgc2VuZCBhIHN0YXJ0aW5nIHN0YXR1cyBtZXNzYWdlIHdpdGggYW4gZW1wdHkgcGFyZW50X2hlYWRlclxyXG4gICAgbG9nKFwiRHJvcHBlZCBzdGFydGluZyBzdGF0dXMgSU8gbWVzc2FnZVwiKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmICghbWVzc2FnZS5wYXJlbnRfaGVhZGVyKSB7XHJcbiAgICBsb2coXCJJbnZhbGlkIG1lc3NhZ2U6IE1pc3NpbmcgcGFyZW50X2hlYWRlclwiKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmICghbWVzc2FnZS5wYXJlbnRfaGVhZGVyLm1zZ19pZCkge1xyXG4gICAgbG9nKFwiSW52YWxpZCBtZXNzYWdlOiBNaXNzaW5nIHBhcmVudF9oZWFkZXIubXNnX2lkXCIpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFtZXNzYWdlLnBhcmVudF9oZWFkZXIubXNnX3R5cGUpIHtcclxuICAgIGxvZyhcIkludmFsaWQgbWVzc2FnZTogTWlzc2luZyBwYXJlbnRfaGVhZGVyLm1zZ190eXBlXCIpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFtZXNzYWdlLmhlYWRlcikge1xyXG4gICAgbG9nKFwiSW52YWxpZCBtZXNzYWdlOiBNaXNzaW5nIGhlYWRlclwiKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmICghbWVzc2FnZS5oZWFkZXIubXNnX2lkKSB7XHJcbiAgICBsb2coXCJJbnZhbGlkIG1lc3NhZ2U6IE1pc3NpbmcgaGVhZGVyLm1zZ19pZFwiKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmICghbWVzc2FnZS5oZWFkZXIubXNnX3R5cGUpIHtcclxuICAgIGxvZyhcIkludmFsaWQgbWVzc2FnZTogTWlzc2luZyBoZWFkZXIubXNnX3R5cGVcIik7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gX2dldFVzZXJuYW1lKCkge1xyXG4gIHJldHVybiAoXHJcbiAgICBwcm9jZXNzLmVudi5MT0dOQU1FIHx8XHJcbiAgICBwcm9jZXNzLmVudi5VU0VSIHx8XHJcbiAgICBwcm9jZXNzLmVudi5MTkFNRSB8fFxyXG4gICAgcHJvY2Vzcy5lbnYuVVNFUk5BTUVcclxuICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBfY3JlYXRlTWVzc2FnZShtc2dUeXBlOiBzdHJpbmcsIG1zZ0lkOiBzdHJpbmcgPSB2NCgpKSB7XHJcbiAgY29uc3QgbWVzc2FnZSA9IHtcclxuICAgIGhlYWRlcjoge1xyXG4gICAgICB1c2VybmFtZTogX2dldFVzZXJuYW1lKCksXHJcbiAgICAgIHNlc3Npb246IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXHJcbiAgICAgIG1zZ190eXBlOiBtc2dUeXBlLFxyXG4gICAgICBtc2dfaWQ6IG1zZ0lkLFxyXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxyXG4gICAgICB2ZXJzaW9uOiBcIjUuMFwiLFxyXG4gICAgfSxcclxuICAgIG1ldGFkYXRhOiB7fSxcclxuICAgIHBhcmVudF9oZWFkZXI6IHt9LFxyXG4gICAgY29udGVudDoge30sXHJcbiAgfTtcclxuICByZXR1cm4gbWVzc2FnZTtcclxufVxyXG4iXX0= \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem1xLWtlcm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL2xpYi96bXEta2VybmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsNENBQW9CO0FBQ3BCLHFDQUE4QztBQUM5QywrQkFBMEI7QUFDMUIsNkNBQXVFO0FBQ3ZFLHNEQUE4QjtBQUM5QiwwRUFBaUQ7QUFFakQsbUNBQWtEO0FBZWxELE1BQXFCLFNBQVUsU0FBUSwwQkFBZTtJQVVwRCxZQUNFLFVBQThCLEVBQzlCLE9BQWdCLEVBQ2hCLE9BQTRCLEVBQzVCLFNBQTREO1FBRTVELEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFmN0IsdUJBQWtCLEdBQXdCLEVBQUUsQ0FBQztRQWdCM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRTdCLE9BQU8sQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDdEMsd0JBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNsQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBRTNCLElBQUksU0FBUyxFQUFFO29CQUNiLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDakI7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUF1RDtRQUM3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dCB7IEdyYW1tYXIgfSBmcm9tIFwiYXRvbVwiO1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IE1lc3NhZ2UsIFNvY2tldCB9IGZyb20gXCJAYW1pbnlhL2ptcFwiO1xuaW1wb3J0IHsgdjQgfSBmcm9tIFwidXVpZFwiO1xuaW1wb3J0IHsgbGF1bmNoU3BlYywgbGF1bmNoU3BlY0Zyb21Db25uZWN0aW9uSW5mbyB9IGZyb20gXCJzcGF3bnRlcmFjdFwiO1xuaW1wb3J0IENvbmZpZyBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCBLZXJuZWxUcmFuc3BvcnQgZnJvbSBcIi4va2VybmVsLXRyYW5zcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBSZXN1bHRzQ2FsbGJhY2sgfSBmcm9tIFwiLi9rZXJuZWwtdHJhbnNwb3J0XCI7XG5pbXBvcnQgeyBsb2csIGpzX2lkeF90b19jaGFyX2lkeCB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IEtlcm5lbHNwZWNNZXRhZGF0YSB9IGZyb20gXCJAbnRlcmFjdC90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBDb25uZWN0aW9uID0ge1xuICBjb250cm9sX3BvcnQ6IG51bWJlcjtcbiAgaGJfcG9ydDogbnVtYmVyO1xuICBpb3B1Yl9wb3J0OiBudW1iZXI7XG4gIGlwOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBzaGVsbF9wb3J0OiBudW1iZXI7XG4gIHNpZ25hdHVyZV9zY2hlbWU6IHN0cmluZztcbiAgc3RkaW5fcG9ydDogbnVtYmVyO1xuICB0cmFuc3BvcnQ6IHN0cmluZztcbiAgdmVyc2lvbjogbnVtYmVyO1xufTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFpNUUtlcm5lbCBleHRlbmRzIEtlcm5lbFRyYW5zcG9ydCB7XG4gIGV4ZWN1dGlvbkNhbGxiYWNrczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBjb25uZWN0aW9uOiBDb25uZWN0aW9uO1xuICBjb25uZWN0aW9uRmlsZTogc3RyaW5nO1xuICBrZXJuZWxQcm9jZXNzOiBDaGlsZFByb2Nlc3M7XG4gIG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHNoZWxsU29ja2V0OiBTb2NrZXQ7XG4gIHN0ZGluU29ja2V0OiBTb2NrZXQ7XG4gIGlvU29ja2V0OiBTb2NrZXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAga2VybmVsU3BlYzogS2VybmVsc3BlY01ldGFkYXRhLFxuICAgIGdyYW1tYXI6IEdyYW1tYXIsXG4gICAgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICBvblN0YXJ0ZWQ6ICgoLi4uYXJnczogQXJyYXk8YW55PikgPT4gYW55KSB8IG51bGwgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgc3VwZXIoa2VybmVsU3BlYywgZ3JhbW1hcik7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAvLyBPdGhlcndpc2Ugc3Bhd250ZXJhY3QgZGVsZXRlcyB0aGUgZmlsZSBhbmQgaHlkcm9nZW4ncyByZXN0YXJ0IGtlcm5lbCBmYWlsc1xuICAgIG9wdGlvbnMuY2xlYW51cENvbm5lY3Rpb25GaWxlID0gZmFsc2U7XG4gICAgbGF1bmNoU3BlYyhrZXJuZWxTcGVjLCBvcHRpb25zKS50aGVuKFxuICAgICAgKHsgY29uZmlnLCBjb25uZWN0aW9uRmlsZSwgc3Bhd24gfSkgPT4ge1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb24gPSBjb25maWc7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvbkZpbGUgPSBjb25uZWN0aW9uRmlsZTtcbiAgICAgICAgdGhpcy5rZXJuZWxQcm9jZXNzID0gc3Bhd247XG4gICAgICAgIHRoaXMubW9uaXRvck5vdGlmaWNhdGlvbnMoc3Bhd24pO1xuICAgICAgICB0aGlzLmNvbm5lY3QoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2V4ZWN1dGVTdGFydHVwQ29kZSgpO1xuXG4gICAgICAgICAgaWYgKG9uU3RhcnRlZCkge1xuICAgICAgICAgICAgb25TdGFydGVkKHRoaXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGNvbm5lY3QoZG9uZTogKCguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBhbnkpIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IHNjaGVtZSA9IHRoaXMuY29ubmVjdGlvbi5zaWduYXR1cmVfc2NoZW1lLnNsaWNlKFwiaG1hYy1cIi5sZW5ndGgpO1xuICAgIGNvbnN0IHsga2V5IH0gPSB0aGlzLmNvbm5lY3Rpb247XG4gICAgdGhpcy5zaGVsbFNvY2tldCA9IG5ldyBTb2NrZXQoXCJkZWFsZXJcIiwgc2NoZW1lLCBrZXkpO1xuICAgIHRoaXMuc3RkaW5Tb2NrZXQgPSBuZXcgU29ja2V0KFwiZGVhbGVyXCIsIHNjaGVtZSwga2V5KTtcbiAgICB0aGlzLmlvU29ja2V0ID0gbmV3IFNvY2tldChcInN1YlwiLCBzY2hlbWUsIGtleSk7XG4gICAgY29uc3QgaWQgPSB2NCgpO1xuICAgIHRoaXMuc2hlbGxTb2NrZXQuaWRlbnRpdHkgPSBgZGVhbGVyJHtpZH1gO1xuICAgIHRoaXMuc3RkaW5Tb2NrZXQuaWRlbnRpdHkgPSBgZGVhbGVyJHtpZH1gO1xuICAgIHRoaXMuaW9Tb2NrZXQuaWRlbnRpdHkgPSBgc3ViJHtpZH1gO1xuICAgIGNvbnN0IGFkZHJlc3MgPSBgJHt0aGlzLmNvbm5lY3Rpb24udHJhbnNwb3J0fTovLyR7dGhpcy5jb25uZWN0aW9uLmlwfTpgO1xuICAgIHRoaXMuc2hlbGxTb2NrZXQuY29ubmVjdChhZGRyZXNzICsgdGhpcy5jb25uZWN0aW9uLnNoZWxsX3BvcnQpO1xuICAgIHRoaXMuaW9Tb2NrZXQuY29ubmVjdChhZGRyZXNzICsgdGhpcy5jb25uZWN0aW9uLmlvcHViX3BvcnQpO1xuICAgIHRoaXMuaW9Tb2NrZXQuc3Vic2NyaWJlKFwiXCIpO1xuICAgIHRoaXMuc3RkaW5Tb2NrZXQuY29ubmVjdChhZGRyZXNzICsgdGhpcy5jb25uZWN0aW9uLnN0ZGluX3BvcnQpO1xuICAgIHRoaXMuc2hlbGxTb2NrZXQub24oXCJtZXNzYWdlXCIsIHRoaXMub25TaGVsbE1lc3NhZ2UuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5pb1NvY2tldC5vbihcIm1lc3NhZ2VcIiwgdGhpcy5vbklPTWVzc2FnZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnN0ZGluU29ja2V0Lm9uKFwibWVzc2FnZVwiLCB0aGlzLm9uU3RkaW5NZXNzYWdlLmJpbmQodGhpcykpO1xuICAgIHRoaXMubW9uaXRvcihkb25lKTtcbiAgfVxuXG4gIG1vbml0b3JOb3RpZmljYXRpb25zKGNoaWxkUHJvY2VzczogQ2hpbGRQcm9jZXNzKSB7XG4gICAgY2hpbGRQcm9jZXNzLnN0ZG91dC5vbihcImRhdGFcIiwgKGRhdGE6IHN0cmluZyB8IEJ1ZmZlcikgPT4ge1xuICAgICAgZGF0YSA9IGRhdGEudG9TdHJpbmcoKTtcblxuICAgICAgaWYgKGF0b20uY29uZmlnLmdldChcIkh5ZHJvZ2VuLmtlcm5lbE5vdGlmaWNhdGlvbnNcIikpIHtcbiAgICAgICAgYXRvbS5ub3RpZmljYXRpb25zLmFkZEluZm8odGhpcy5rZXJuZWxTcGVjLmRpc3BsYXlfbmFtZSwge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBkYXRhLFxuICAgICAgICAgIGRpc21pc3NhYmxlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZyhcIlpNUUtlcm5lbDogc3Rkb3V0OlwiLCBkYXRhKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjaGlsZFByb2Nlc3Muc3RkZXJyLm9uKFwiZGF0YVwiLCAoZGF0YTogc3RyaW5nIHwgQnVmZmVyKSA9PiB7XG4gICAgICBhdG9tLm5vdGlmaWNhdGlvbnMuYWRkRXJyb3IodGhpcy5rZXJuZWxTcGVjLmRpc3BsYXlfbmFtZSwge1xuICAgICAgICBkZXNjcmlwdGlvbjogZGF0YS50b1N0cmluZygpLFxuICAgICAgICBkaXNtaXNzYWJsZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbW9uaXRvcihkb25lOiAoKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IGFueSkgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNvY2tldE5hbWVzID0gW1wic2hlbGxTb2NrZXRcIiwgXCJpb1NvY2tldFwiXTtcbiAgICAgIGxldCB3YWl0R3JvdXAgPSBzb2NrZXROYW1lcy5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IG9uQ29ubmVjdCA9ICh7IHNvY2tldE5hbWUsIHNvY2tldCB9KSA9PiB7XG4gICAgICAgIGxvZyhgWk1RS2VybmVsOiAke3NvY2tldE5hbWV9IGNvbm5lY3RlZGApO1xuICAgICAgICBzb2NrZXQudW5tb25pdG9yKCk7XG4gICAgICAgIHdhaXRHcm91cC0tO1xuXG4gICAgICAgIGlmICh3YWl0R3JvdXAgPT09IDApIHtcbiAgICAgICAgICBsb2coXCJaTVFLZXJuZWw6IGFsbCBtYWluIHNvY2tldHMgY29ubmVjdGVkXCIpO1xuICAgICAgICAgIHRoaXMuc2V0RXhlY3V0aW9uU3RhdGUoXCJpZGxlXCIpO1xuICAgICAgICAgIGlmIChkb25lKSB7XG4gICAgICAgICAgICBkb25lKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb25pdG9yID0gKHNvY2tldE5hbWUsIHNvY2tldCkgPT4ge1xuICAgICAgICBsb2coYFpNUUtlcm5lbDogbW9uaXRvciAke3NvY2tldE5hbWV9YCk7XG4gICAgICAgIHNvY2tldC5vbihcbiAgICAgICAgICBcImNvbm5lY3RcIixcbiAgICAgICAgICBvbkNvbm5lY3QuYmluZCh0aGlzLCB7XG4gICAgICAgICAgICBzb2NrZXROYW1lLFxuICAgICAgICAgICAgc29ja2V0LFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHNvY2tldC5tb25pdG9yKCk7XG4gICAgICB9O1xuXG4gICAgICBtb25pdG9yKFwic2hlbGxTb2NrZXRcIiwgdGhpcy5zaGVsbFNvY2tldCk7XG4gICAgICBtb25pdG9yKFwiaW9Tb2NrZXRcIiwgdGhpcy5pb1NvY2tldCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2coXCJaTVFLZXJuZWw6XCIsIGVycik7XG4gICAgfVxuICB9XG5cbiAgaW50ZXJydXB0KCkge1xuICAgIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSBcIndpbjMyXCIpIHtcbiAgICAgIGF0b20ubm90aWZpY2F0aW9ucy5hZGRXYXJuaW5nKFwiQ2Fubm90IGludGVycnVwdCB0aGlzIGtlcm5lbFwiLCB7XG4gICAgICAgIGRldGFpbDogXCJLZXJuZWwgaW50ZXJydXB0aW9uIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGluIFdpbmRvd3MuXCIsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nKFwiWk1RS2VybmVsOiBzZW5kaW5nIFNJR0lOVFwiKTtcbiAgICAgIHRoaXMua2VybmVsUHJvY2Vzcy5raWxsKFwiU0lHSU5UXCIpO1xuICAgIH1cbiAgfVxuXG4gIF9raWxsKCkge1xuICAgIGxvZyhcIlpNUUtlcm5lbDogc2VuZGluZyBTSUdLSUxMXCIpO1xuICAgIHRoaXMua2VybmVsUHJvY2Vzcy5raWxsKFwiU0lHS0lMTFwiKTtcbiAgfVxuXG4gIF9leGVjdXRlU3RhcnR1cENvZGUoKSB7XG4gICAgY29uc3QgZGlzcGxheU5hbWUgPSB0aGlzLmtlcm5lbFNwZWMuZGlzcGxheV9uYW1lO1xuICAgIGxldCBzdGFydHVwQ29kZSA9IENvbmZpZy5nZXRKc29uKFwic3RhcnR1cENvZGVcIilbZGlzcGxheU5hbWVdO1xuXG4gICAgaWYgKHN0YXJ0dXBDb2RlKSB7XG4gICAgICBsb2coXCJLZXJuZWxNYW5hZ2VyOiBFeGVjdXRpbmcgc3RhcnR1cCBjb2RlOlwiLCBzdGFydHVwQ29kZSk7XG4gICAgICBzdGFydHVwQ29kZSArPSBcIlxcblwiO1xuICAgICAgdGhpcy5leGVjdXRlKHN0YXJ0dXBDb2RlLCAobWVzc2FnZSwgY2hhbm5lbCkgPT4ge30pO1xuICAgIH1cbiAgfVxuXG4gIHNodXRkb3duKCkge1xuICAgIHRoaXMuX3NvY2tldFNodXRkb3duKCk7XG4gIH1cblxuICByZXN0YXJ0KG9uUmVzdGFydGVkOiAoKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IGFueSkgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fc29ja2V0UmVzdGFydChvblJlc3RhcnRlZCk7XG4gIH1cblxuICBfc29ja2V0U2h1dGRvd24ocmVzdGFydDogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQgPSBmYWxzZSkge1xuICAgIGNvbnN0IHJlcXVlc3RJZCA9IGBzaHV0ZG93bl8ke3Y0KCl9YDtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBfY3JlYXRlTWVzc2FnZShcInNodXRkb3duX3JlcXVlc3RcIiwgcmVxdWVzdElkKTtcblxuICAgIG1lc3NhZ2UuY29udGVudCA9IHtcbiAgICAgIHJlc3RhcnQsXG4gICAgfTtcbiAgICB0aGlzLnNoZWxsU29ja2V0LnNlbmQobmV3IE1lc3NhZ2UobWVzc2FnZSkpO1xuICB9XG5cbiAgX3NvY2tldFJlc3RhcnQoXG4gICAgb25SZXN0YXJ0ZWQ6ICgoLi4uYXJnczogQXJyYXk8YW55PikgPT4gYW55KSB8IG51bGwgfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgaWYgKHRoaXMuZXhlY3V0aW9uU3RhdGUgPT09IFwicmVzdGFydGluZ1wiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRFeGVjdXRpb25TdGF0ZShcInJlc3RhcnRpbmdcIik7XG5cbiAgICB0aGlzLl9zb2NrZXRTaHV0ZG93bih0cnVlKTtcblxuICAgIHRoaXMuX2tpbGwoKTtcblxuICAgIGNvbnN0IHsgc3Bhd24gfSA9IGxhdW5jaFNwZWNGcm9tQ29ubmVjdGlvbkluZm8oXG4gICAgICB0aGlzLmtlcm5lbFNwZWMsXG4gICAgICB0aGlzLmNvbm5lY3Rpb24sXG4gICAgICB0aGlzLmNvbm5lY3Rpb25GaWxlLFxuICAgICAgdGhpcy5vcHRpb25zXG4gICAgKTtcbiAgICB0aGlzLmtlcm5lbFByb2Nlc3MgPSBzcGF3bjtcbiAgICB0aGlzLm1vbml0b3IoKCkgPT4ge1xuICAgICAgdGhpcy5fZXhlY3V0ZVN0YXJ0dXBDb2RlKCk7XG5cbiAgICAgIGlmIChvblJlc3RhcnRlZCkge1xuICAgICAgICBvblJlc3RhcnRlZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gb25SZXN1bHRzIGlzIGEgY2FsbGJhY2sgdGhhdCBtYXkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzXG4gIC8vIGFzIHJlc3VsdHMgY29tZSBpbiBmcm9tIHRoZSBrZXJuZWxcbiAgZXhlY3V0ZShjb2RlOiBzdHJpbmcsIG9uUmVzdWx0czogUmVzdWx0c0NhbGxiYWNrKSB7XG4gICAgbG9nKFwiWk1RS2VybmVsLmV4ZWN1dGU6XCIsIGNvZGUpO1xuICAgIGNvbnN0IHJlcXVlc3RJZCA9IGBleGVjdXRlXyR7djQoKX1gO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IF9jcmVhdGVNZXNzYWdlKFwiZXhlY3V0ZV9yZXF1ZXN0XCIsIHJlcXVlc3RJZCk7XG5cbiAgICBtZXNzYWdlLmNvbnRlbnQgPSB7XG4gICAgICBjb2RlLFxuICAgICAgc2lsZW50OiBmYWxzZSxcbiAgICAgIHN0b3JlX2hpc3Rvcnk6IHRydWUsXG4gICAgICB1c2VyX2V4cHJlc3Npb25zOiB7fSxcbiAgICAgIGFsbG93X3N0ZGluOiB0cnVlLFxuICAgIH07XG4gICAgdGhpcy5leGVjdXRpb25DYWxsYmFja3NbcmVxdWVzdElkXSA9IG9uUmVzdWx0cztcbiAgICB0aGlzLnNoZWxsU29ja2V0LnNlbmQobmV3IE1lc3NhZ2UobWVzc2FnZSkpO1xuICB9XG5cbiAgY29tcGxldGUoY29kZTogc3RyaW5nLCBvblJlc3VsdHM6IFJlc3VsdHNDYWxsYmFjaykge1xuICAgIGxvZyhcIlpNUUtlcm5lbC5jb21wbGV0ZTpcIiwgY29kZSk7XG4gICAgY29uc3QgcmVxdWVzdElkID0gYGNvbXBsZXRlXyR7djQoKX1gO1xuXG4gICAgY29uc3QgbWVzc2FnZSA9IF9jcmVhdGVNZXNzYWdlKFwiY29tcGxldGVfcmVxdWVzdFwiLCByZXF1ZXN0SWQpO1xuXG4gICAgbWVzc2FnZS5jb250ZW50ID0ge1xuICAgICAgY29kZSxcbiAgICAgIHRleHQ6IGNvZGUsXG4gICAgICBsaW5lOiBjb2RlLFxuICAgICAgY3Vyc29yX3BvczoganNfaWR4X3RvX2NoYXJfaWR4KGNvZGUubGVuZ3RoLCBjb2RlKSxcbiAgICB9O1xuICAgIHRoaXMuZXhlY3V0aW9uQ2FsbGJhY2tzW3JlcXVlc3RJZF0gPSBvblJlc3VsdHM7XG4gICAgdGhpcy5zaGVsbFNvY2tldC5zZW5kKG5ldyBNZXNzYWdlKG1lc3NhZ2UpKTtcbiAgfVxuXG4gIGluc3BlY3QoY29kZTogc3RyaW5nLCBjdXJzb3JQb3M6IG51bWJlciwgb25SZXN1bHRzOiBSZXN1bHRzQ2FsbGJhY2spIHtcbiAgICBsb2coXCJaTVFLZXJuZWwuaW5zcGVjdDpcIiwgY29kZSwgY3Vyc29yUG9zKTtcbiAgICBjb25zdCByZXF1ZXN0SWQgPSBgaW5zcGVjdF8ke3Y0KCl9YDtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBfY3JlYXRlTWVzc2FnZShcImluc3BlY3RfcmVxdWVzdFwiLCByZXF1ZXN0SWQpO1xuXG4gICAgbWVzc2FnZS5jb250ZW50ID0ge1xuICAgICAgY29kZSxcbiAgICAgIGN1cnNvcl9wb3M6IGN1cnNvclBvcyxcbiAgICAgIGRldGFpbF9sZXZlbDogMCxcbiAgICB9O1xuICAgIHRoaXMuZXhlY3V0aW9uQ2FsbGJhY2tzW3JlcXVlc3RJZF0gPSBvblJlc3VsdHM7XG4gICAgdGhpcy5zaGVsbFNvY2tldC5zZW5kKG5ldyBNZXNzYWdlKG1lc3NhZ2UpKTtcbiAgfVxuXG4gIGlucHV0UmVwbHkoaW5wdXQ6IHN0cmluZykge1xuICAgIGNvbnN0IHJlcXVlc3RJZCA9IGBpbnB1dF9yZXBseV8ke3Y0KCl9YDtcblxuICAgIGNvbnN0IG1lc3NhZ2UgPSBfY3JlYXRlTWVzc2FnZShcImlucHV0X3JlcGx5XCIsIHJlcXVlc3RJZCk7XG5cbiAgICBtZXNzYWdlLmNvbnRlbnQgPSB7XG4gICAgICB2YWx1ZTogaW5wdXQsXG4gICAgfTtcbiAgICB0aGlzLnN0ZGluU29ja2V0LnNlbmQobmV3IE1lc3NhZ2UobWVzc2FnZSkpO1xuICB9XG5cbiAgb25TaGVsbE1lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSkge1xuICAgIGxvZyhcInNoZWxsIG1lc3NhZ2U6XCIsIG1lc3NhZ2UpO1xuXG4gICAgaWYgKCFfaXNWYWxpZE1lc3NhZ2UobWVzc2FnZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IG1zZ19pZCB9ID0gbWVzc2FnZS5wYXJlbnRfaGVhZGVyO1xuICAgIGxldCBjYWxsYmFjaztcblxuICAgIGlmIChtc2dfaWQpIHtcbiAgICAgIGNhbGxiYWNrID0gdGhpcy5leGVjdXRpb25DYWxsYmFja3NbbXNnX2lkXTtcbiAgICB9XG5cbiAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgIGNhbGxiYWNrKG1lc3NhZ2UsIFwic2hlbGxcIik7XG4gICAgfVxuICB9XG5cbiAgb25TdGRpbk1lc3NhZ2UobWVzc2FnZTogTWVzc2FnZSkge1xuICAgIGxvZyhcInN0ZGluIG1lc3NhZ2U6XCIsIG1lc3NhZ2UpO1xuXG4gICAgaWYgKCFfaXNWYWxpZE1lc3NhZ2UobWVzc2FnZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpbnB1dF9yZXF1ZXN0IG1lc3NhZ2VzIGFyZSBhdHRyaWJ1dGFibGUgdG8gcGFydGljdWxhciBleGVjdXRpb24gcmVxdWVzdHMsXG4gICAgLy8gYW5kIHNob3VsZCBwYXNzIHRocm91Z2ggdGhlIG1pZGRsZXdhcmUgc3RhY2sgdG8gYWxsb3cgcGx1Z2lucyB0byBzZWUgdGhlbVxuICAgIGNvbnN0IHsgbXNnX2lkIH0gPSBtZXNzYWdlLnBhcmVudF9oZWFkZXI7XG4gICAgbGV0IGNhbGxiYWNrO1xuXG4gICAgaWYgKG1zZ19pZCkge1xuICAgICAgY2FsbGJhY2sgPSB0aGlzLmV4ZWN1dGlvbkNhbGxiYWNrc1ttc2dfaWRdO1xuICAgIH1cblxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobWVzc2FnZSwgXCJzdGRpblwiKTtcbiAgICB9XG4gIH1cblxuICBvbklPTWVzc2FnZShtZXNzYWdlOiBNZXNzYWdlKSB7XG4gICAgbG9nKFwiSU8gbWVzc2FnZTpcIiwgbWVzc2FnZSk7XG5cbiAgICBpZiAoIV9pc1ZhbGlkTWVzc2FnZShtZXNzYWdlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbXNnX3R5cGUgfSA9IG1lc3NhZ2UuaGVhZGVyO1xuXG4gICAgaWYgKG1zZ190eXBlID09PSBcInN0YXR1c1wiKSB7XG4gICAgICBjb25zdCBzdGF0dXMgPSBtZXNzYWdlLmNvbnRlbnQuZXhlY3V0aW9uX3N0YXRlO1xuICAgICAgdGhpcy5zZXRFeGVjdXRpb25TdGF0ZShzdGF0dXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbXNnX2lkIH0gPSBtZXNzYWdlLnBhcmVudF9oZWFkZXI7XG4gICAgbGV0IGNhbGxiYWNrO1xuXG4gICAgaWYgKG1zZ19pZCkge1xuICAgICAgY2FsbGJhY2sgPSB0aGlzLmV4ZWN1dGlvbkNhbGxiYWNrc1ttc2dfaWRdO1xuICAgIH1cblxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2sobWVzc2FnZSwgXCJpb3B1YlwiKTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIGxvZyhcIlpNUUtlcm5lbDogZGVzdHJveTpcIiwgdGhpcyk7XG4gICAgdGhpcy5zaHV0ZG93bigpO1xuXG4gICAgdGhpcy5fa2lsbCgpO1xuXG4gICAgZnMudW5saW5rU3luYyh0aGlzLmNvbm5lY3Rpb25GaWxlKTtcbiAgICB0aGlzLnNoZWxsU29ja2V0LmNsb3NlKCk7XG4gICAgdGhpcy5pb1NvY2tldC5jbG9zZSgpO1xuICAgIHRoaXMuc3RkaW5Tb2NrZXQuY2xvc2UoKTtcbiAgICBzdXBlci5kZXN0cm95KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2lzVmFsaWRNZXNzYWdlKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcbiAgaWYgKCFtZXNzYWdlKSB7XG4gICAgbG9nKFwiSW52YWxpZCBtZXNzYWdlOiBudWxsXCIpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghbWVzc2FnZS5jb250ZW50KSB7XG4gICAgbG9nKFwiSW52YWxpZCBtZXNzYWdlOiBNaXNzaW5nIGNvbnRlbnRcIik7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG1lc3NhZ2UuY29udGVudC5leGVjdXRpb25fc3RhdGUgPT09IFwic3RhcnRpbmdcIikge1xuICAgIC8vIEtlcm5lbHMgc2VuZCBhIHN0YXJ0aW5nIHN0YXR1cyBtZXNzYWdlIHdpdGggYW4gZW1wdHkgcGFyZW50X2hlYWRlclxuICAgIGxvZyhcIkRyb3BwZWQgc3RhcnRpbmcgc3RhdHVzIElPIG1lc3NhZ2VcIik7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFtZXNzYWdlLnBhcmVudF9oZWFkZXIpIHtcbiAgICBsb2coXCJJbnZhbGlkIG1lc3NhZ2U6IE1pc3NpbmcgcGFyZW50X2hlYWRlclwiKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIW1lc3NhZ2UucGFyZW50X2hlYWRlci5tc2dfaWQpIHtcbiAgICBsb2coXCJJbnZhbGlkIG1lc3NhZ2U6IE1pc3NpbmcgcGFyZW50X2hlYWRlci5tc2dfaWRcIik7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCFtZXNzYWdlLnBhcmVudF9oZWFkZXIubXNnX3R5cGUpIHtcbiAgICBsb2coXCJJbnZhbGlkIG1lc3NhZ2U6IE1pc3NpbmcgcGFyZW50X2hlYWRlci5tc2dfdHlwZVwiKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIW1lc3NhZ2UuaGVhZGVyKSB7XG4gICAgbG9nKFwiSW52YWxpZCBtZXNzYWdlOiBNaXNzaW5nIGhlYWRlclwiKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoIW1lc3NhZ2UuaGVhZGVyLm1zZ19pZCkge1xuICAgIGxvZyhcIkludmFsaWQgbWVzc2FnZTogTWlzc2luZyBoZWFkZXIubXNnX2lkXCIpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICghbWVzc2FnZS5oZWFkZXIubXNnX3R5cGUpIHtcbiAgICBsb2coXCJJbnZhbGlkIG1lc3NhZ2U6IE1pc3NpbmcgaGVhZGVyLm1zZ190eXBlXCIpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBfZ2V0VXNlcm5hbWUoKSB7XG4gIHJldHVybiAoXG4gICAgcHJvY2Vzcy5lbnYuTE9HTkFNRSB8fFxuICAgIHByb2Nlc3MuZW52LlVTRVIgfHxcbiAgICBwcm9jZXNzLmVudi5MTkFNRSB8fFxuICAgIHByb2Nlc3MuZW52LlVTRVJOQU1FXG4gICk7XG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVNZXNzYWdlKG1zZ1R5cGU6IHN0cmluZywgbXNnSWQ6IHN0cmluZyA9IHY0KCkpIHtcbiAgY29uc3QgbWVzc2FnZSA9IHtcbiAgICBoZWFkZXI6IHtcbiAgICAgIHVzZXJuYW1lOiBfZ2V0VXNlcm5hbWUoKSxcbiAgICAgIHNlc3Npb246IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICBtc2dfdHlwZTogbXNnVHlwZSxcbiAgICAgIG1zZ19pZDogbXNnSWQsXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgdmVyc2lvbjogXCI1LjBcIixcbiAgICB9LFxuICAgIG1ldGFkYXRhOiB7fSxcbiAgICBwYXJlbnRfaGVhZGVyOiB7fSxcbiAgICBjb250ZW50OiB7fSxcbiAgfTtcbiAgcmV0dXJuIG1lc3NhZ2U7XG59XG4iXX0= \ No newline at end of file