commit 0f5229a55f1fdd0e8c892a72766b4d9d7202637f Author: cyip92 <4493131+cyip92@users.noreply.github.com> Date: Wed Oct 16 08:40:32 2024 +0000 Deploying to gh-pages from @ IvarK/AntimatterDimensionsSourceCode@b813542c2f77501d0b8d07ae8b0044df2a994e86 🚀 diff --git a/about.html b/about.html new file mode 100644 index 000000000..bf629971c --- /dev/null +++ b/about.html @@ -0,0 +1,29 @@ + +
+0xF400 | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | +
0xF410 | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | +
0xF420 | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | +
0xF430 | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | + | +
You have {{ format(depression, 2) }} depression
+antimatter, infinity, time, active, passive, idle, light, dark\n A variable name may be used in place of the entire Time Study list as well (see the definition panel),\n although in that case the shorthand ranges and aliases are not allowed.`\n }]\n }],\n examples: [\"studies nowait purchase 11,21,31\", \"studies purchase 11-62, antimatter, 111, idle\", \"studies nowait purchase ec6Studies\"]\n }, {\n id: 3,\n isUnlocked: () => true,\n keyword: \"PRESTIGE\",\n category: 1,\n syntax: `\n infinity [nowait]
commands\n }`,\n description: `Defines an inner block of block of the automator script which will only be executed if the specified\n comparison is true when this line is reached. If the comparison is false, the automator will instead skip to the\n first line after the block and continue execution from there.`,\n examples: [\"if ec10 completions < 5\", \"if ep > 1e6000\"]\n }, {\n id: 14,\n isUnlocked: () => true,\n keyword: \"UNTIL\",\n category: 4,\n syntax: `until comparison {
commands\n }
commands\n }`,\n description: `Defines an inner block of the script where commands are repeated; the comparison is checked at the\n start and every time the loop repeats. If the condition is true when the UNTIL statement is first reached, the\n inner block of commands will be skipped entirely.\n
commands\n }`,\n description: `Defines an inner block of the script where commands are repeated; the comparison is checked at the\n start and every time the loop repeats. If the condition is false when the WHILE statement is first reached, the\n inner block of commands will be skipped entirely.`,\n examples: [`while ep < 1e500`, `while myThreshold > am`]\n }, {\n id: 16,\n isUnlocked: () => true,\n keyword: \"STOP\",\n category: 4,\n syntax: `stop`,\n description: `When the Automator runs this line, it will stop execution as if you clicked the\n button on the control panel in the top-left of the Automator. This\n does not need to be placed at the end of every script in order to stop them, as turning off the\n option on the left panel will do this automatically.\n This command may be useful when used inside of an IF command, in order to stop execution\n only under certain conditions.`,\n examples: [`stop`]\n }, {\n id: 17,\n isUnlocked: () => true,\n keyword: \"Currency List\",\n category: 4,\n syntax: \"You can use these in any IF, WHILE, UNTIL, or WAIT command\",\n description: () => {\n const filterText = EffarigUnlock.glyphFilter.isUnlocked ? `filter score - Glyph filter score of the Glyph which your filter will select this Reality
inner_commands\n }`,\n description: `Some commands are associated with an \"inner block\" of commands. This inner block can contain still\n contain any other valid command, but may or may not actually get executed based on what the state of the game is\n when header_command is executed. This allows you to repeat some commands over and over (eg. Time Study\n purchasing), or to skip them entirely (eg. not entering an EC if it already has full completions). These blocks\n can be nested if desired, with inner blocks being placed within one another.\n
\n unlock ec10\n }`, `until ep > 1e8 {
\n start ec10
\n studies nowait purchase 11-62\n }`]\n }],\n otherAutomatorPoints: [{\n name: \"Reality Count\",\n automatorPoints: () => 2 * Math.clampMax(Currency.realities.value, 50),\n shortDescription: () => `+${formatInt(2)} per Reality, up to ${formatInt(50)} Realities`,\n symbol: \"Ϟ\"\n }, {\n name: \"Black Hole\",\n automatorPoints: () => BlackHole(1).isUnlocked ? 10 : 0,\n shortDescription: () => `Unlocking gives ${formatInt(10)} AP`,\n symbol: \"\"\n }],\n templates: _script_templates__WEBPACK_IMPORTED_MODULE_0__.automatorTemplates\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L2F1dG9tYXRvci5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBRU8sTUFBTUMsU0FBUyxHQUFHO0FBQ3ZCQyxFQUFBQSxhQUFhLEVBQUUsQ0FDYixjQURhLEVBRWIsZ0JBRmEsRUFHYixnQkFIYSxFQUliLGFBSmEsRUFLYixhQUxhLENBRFE7QUFRdkJDLEVBQUFBLFFBQVEsRUFBRSxDQUNSO0FBQ0VDLElBQUFBLEVBQUUsRUFBRSxDQUROO0FBRUVDLElBQUFBLFVBQVUsRUFBRSxNQUFNLElBRnBCO0FBR0VDLElBQUFBLE9BQU8sRUFBRSxnQkFIWDtBQUlFQyxJQUFBQSxRQUFRLEVBQUUsQ0FKWjtBQUtFQyxJQUFBQSxNQUFNLEVBQUcsdUJBTFg7QUFNRUMsSUFBQUEsV0FBVyxFQUFHO0FBQ3BCO0FBQ0EsK0dBUkk7QUFTRUMsSUFBQUEsUUFBUSxFQUFFLENBQ1AsZ0JBRE87QUFUWixHQURRLEVBY1I7QUFDRU4sSUFBQUEsRUFBRSxFQUFFLENBRE47QUFFRUMsSUFBQUEsVUFBVSxFQUFFLE1BQU0sSUFGcEI7QUFHRUMsSUFBQUEsT0FBTyxFQUFFLGNBSFg7QUFJRUMsSUFBQUEsUUFBUSxFQUFFLENBSlo7QUFLRUMsSUFBQUEsTUFBTSxFQUFHO0FBQ2YsNkRBTkk7QUFPRUMsSUFBQUEsV0FBVyxFQUFHLHVGQVBoQjtBQVFFRSxJQUFBQSxRQUFRLEVBQUUsQ0FDUjtBQUNFQyxNQUFBQSxJQUFJLEVBQUUsUUFEUjtBQUVFQyxNQUFBQSxLQUFLLEVBQUUsQ0FDTDtBQUNFQyxRQUFBQSxNQUFNLEVBQUUsZUFEVjtBQUVFTCxRQUFBQSxXQUFXLEVBQUc7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFOWSxPQURLLEVBU0w7QUFDRUssUUFBQUEsTUFBTSxFQUFFLGlCQURWO0FBRUVMLFFBQUFBLFdBQVcsRUFBRztBQUM1QjtBQUNBO0FBSlksT0FUSyxFQWVMO0FBQ0VLLFFBQUFBLE1BQU0sRUFBRSxhQURWO0FB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QUFJRUMsSUFBQUEsTUFBTSxFQUFFO0FBSlYsR0FEb0IsRUFPcEI7QUFDRXBCLElBQUFBLElBQUksRUFBRSxZQURSO0FBRUVZLElBQUFBLGVBQWUsRUFBRSxNQUFPVCxTQUFTLENBQUMsQ0FBRCxDQUFULENBQWFWLFVBQWIsR0FBMEIsRUFBMUIsR0FBK0IsQ0FGekQ7QUFHRXlCLElBQUFBLGdCQUFnQixFQUFFLE1BQU8sbUJBQWtCQyxTQUFTLENBQUMsRUFBRCxDQUFLLEtBSDNEO0FBSUVDLElBQUFBLE1BQU0sRUFBRTtBQUpWLEdBUG9CLENBOW1CQztBQTRuQnZCQyxFQUFBQSxTQUFTLEVBQUVqQyxpRUFBa0JBO0FBNW5CTixDQUFsQiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jb3JlL3NlY3JldC1mb3JtdWxhL3JlYWxpdHkvYXV0b21hdG9yLmpzP2E2NGEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXV0b21hdG9yVGVtcGxhdGVzIH0gZnJvbSBcIi4uL3NjcmlwdC10ZW1wbGF0ZXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBhdXRvbWF0b3IgPSB7XHJcbiAgY2F0ZWdvcnlOYW1lczogW1xyXG4gICAgXCJUaW1lIFN0dWRpZXNcIixcclxuICAgIFwiRXZlbnQgVHJpZ2dlcnNcIixcclxuICAgIFwiQWx0ZXIgU2V0dGluZ3NcIixcclxuICAgIFwiSW5mb3JtYXRpb25cIixcclxuICAgIFwiU2NyaXB0IEZsb3dcIixcclxuICBdLFxyXG4gIGNvbW1hbmRzOiBbXHJcbiAgICB7XHJcbiAgICAgIGlkOiAwLFxyXG4gICAgICBpc1VubG9ja2VkOiAoKSA9PiB0cnVlLFxyXG4gICAgICBrZXl3b3JkOiBcIlNUVURJRVMgUkVTUEVDXCIsXHJcbiAgICAgIGNhdGVnb3J5OiAwLFxyXG4gICAgICBzeW50YXg6IGA8Yj5zdHVkaWVzIHJlc3BlYzwvYj5gLFxyXG4gICAgICBkZXNjcmlwdGlvbjogYFRoaXMgY29tbWFuZCB0dXJucyBvbiB0aGUgcmVzcGVjIG9wdGlvbiwgd2hpY2ggd2lsbCByZXNwZWMgeW91ciBUaW1lIFN0dWRpZXMgb24gdGhlIG5leHQgbWFudWFsIG9yXHJcbiAgICAgICAgYXV0b21hdGljIEV0ZXJuaXR5LiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBhY3R1YWxseSBwZXJmb3JtIGFuIEV0ZXJuaXR5IG9uIGl0cyBvd247IG1ha2Ugc3VyZSB5b3VyIEF1dG9idXllclxyXG4gICAgICAgIGlzIG9uIG9yIHlvdSBtYW51YWxseSBydW4gdGhlIEVURVJOSVRZIGNvbW1hbmQgKGFsdGhvdWdoIEVURVJOSVRZIGhhcyBpdHMgb3duIGJ1aWx0LWluIHJlc3BlYyBvcHRpb24pLmAsXHJcbiAgICAgIGV4YW1wbGVzOiBbXHJcbiAgICAgICAgYHN0dWRpZXMgcmVzcGVjYCxcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDEsXHJcbiAgICAgIGlzVW5sb2NrZWQ6ICgpID0+IHRydWUsXHJcbiAgICAgIGtleXdvcmQ6IFwiU1RVRElFUyBMT0FEXCIsXHJcbiAgICAgIGNhdGVnb3J5OiAwLFxyXG4gICAgICBzeW50YXg6IGA8Yj5zdHVkaWVzPC9iPiBbbm93YWl0XSA8Yj5sb2FkIGlkPC9iPiA8dT5zZWxlY3RvcjwvdT48YnI+XHJcbiAgICAgICAgPGI+c3R1ZGllczwvYj4gW25vd2FpdF0gPGI+bG9hZCBuYW1lPC9iPiA8dT5uYW1lPC91PmAsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBgTG9hZHMgYSBUaW1lIFN0dWR5IHByZXNldCwgYXMgaWYgeW91IGhhZCBjbGlja2VkIG9uIHRoZSBidXR0b24gaW4gdGhlIFRpbWUgU3R1ZHkgdGFiLmAsXHJcbiAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogXCJJTlBVVFNcIixcclxuICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBoZWFkZXI6IFwiPGk+bm93YWl0PC9pPlwiLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgXHJcbiAgICAgICAgICAgICAgICBJZiBwcmVzZW50LCB0aGUgQXV0b21hdG9yIHdpbGwgcHVyY2hhc2UgYXMgbWFueSBzdHVkaWVzIGFzIHBvc3NpYmxlIGJlZm9yZSBjb250aW51aW5nIG9ud2FyZC4gQnkgZGVmYXVsdFxyXG4gICAgICAgICAgICAgICAgKGllLiB3aXRob3V0IFwibm93YWl0XCIpIHRoaXMgY29tbWFuZCB3aWxsIHJlcGVhdCB0aGlzIGxpbmUgaW5kZWZpbml0ZWx5IHVudGlsIGFsbCBvZiB0aGUgc3R1ZGllcyBpbiB0aGVcclxuICAgICAgICAgICAgICAgIHByZXNldCBhcmUgYm91Z2h0OyB0aGlzIG1heSBjYXVzZSB0aGUgQXV0b21hdG9yIHRvIGdldCBzdHVjayBpbmRlZmluaXRlbHkgaWYgeW91IGFyZSBub3QgY2FyZWZ1bC5cclxuICAgICAgICAgICAgICBgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBoZWFkZXI6IFwiPGk+c2VsZWN0b3I8L2k+XCIsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcclxuICAgICAgICAgICAgICAgIEZpbmRzIGFuZCBsb2FkcyB0aGUgc3BlY2lmaWVkIFRpbWUgU3R1ZHkgcHJlc2V0IGJ5IGl0cyBzbG90IG51bWJlci4gVGhpcyBpcyBudW1iZXJlZCBvbmUgdGhyb3VnaCBzaXgsXHJcbiAgICAgICAgICAgICAgICBvcmRlcmVkIGZyb20gbGVmdCB0byByaWdodC5gXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBoZWFkZXI6IFwiPGk+bmFtZTwvaT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJGaW5kcyBhbmQgbG9hZHMgdGhlIHNwZWNpZmllZCBUaW1lIFN0dWR5IHByZXNldCBieSBpdHMgZ2l2ZW4gbmFtZS4gVGhpcyBpcyBjYXNlLXNlbnNpdGl2ZS5cIlxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgZXhhbXBsZXM6IFtcclxuICAgICAgICBgc3R1ZGllcyBsb2FkIGlkIDJgLFxyXG4gICAgICAgIGBzdHVkaWVzIGxvYWQgbmFtZSBBTlRJYCxcclxuICAgICAgICBgc3R1ZGllcyBub3dhaXQgbG9hZCBuYW1lIGRpbGAsXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAyLFxyXG4gICAgICBpc1VubG9ja2VkOiAoKSA9PiB0cnVlLFxyXG4gICAgICBrZXl3b3JkOiBcIlNUVURJRVMgUFVSQ0hBU0VcIixcclxuICAgICAgY2F0ZWdvcnk6IDAsXHJcbiAgICAgIHN5bnRheDogYDxiPnN0dWRpZXM8L2I+IFtub3dhaXRdIDxiPnB1cmNoYXNlIDx1PnN0dWR5X2xpc3Q8L3U+PC9iPmAsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlB1cmNoYXNlIFRpbWUgU3R1ZGllcyBzcGVjaWZpZWQgZnJvbSBhIGxpc3Qgb2YgVGltZSBTdHVkaWVzLlwiLFxyXG4gICAgICBzZWN0aW9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6IFwiSU5QVVRTXCIsXHJcbiAgICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyOiBcIjxpPm5vd2FpdDwvaT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFxyXG4gICAgICAgICAgICAgICAgSWYgcHJlc2VudCwgdGhlIEF1dG9tYXRvciB3aWxsIHB1cmNoYXNlIGFzIG1hbnkgc3R1ZGllcyBhcyBwb3NzaWJsZSBiZWZvcmUgY29udGludWluZyBvbndhcmQuIEJ5IGRlZmF1bHRcclxuICAgICAgICAgICAgICAgIChpZS4gd2l0aG91dCBcIm5vd2FpdFwiKSB0aGlzIGNvbW1hbmQgd2lsbCByZXBlYXQgdGhpcyBsaW5lIGluZGVmaW5pdGVseSB1bnRpbCBhbGwgb2YgdGhlIHN0dWRpZXMgaW4gdGhlXHJcbiAgICAgICAgICAgICAgICBwcmVzZXQgYXJlIGJvdWdodDsgdGhpcyBtYXkgY2F1c2UgdGhlIEF1dG9tYXRvciB0byBnZXQgc3R1Y2sgaW5kZWZpbml0ZWx5IGlmIHlvdSBhcmUgbm90IGNhcmVmdWwuXHJcbiAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyOiBcIjxpPnN0dWR5X2xpc3Q8L2k+XCIsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcclxuICAgICAgICAgICAgICAgIFRoZSBleHBvcnRlZCBUaW1lIFN0dWR5IHRyZWUgZm9ybWF0IGlzIHN1cHBvcnRlZCBoZXJlLCB3aGljaCBpcyBzaW1wbHkgYSBsaXN0IG9mIFRpbWUgU3R1ZHkgSURzXHJcbiAgICAgICAgICAgICAgICBzZXBhcmF0ZWQgYnkgY29tbWFzLiBUaGlzIGNvbW1hbmQgYWxzbyBzdXBwb3J0cyBhIG1vcmUgZmxleGlibGUgZm9ybWF0dGluZywgYWRkaXRpb25hbGx5IGFsbG93aW5nXHJcbiAgICAgICAgICAgICAgICByYW5nZXMgb2Ygc3R1ZGllcyAoZm9yIGV4YW1wbGUsIDx1PjExLTYyPC91PikgYW5kIHRoZSBmb2xsb3dpbmcgYWxpYXNlczo8YnI+XHJcbiAgICAgICAgICAgICAgICA8YmxvY2txdW90ZT48Yj5hbnRpbWF0dGVyLCBpbmZpbml0eSwgdGltZSwgYWN0aXZlLCBwYXNzaXZlLCBpZGxlLCBsaWdodCwgZGFyazwvYj48L2Jsb2NrcXVvdGU+XHJcbiAgICAgICAgICAgICAgICBBIHZhcmlhYmxlIG5hbWUgbWF5IGJlIHVzZWQgaW4gcGxhY2Ugb2YgdGhlIGVudGlyZSBUaW1lIFN0dWR5IGxpc3QgYXMgd2VsbCAoc2VlIHRoZSBkZWZpbml0aW9uIHBhbmVsKSxcclxuICAgICAgICAgICAgICAgIGFsdGhvdWdoIGluIHRoYXQgY2FzZSB0aGUgc2hvcnRoYW5kIHJhbmdlcyBhbmQgYWxpYXNlcyBhcmUgbm90IGFsbG93ZWQuYFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgZXhhbXBsZXM6IFtcclxuICAgICAgICBcInN0dWRpZXMgbm93YWl0IHB1cmNoYXNlIDExLDIxLDMxXCIsXHJcbiAgICAgICAgXCJzdHVkaWVzIHB1cmNoYXNlIDExLTYyLCBhbnRpbWF0dGVyLCAxMTEsIGlkbGVcIixcclxuICAgICAgICBcInN0dWRpZXMgbm93YWl0IHB1cmNoYXNlIGVjNlN0dWRpZXNcIixcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDMsXHJcbiAgICAgIGlzVW5sb2NrZWQ6ICgpID0+IHRydWUsXHJcbiAgICAgIGtleXdvcmQ6IFwiUFJFU1RJR0VcIixcclxuICAgICAgY2F0ZWdvcnk6IDEsXHJcbiAgICAgIHN5bnRheDogYFxyXG4gICAgICAgIDxiPmluZmluaXR5PC9iPiBbbm93YWl0XTxicj5cclxuICAgICAgICA8Yj5ldGVybml0eTwvYj4gW25vd2FpdF0gW3Jlc3BlY108YnI+XHJcbiAgICAgICAgPGI+cmVhbGl0eTwvYj4gW25vd2FpdF0gW3Jlc3BlY11gLFxyXG4gICAgICBkZXNjcmlwdGlvbjogYFRyaWdnZXJzIGFuIEluZmluaXR5LCBFdGVybml0eSwgb3IgUmVhbGl0eSByZXNldCBpZiBwb3NzaWJsZSwgb3RoZXJ3aXNlIHRoZSBhdXRvbWF0b3Igd2lsbCB3YWl0IGF0XHJcbiAgICAgICAgdGhpcyBjb21tYW5kIHVudGlsIGl0IGJlY29tZXMgcG9zc2libGUuIElmIHlvdSBmaW5kIHRoYXQgeW91ciBzY3JpcHQgb2Z0ZW4gZ2V0cyBzdHVjayBvbiB0aGlzIGNvbW1hbmQsIGFuXHJcbiAgICAgICAgQXV0b2J1eWVyIG1heSBiZSB0cmlnZ2VyaW5nIGEgcHJlc3RpZ2UgYmVmb3JlIHRoZSBBdXRvbWF0b3IgcmVhY2hlcyB0aGlzIGxpbmUgLSBjb25zaWRlciB1c2luZyA8aT5ub3dhaXQ8L2k+IG9yXHJcbiAgICAgICAgYWRqdXN0aW5nIHlvdXIgQXV0b2J1eWVyIHNldHRpbmdzIHVzaW5nIEFVVE8uYCxcclxuICAgICAgc2VjdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiBcIk1PRElGSUVSU1wiLFxyXG4gICAgICAgICAgaXRlbXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8aT5ub3dhaXQ8L2k+XCIsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcclxuICAgICAgICAgICAgICAgIElmIHByZXNlbnQsIHRoZSBBdXRvbWF0b3Igd2lsbCBtb3ZlIG9uIHRvIHRoZSBuZXh0IGNvbW1hbmQgaW5zdGVhZCBvZiByZXBlYXRlZGx5IHRyeWluZyBvbiB0aGlzXHJcbiAgICAgICAgICAgICAgICBjb21tYW5kIGluIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHByZXN0aWdlIGlzIG5vdCBwb3NzaWJsZSAoZWcuIHdpdGhpbiBhbiBFQyBiZWxvdyB0aGUgZ29hbCkuXHJcbiAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyOiBcIjxpPnJlc3BlYzwvaT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFxyXG4gICAgICAgICAgICAgICAgRm9yIG5vbi1JbmZpbml0eSBwcmVzdGlnZXMsIGFsc28gZG9lcyB0aGUgcmVsYXRlZCByZXNwZWMgYWN0aW9uIHdoZW4gdHJpZ2dlcmluZyBwcmVzdGlnZS5cclxuICAgICAgICAgICAgICAgIEV0ZXJuaXR5OiBSZXNwZWMgVGltZSBTdHVkaWVzIGFuZCBFdGVybml0eS48YnI+XHJcbiAgICAgICAgICAgICAgICBSZWFsaXR5OiBVbmVxdWlwIEdseXBocyBhbmQgUmVhbGl0eS5cclxuICAgICAgICAgICAgICBgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBleGFtcGxlczogW1xyXG4gICAgICAgIFwiaW5maW5pdHlcIixcclxuICAgICAgICBcImV0ZXJuaXR5IHJlc3BlY1wiLFxyXG4gICAgICAgIFwicmVhbGl0eSBub3dhaXRcIixcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDQsXHJcbiAgICAgIGlzVW5sb2NrZWQ6ICgpID0+IHRydWUsXHJcbiAgICAgIGtleXdvcmQ6IFwiVU5MT0NLXCIsXHJcbiAgICAgIGNhdGVnb3J5OiAxLFxyXG4gICAgICBzeW50YXg6IFwiPGI+dW5sb2NrPC9iPiBbbm93YWl0XSA8dT5mZWF0dXJlPC91PlwiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogXCJVbmxvY2tzIHRoZSBzcGVjaWZpZWQgRXRlcm5pdHkgQ2hhbGxlbmdlIG9yIFRpbWUgRGlsYXRpb24uXCIsXHJcbiAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogXCJNT0RJRklFUlNcIixcclxuICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBoZWFkZXI6IFwiPGk+bm93YWl0PC9pPlwiLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgXHJcbiAgICAgICAgICAgICAgICBJZiBwcmVzZW50LCB0aGUgQXV0b21hdG9yIHdpbGwgbW92ZSBvbiB0byB0aGUgbmV4dCBjb21tYW5kIGV2ZW4gaWYgdW5sb2NraW5nIHRoZSBmZWF0dXJlIGZhaWxzLiBCeVxyXG4gICAgICAgICAgICAgICAgZGVmYXVsdCwgdGhlIEF1dG9tYXRvciB3aWxsIGtlZXAgcnVubmluZyB0aGlzIGNvbW1hbmQgdW50aWwgdGhlIHVubG9jayBzdWNjZWVkcy5cclxuICAgICAgICAgICAgICBgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBleGFtcGxlczogW1xyXG4gICAgICAgIFwidW5sb2NrIGRpbGF0aW9uXCIsXHJcbiAgICAgICAgXCJ1bmxvY2sgZWM3XCJcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDUsXHJcbiAgICAgIGlzVW5sb2NrZWQ6ICgpID0+IHRydWUsXHJcbiAgICAgIGtleXdvcmQ6IFwiU1RBUlRcIixcclxuICAgICAgY2F0ZWdvcnk6IDEsXHJcbiAgICAgIHN5bnRheDogYFxyXG4gICAgICAgIDxiPnN0YXJ0PC9iPiBlYzx1Pk48L3U+PGJyPlxyXG4gICAgICAgIDxiPnN0YXJ0PC9iPiBkaWxhdGlvbmAsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBgU3RhcnQgYSBzcGVjaWZpZWQgRXRlcm5pdHkgQ2hhbGxlbmdlIG9yIGEgRGlsYXRlZCBFdGVybml0eS4gVGhpcyBjb21tYW5kIHdpbGwgYWxzbyBhdHRlbXB0XHJcbiAgICAgICAgdG8gdW5sb2NrIHRoZSBFQyBpZiBub3QgdW5sb2NrZWQsIGJ1dCB3aWxsIG5vdCBkbyB0aGUgc2FtZSBmb3IgRGlsYXRpb24gKHVzZSBVTkxPQ0sgY29tbWFuZCB0byBkbyB0aGF0KS5cclxuICAgICAgICBJZiB5b3UgYXJlIGFscmVhZHkgaW4gdGhlIHNwZWNpZmllZCBFQyBvciBEaWxhdGVkIEV0ZXJuaXR5LCBydW5uaW5nIHRoaXMgY29tbWFuZCBhZ2FpbiB3aWxsIGRvIG5vdGhpbmc7XHJcbiAgICAgICAgb3RoZXJ3aXNlLCB0aGUgQXV0b21hdG9yIHdpbGwga2VlcCBhdHRlbXB0aW5nIHRvIHN0YXJ0IHRoZSBFdGVybml0eSB1bnRpbCBpdCBzdWNjZWVkcy5gLFxyXG4gICAgICBleGFtcGxlczogW1xyXG4gICAgICAgIFwic3RhcnQgZWMxMlwiLFxyXG4gICAgICAgIFwic3RhcnQgZGlsYXRpb25cIlxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogNixcclxuICAgICAgaXNVbmxvY2tlZDogKCkgPT4gdHJ1ZSxcclxuICAgICAga2V5d29yZDogXCJBVVRPXCIsXHJcbiAgICAgIGNhdGVnb3J5OiAyLFxyXG4gICAgICBzeW50YXg6IGA8Yj5hdXRvIGluZmluaXR5PC9iPiBbc2V0dGluZ108YnI+XHJcbiAgICAgICAgPGI+YXV0byBldGVybml0eTwvYj4gW3NldHRpbmddPGJyPlxyXG4gICAgICAgIDxiPmF1dG8gcmVhbGl0eTwvYj4gW3NldHRpbmddYCxcclxuICAgICAgZGVzY3JpcHRpb246IGBUdXJucyBwcmVzdGlnZSBBdXRvYnV5ZXJzIG9uIG9yIG9mZiBhbmQgYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlaXIgc2V0dGluZ3MuIElmIHRoZSBzZXR0aW5nIG9wdGlvblxyXG4gICAgICAgIGlzIG5vdCBwcmVzZW50LCB0aGlzIGNvbW1hbmQgd2lsbCB0b2dnbGUgdGhlIEF1dG9idXllciBzdGF0ZSwgdHVybmluZyBpdCBvZmYgaWYgaXQgaXMgb24gYW5kIHR1cm5pbmcgaXQgb24gaWZcclxuICAgICAgICBpdCBpcyBvZmYuIDxiPlRoaXMgY29tbWFuZCB3aWxsIG5vdCB3b3JrIGlmIHlvdSB0cnkgdG8gbW9kaWZ5IGFuIEF1dG9idXllciBvciBzZXR0aW5nIHlvdSBkbyBub3QgaGF2ZS48L2I+YCxcclxuICAgICAgc2VjdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiBcIlNFVFRJTkdTXCIsXHJcbiAgICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyOiBcIjxpPm9uPC9pPiB8IDxpPm9mZjwvaT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUdXJucyBzcGVjaWZpZWQgQXV0b2J1eWVyIG9uIG9yIG9mZi5cIixcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8dT48aT5udW1iZXI8L2k+PC91PiA8dT48aT50aW1lIHVuaXRzPC9pPjwvdT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFVzYWJsZSB3aXRoIEluZmluaXR5IGFuZCBFdGVybml0eSBvbmx5LlxyXG4gICAgICAgICAgICAgICAgVHVybnMgdGhlIEF1dG9idXllciBvbiBhbmQgc2V0IGl0IHRvIHRyaWdnZXIgYXQgdGhlIGdpdmVuIGludGVydmFsLmBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8dT48aT5udW1iZXI8L2k+PC91PiB4IGhpZ2hlc3RcIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFVzYWJsZSB3aXRoIEluZmluaXR5IGFuZCBFdGVybml0eSBvbmx5LiBUdXJucyB0aGUgQXV0b2J1eWVyIG9uIGFuZCBzZXRzIGl0IHRvXHJcbiAgICAgICAgICAgICAgICBcIlggdGltZXMgaGlnaGVzdFwiIG1vZGUuYFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyOiBcIjxpPjx1Pm51bWJlcjwvdT4gPHU+Y3VycmVuY3k8L3U+PC9pPlwiLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgVHVybnMgdGhlIEF1dG9idXllciBvbiBhbmQgc2V0cyBpdCB0byB0cmlnZ2VyIGF0IGEgc3BlY2lmaWMgYW1vdW50LiBUaGUgY3VycmVuY3kgbXVzdFxyXG4gICAgICAgICAgICAgICAgbWF0Y2ggdGhlIGF1dG9idXllciB0eXBlIChJUCwgRVAsIG9yIFJNKS4gVGhpcyB3aWxsIHNlbGVjdCBcIlJlYWxpdHkgTWFjaGluZXNcIiBtb2RlIGZvciB0aGUgUmVhbGl0eVxyXG4gICAgICAgICAgICAgICAgQXV0b2J1eWVyLiBHbHlwaCBMZXZlbCBtb2RlIGNhbm5vdCBiZSBjaGFuZ2VkIG9yIHNldCB2aWEgdGhlIEF1dG9tYXRvciwgb25seSBtYW51YWxseS5gLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgZXhhbXBsZXM6IFtcclxuICAgICAgICBcImF1dG8gaW5maW5pdHkgb25cIixcclxuICAgICAgICBcImF1dG8gZXRlcm5pdHkgb2ZmXCIsXHJcbiAgICAgICAgXCJhdXRvIGluZmluaXR5IDMwc1wiLFxyXG4gICAgICAgIFwiYXV0byBldGVybml0eSAxMCBzZWNvbmRzXCIsXHJcbiAgICAgICAgXCJhdXRvIGV0ZXJuaXR5IDFlMTAwIHggaGlnaGVzdFwiXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiA3LFxyXG4gICAgICBpc1VubG9ja2VkOiAoKSA9PiBCbGFja0hvbGUoMSkuaXNVbmxvY2tlZCxcclxuICAgICAga2V5d29yZDogXCJCTEFDSyBIT0xFXCIsXHJcbiAgICAgIGNhdGVnb3J5OiAyLFxyXG4gICAgICBzeW50YXg6IFwiPGI+YmxhY2sgaG9sZTwvYj4gPHU+c3RhdGU8L3U+XCIsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBgVG9nZ2xlcyB0aGUgc3BlZWR1cCBlZmZlY3QgZnJvbSB0aGUgQmxhY2sgSG9sZSBvbiBvciBvZmYuIFR1cm5pbmcgdGhlIEJsYWNrIEhvbGUgb24gdmlhIHRoZVxyXG4gICAgICAgIEF1dG9tYXRvciBkb2VzIG5vdCBieXBhc3MgdGhlIGdyYWR1YWwgYWNjZWxlcmF0aW9uIGZyb20gb2ZmIHRvIG1heCBzcGVlZCB3aGljaCBvY2N1cnMgYmVmb3JlIHRoZXkgYXJlXHJcbiAgICAgICAgcGVybWFuZW50LmAsXHJcbiAgICAgIGV4YW1wbGVzOiBbXHJcbiAgICAgICAgXCJibGFjayBob2xlIG9uXCIsXHJcbiAgICAgICAgXCJibGFjayBob2xlIG9mZlwiLFxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogOCxcclxuICAgICAgaXNVbmxvY2tlZDogKCkgPT4gRW5zbGF2ZWQuaXNVbmxvY2tlZCxcclxuICAgICAga2V5d29yZDogXCJTVE9SRSBHQU1FIFRJTUVcIixcclxuICAgICAgY2F0ZWdvcnk6IDIsXHJcbiAgICAgIHN5bnRheDogXCI8Yj5zdG9yZSBnYW1lIHRpbWU8L2I+IDx1PmFjdGlvbjwvdT5cIixcclxuICAgICAgZGVzY3JpcHRpb246IGBDaGFuZ2VzIHdoZXRoZXIgb3Igbm90IHRoZSBCbGFjayBIb2xlIGlzIHN0b3JpbmcgdGltZS4gQWxzbyBhbGxvd3MgdXNhZ2Ugb2Ygc3RvcmVkIHRpbWUuYCxcclxuICAgICAgc2VjdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiBcIkFDVElPTlNcIixcclxuICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBoZWFkZXI6IFwiPGk+b248L2k+IHwgPGk+b2ZmPC9pPlwiLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgXHJcbiAgICAgICAgICAgICAgICBUdXJucyBzdG9yaW5nIGdhbWUgdGltZSBvbiBvciBvZmYuXHJcbiAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyOiBcIjxpPnVzZTwvaT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFxyXG4gICAgICAgICAgICAgICAgVXNlcyBhbGwgc3RvcmVkIGdhbWUgdGltZS4gRG9lcyBub3QgYWx0ZXIgdGhlIG9uL29mZiBzdGF0ZSBvZiB0aW1lIHN0b3JhZ2UuXHJcbiAgICAgICAgICAgICAgYFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBleGFtcGxlczogW1xyXG4gICAgICAgIFwic3RvcmUgZ2FtZSB0aW1lIG9uXCIsXHJcbiAgICAgICAgXCJzdG9yZSBnYW1lIHRpbWUgb2ZmXCIsXHJcbiAgICAgICAgXCJzdG9yZSBnYW1lIHRpbWUgdXNlXCIsXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiA5LFxyXG4gICAgICBpc1VubG9ja2VkOiAoKSA9PiB0cnVlLFxyXG4gICAgICBrZXl3b3JkOiBcIk5PVElGWVwiLFxyXG4gICAgICBjYXRlZ29yeTogMyxcclxuICAgICAgc3ludGF4OiBcIjxiPm5vdGlmeTwvYj4gXFxcIjx1PnRleHQ8L3U+XFxcIlwiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogYFRha2VzIHRoZSBzcGVjaWZpZWQgdGV4dCBhbmQgcG9zdHMgaXQgaW4gdGhlIHRvcC1yaWdodCBjb3JuZXIgYXNcclxuICAgICAgICBhIHRleHQgbm90aWZpY2F0aW9uLCBpbiB0aGUgc2FtZSBzcG90IGFuZCBzdHlsZSBhcyBvdGhlciBub3RpZmljYXRpb25zIHN1Y2ggYXMgYXV0by1zYXZlXHJcbiAgICAgICAgYW5kIGFjaGlldmVtZW50L3VwZ3JhZGUgdW5sb2Nrcy4gQ2FuIGJlIHVzZWZ1bCBmb3Igc2VlaW5nIGF1dG9tYXRvciBzdGF0dXMgd2hpbGVcclxuICAgICAgICBvbiB0YWJzIG90aGVyIHRoYW4gdGhlIEF1dG9tYXRvciB0YWIuYCxcclxuICAgICAgZXhhbXBsZXM6IFtcclxuICAgICAgICBcIm5vdGlmeSBcXFwiRGlsYXRpb24gcmVhY2hlZFxcXCJcIixcclxuICAgICAgICBcIm5vdGlmeSBcXFwiRUNzIGNvbXBsZXRlZFxcXCJcIlxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogMTAsXHJcbiAgICAgIGlzVW5sb2NrZWQ6ICgpID0+IHRydWUsXHJcbiAgICAgIGtleXdvcmQ6IFwiQWRkaW5nIENvbW1lbnRzXCIsXHJcbiAgICAgIGNhdGVnb3J5OiAzLFxyXG4gICAgICBzeW50YXg6IFwiPGI+IzwvYj4gdGV4dDxicj48Yj4vLzwvYj4gdGV4dFwiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogYEFsbG93cyB5b3UgdG8gbGVhdmUgYSBub3RlIHRvIHlvdXJzZWxmIHdpdGhpbiB5b3VyIHNjcmlwdC4gVGhpcyBtYXkgYmVcclxuICAgICAgICB1c2VmdWwgZm9yIG9yZ2FuaXppbmcgb3Iga2VlcGluZyB0cmFjayBvZiB3aGljaCBwYXJ0cyBvZiB5b3VyIHNjcmlwdCBkbyB2YXJpb3VzIHRoaW5ncyxcclxuICAgICAgICBpbiBhIHdheSB0aGF0IGFwcGVhcnMgbW9yZSByZWFkYWJsZSB0aGFuIGp1c3QgdGhlIGNvbW1hbmRzLiBUaGVzZSBjb21tYW5kcyBtYWlubHkgc2VydmUgYXMgYSB0b29sIHRvXHJcbiAgICAgICAgaGVscCB5b3Uga2VlcCB0aGUgc3RlcHMgb2YgeW91ciBzY3JpcHRzIGVhc2llciB0byBmb2xsb3cgaWYgZGVzaXJlZC5gLFxyXG4gICAgICBzZWN0aW9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6IFwiTk9URVNcIixcclxuICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBoZWFkZXI6IFwiPGk+SW5saW5lIGNvbW1lbnRzPC9pPlwiLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgXHJcbiAgICAgICAgICAgICAgICBUaGUgQXV0b21hdG9yIGRvZXMgbm90IHN1cHBvcnQgY29tbWVudHMgd2hpY2ggYXJlIHBsYWNlZCBhZnRlciBhbiBhbHJlYWR5IGZ1bmN0aW9uYWxcclxuICAgICAgICAgICAgICAgIGxpbmUgb2YgY29kZSwgb24gdGhlIHNhbWUgbGluZS4gQXMgYW4gZXhhbXBsZSwgdGhlIHNpbmdsZSBsaW5lIFwic3R1ZGllcyBsb2FkIG5hbWUgVERJIC8vIExvYWQgcHVzaFwiXHJcbiAgICAgICAgICAgICAgICB3aWxsIGJlIGFuIGludmFsaWQgY29tbWFuZC4gSW4gdGhpcyBjYXNlLCB5b3Ugd2lsbCBuZWVkIHRvIG1vdmUgdGhlIGNvbW1lbnQgdG8gYSBzZXBhcmF0ZSBsaW5lXHJcbiAgICAgICAgICAgICAgICBpbiB0aGUgYXV0b21hdG9yLlxyXG4gICAgICAgICAgICAgIGBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8aT5FeGVjdXRpb24gc3BlZWQ8L2k+XCIsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcclxuICAgICAgICAgICAgICAgIEhhdmluZyBjb21tZW50cyB3aWxsIG5vdCBzbG93IGRvd24geW91ciBzY3JpcHQsIGFzIHRoZXkgYXJlIGNvbXBsZXRlbHkgc2tpcHBlZCBkdXJpbmdcclxuICAgICAgICAgICAgICAgIGV4ZWN1dGlvbiBhbmQgZG8gbm90IGNvdW50IGFzIGEgY29tbWFuZCBmb3IgdGhlIHB1cnBvc2VzIG9mIHJ1bm5pbmcuIEZvciBleGFtcGxlLCBldmVuIGlmIHlvdSBoYXZlXHJcbiAgICAgICAgICAgICAgICBhIHJlYWxseSBsb25nIGV4cGxhbmF0aW9uIGluIHRoZSBmb3JtIG9mIGNvbW1lbnRzIG9uIGxpbmVzIDIwLTQwLCB0aGUgQXV0b21hdG9yIHdpbGwgc3RpbGxcclxuICAgICAgICAgICAgICAgIDxpPmltbWVkaWF0ZWx5PC9pPiBza2lwIGZyb20gbGluZSAxOSB0byA0MSBkdXJpbmcgZXhlY3V0aW9uLlxyXG4gICAgICAgICAgICAgIGBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF1cclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIGV4YW1wbGVzOiBbXHJcbiAgICAgICAgXCIjIGdldCAxZTIwIGJlZm9yZSBzdGFydGluZyBlYzFcIixcclxuICAgICAgICBcIi8vIHRoaXMgbG9vcCBhbHRlcm5hdGVzIGRpbGF0aW9uIGFuZCBwdXNoaW5nXCJcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDExLFxyXG4gICAgICBpc1VubG9ja2VkOiAoKSA9PiB0cnVlLFxyXG4gICAgICBrZXl3b3JkOiBcIldBSVRcIixcclxuICAgICAgY2F0ZWdvcnk6IDQsXHJcbiAgICAgIHN5bnRheDogXCI8Yj53YWl0PC9iPiA8dT5jb25kaXRpb248L3U+XCIsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBgRm9yY2VzIEF1dG9tYXRvciB0byB3YWl0IGZvciBzb21lIGNvbmRpdGlvbiBvciBldmVudC4gVG8gd2FpdCBmb3IgYSBjZXJ0YWluIGR1cmF0aW9uIG9mIHRpbWUsXHJcbiAgICAgICAgdXNlIHRoZSBQQVVTRSBjb21tYW5kIGluc3RlYWQuYCxcclxuICAgICAgc2VjdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiBcIlBPU1NJQkxFIENPTkRJVElPTlNcIixcclxuICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBoZWFkZXI6IFwiPGk+Y29tcGFyaXNvbjwvaT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFxyXG4gICAgICAgICAgICAgICAgV2FpdCB1bnRpbCB0aGUgY29tcGFyaXNvbiBzdGF0ZW1lbnQgaXMgdHJ1ZS4gQ2hlY2sgdGhlIGVudHJ5IGZvciBcIkZvcm1hdHRpbmcgQ29tcGFyaXNvbnNcIiBmb3IgZGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgb24gaG93IHRvIHByb3Blcmx5IGlucHV0IHRoaXMgb3B0aW9uLlxyXG4gICAgICAgICAgICAgIGBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8aT5wcmVzdGlnZTwvaT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFxyXG4gICAgICAgICAgICAgICAgV2FpdCB1bnRpbCB0aGUgc3BlY2lmaWVkIHByZXN0aWdlIChJbmZpbml0eSwgRXRlcm5pdHksIG9yIFJlYWxpdHkpIGhhcyBiZWVuIHRyaWdnZXJlZCBieSBpdHMgcmVzcGVjdGl2ZVxyXG4gICAgICAgICAgICAgICAgQXV0b2J1eWVyLiBUaGlzIG11c3QgaGFwcGVuIDxpPmFmdGVyPC9pPiB0aGlzIGNvbW1hbmQgaXMgcmVhY2hlZDsgaWYgdGhlIEF1dG9idXllciB0cmlnZ2Vyc1xyXG4gICAgICAgICAgICAgICAgPGk+YmVmb3JlPC9pPiB0aGUgY29tbWFuZCBpcyByZWFjaGVkLCB5b3VyIHNjcmlwdCBtYXkgZ2V0IHN0dWNrLlxyXG4gICAgICAgICAgICAgIGBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8aT5ibGFjayBob2xlIChzdGF0ZSk8L2k+XCIsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcclxuICAgICAgICAgICAgICAgIFdhaXQgdW50aWwgdGhlIEJsYWNrIEhvbGUocykgYXJlIGluIHRoZSBzcGVjaWZpZWQgc3RhdGUuIFZhbGlkIGlucHV0cyBmb3Igc3RhdGUgYXJlXHJcbiAgICAgICAgICAgICAgICBcIm9mZlwiLCBcImJoMVwiLCBhbmQgXCJiaDJcIiwgY29ycmVzcG9uZGluZyB0byBubyBhY3RpdmUgQmxhY2sgSG9sZShzKSwgYXQgbGVhc3QgdGhlIGZpcnN0IEJsYWNrIEhvbGUgYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgYW5kIGJvdGggQmxhY2sgSG9sZXMgYWN0aXZlLlxyXG4gICAgICAgICAgICAgIGBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgICAgXSxcclxuICAgICAgZXhhbXBsZXM6IFtcclxuICAgICAgICBcIndhaXQgYW0gPj0gMWUzMDhcIixcclxuICAgICAgICBcIndhaXQgcGVuZGluZyBjb21wbGV0aW9ucyA+PSA1XCIsXHJcbiAgICAgICAgXCJ3YWl0IGVjOSBjb21wbGV0aW9ucyA+PSA0XCIsXHJcbiAgICAgICAgXCJ3YWl0IGluZmluaXR5XCIsXHJcbiAgICAgICAgXCJ3YWl0IGJsYWNrIGhvbGUgYmgxXCIsXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxMixcclxuICAgICAgaXNVbmxvY2tlZDogKCkgPT4gdHJ1ZSxcclxuICAgICAga2V5d29yZDogXCJQQVVTRVwiLFxyXG4gICAgICBjYXRlZ29yeTogNCxcclxuICAgICAgc3ludGF4OiBcIjxiPnBhdXNlPC9iPiA8dT5pbnRlcnZhbDwvdT5cIixcclxuICAgICAgZGVzY3JpcHRpb246IGBUZWxscyB0aGUgYXV0b21hdG9yIHRvIHN0b3AgbW92aW5nIGZvcndhcmQgYW5kIGV4ZWN1dGluZyBjb21tYW5kcyBmb3IgYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lLlxyXG4gICAgICAgIE5vdGUgdGhhdCBpZiB0aGUgcGF1c2UgZHVyYXRpb24gaXMgc2hvcnRlciB0aGFuIHRoZSBhdXRvbWF0b3IncyBleGVjdXRpb24gc3BlZWQsIHRoZSBhdXRvbWF0b3Igd2lsbCB3YWl0IHVudGlsXHJcbiAgICAgICAgdGhlIG5leHQgZXhlY3V0aW9uIHRpY2sgYmVmb3JlIG1vdmluZyBvbi5gLFxyXG4gICAgICBleGFtcGxlczogW1xyXG4gICAgICAgIFwicGF1c2UgMTBzXCIsXHJcbiAgICAgICAgXCJwYXVzZSAxIG1pbnV0ZVwiLFxyXG4gICAgICAgIFwicGF1c2UgMzQgc2Vjb25kc1wiXHJcbiAgICAgIF0sXHJcbiAgICAgIHNlY3Rpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogXCJJTlRFUlZBTCBGT1JNQVRUSU5HXCIsXHJcbiAgICAgICAgICBpdGVtczogW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyOiBcIjxpPlNwZWNpZmllZCBJbnRlcnZhbDwvaT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFRoaXMgY29tbWFuZCBhY2NlcHRzIHRpbWUgdW5pdHMgb2YgbWlsbGlzZWNvbmRzIChcIm1zXCIpLCBzZWNvbmRzIChcInNcIiwgXCJzZWNcIiwgb3IgXCJzZWNvbmRzXCIpLFxyXG4gICAgICAgICAgICAgICAgbWludXRlcyAoXCJtXCIsIFwibWluXCIsIG9yIFwibWludXRlc1wiKSwgYW5kIGhvdXJzIChcImhcIiBvciBcImhvdXJzXCIpLiBZb3UgY2Fubm90IHByb3ZpZGUganVzdCBhIG51bWJlciBhbmRcclxuICAgICAgICAgICAgICAgIG5vdGhpbmcgZWxzZTsgYSB1bml0IG9mIHRpbWUgbXVzdCBiZSBzcGVjaWZpZWQuYCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8aT5EZWZpbmVkIENvbnN0YW50PC9pPlwiLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQSBkZWZpbmVkIGNvbnN0YW50IG1heSBiZSB1c2VkIGluc3RlYWQsIHNlZSB0aGUgZGVmaW5pdGlvbiBwYW5lbC4gVGhlIGRlZmluZWQgdmFsdWUgd2lsbFxyXG4gICAgICAgICAgICAgICAgYmUgYXNzdW1lZCB0byBiZSBpbiB1bml0cyBvZiBzZWNvbmRzLmBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6IFwiT1RIRVJcIixcclxuICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBoZWFkZXI6IFwiPGk+T2ZmbGluZSBTaWRlLWVmZmVjdHM8L2k+XCIsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBUaGlzIGNvbW1hbmQgbWF5IGJlaGF2ZSB1bmRlc2lyYWJseSB3aGVuIGl0IHJ1bnMgZHVyaW5nIG9mZmxpbmUgcHJvZ3Jlc3MgZHVlIHRvIGxpbWl0ZWRcclxuICAgICAgICAgICAgICAgIHRpY2sgY291bnQuIEEgMS1zZWNvbmQgcGF1c2UgdGhhdCBpcyB1c3VhbGx5IDIwLTMwIHRpY2tzIG1pZ2h0IGJlIG9ubHkgMSBnYW1lIHRpY2sgd2hlbiBwcm9jZXNzaW5nXHJcbiAgICAgICAgICAgICAgICBob3VycyBvZiBvZmZsaW5lIHByb2dyZXNzLCB3aGljaCBtaWdodCBub3QgYmUgZW5vdWdoIGZvciB0aGUgcmVzb3VyY2VzIG5lZWRlZCBmb3IgdGhlIHJlc3Qgb2YgdGhlXHJcbiAgICAgICAgICAgICAgICBzY3JpcHQuYCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8aT5BbHRlcm5hdGl2ZXM8L2k+XCIsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBVc2luZyBhbm90aGVyIGNvbW1hbmQgbGlrZSAnV0FJVCcgd2lsbCBhbGxvdyB5b3UgdG8gc2V0IGl0IGZvciBhIGNlcnRhaW4gcmVzb3VyY2UgYW1vdW50LFxyXG4gICAgICAgICAgICAgICAgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIGdhbWUgaGFzIHRoZSBwcm9wZXIgc3RhdGUgYmVmb3JlIG1vdmluZyBvbndhcmQuYFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgaGVhZGVyOiBcIjxpPk1hbnVhbCBTa2lwPC9pPlwiLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgWW91IGNhbiBtYW51YWxseSBmb3JjZSB0aGUgQXV0b21hdG9yIHRvIGNvbnRpbnVlIGV4ZWN1dGlvbiBwYXN0IGEgUEFVU0UgY29tbWFuZCB3aXRob3V0XHJcbiAgICAgICAgICAgICAgICB3YWl0aW5nIHRoZSBlbnRpcmUgc3BlY2lmaWVkIHRpbWUgYnkgc3RlcHBpbmcgZm9yd2FyZCBvbmUgbGluZSAodG8gcHV0IGl0IG9uIHRoZSBuZXh0IG9uZSkgYW5kIHRoZW5cclxuICAgICAgICAgICAgICAgIHJlc3VtaW5nIGV4ZWN1dGlvbi4gSWYgeW91IGZpbmQgeW91cnNlbGYgZG9pbmcgdGhpcyByZWd1bGFybHksIGNvbnNpZGVyIG1vZGlmeWluZyB5b3VyIHNjcmlwdC5gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxMyxcclxuICAgICAgaXNVbmxvY2tlZDogKCkgPT4gdHJ1ZSxcclxuICAgICAga2V5d29yZDogXCJJRlwiLFxyXG4gICAgICBjYXRlZ29yeTogNCxcclxuICAgICAgc3ludGF4OiBgPGI+aWY8L2I+IDx1PmNvbmRpdGlvbjwvdT4gezxicj5cclxuICAgICAgICA8YmxvY2txdW90ZT5jb21tYW5kczwvYmxvY2txdW90ZT5cclxuICAgICAgICB9YCxcclxuICAgICAgZGVzY3JpcHRpb246IGBEZWZpbmVzIGFuIGlubmVyIGJsb2NrIG9mIGJsb2NrIG9mIHRoZSBhdXRvbWF0b3Igc2NyaXB0IHdoaWNoIHdpbGwgb25seSBiZSBleGVjdXRlZCBpZiB0aGUgc3BlY2lmaWVkXHJcbiAgICAgICAgY29tcGFyaXNvbiBpcyB0cnVlIHdoZW4gdGhpcyBsaW5lIGlzIHJlYWNoZWQuIElmIHRoZSBjb21wYXJpc29uIGlzIGZhbHNlLCB0aGUgYXV0b21hdG9yIHdpbGwgaW5zdGVhZCBza2lwIHRvIHRoZVxyXG4gICAgICAgIGZpcnN0IGxpbmUgYWZ0ZXIgdGhlIGJsb2NrIGFuZCBjb250aW51ZSBleGVjdXRpb24gZnJvbSB0aGVyZS5gLFxyXG4gICAgICBleGFtcGxlczogW1xyXG4gICAgICAgIFwiaWYgZWMxMCBjb21wbGV0aW9ucyA8IDVcIixcclxuICAgICAgICBcImlmIGVwID4gMWU2MDAwXCJcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDE0LFxyXG4gICAgICBpc1VubG9ja2VkOiAoKSA9PiB0cnVlLFxyXG4gICAgICBrZXl3b3JkOiBcIlVOVElMXCIsXHJcbiAgICAgIGNhdGVnb3J5OiA0LFxyXG4gICAgICBzeW50YXg6IGA8Yj51bnRpbDwvYj4gPHU+Y29tcGFyaXNvbjwvdT4gezxicj5cclxuICAgICAgICA8YmxvY2txdW90ZT5jb21tYW5kczwvYmxvY2txdW90ZT5cclxuICAgICAgICB9PGJyPjxiPnVudGlsPC9iPiA8dT5wcmVzdGlnZV9ldmVudDwvdT4gezxicj5cclxuICAgICAgICAgIDxibG9ja3F1b3RlPmNvbW1hbmRzPC9ibG9ja3F1b3RlPlxyXG4gICAgICAgIH1gLFxyXG4gICAgICBkZXNjcmlwdGlvbjogYERlZmluZXMgYW4gaW5uZXIgYmxvY2sgb2YgdGhlIHNjcmlwdCB3aGVyZSBjb21tYW5kcyBhcmUgcmVwZWF0ZWQ7IHRoZSBjb21wYXJpc29uIGlzIGNoZWNrZWQgYXQgdGhlXHJcbiAgICAgICAgc3RhcnQgYW5kIGV2ZXJ5IHRpbWUgdGhlIGxvb3AgcmVwZWF0cy4gSWYgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIHdoZW4gdGhlIFVOVElMIHN0YXRlbWVudCBpcyBmaXJzdCByZWFjaGVkLCB0aGVcclxuICAgICAgICBpbm5lciBibG9jayBvZiBjb21tYW5kcyB3aWxsIGJlIHNraXBwZWQgZW50aXJlbHkuXHJcbiAgICAgICAgPGJyPjxicj5cclxuICAgICAgICBJZiBhbiBwcmVzdGlnZSBldmVudCAoaWUuIEluZmluaXR5LCBFdGVybml0eSwgb3IgUmVhbGl0eSkgaXMgc3BlY2lmaWVkIGluc3RlYWQgb2YgYSBjb25kaXRpb24sIHRoZW4gdGhlIGJsb2NrXHJcbiAgICAgICAgd2lsbCBhbHdheXMgYmUgZW50ZXJlZCBhbmQgdGhlIGNvbW1hbmRzIHdpdGhpbiB0aGUgYmxvY2sgd2lsbCByZXBlYXQgdW50aWwgdGhlIGV2ZW50IG9jY3VycyBmb3IgdGhlIGZpcnN0IHRpbWVcclxuICAgICAgICA8aT5hZnRlcjwvaT4gZW50ZXJpbmcgdGhlIGJsb2NrLiBOb3RlIHRoYXQgdGhlIEF1dG9tYXRvciB3aWxsIGZpbmlzaCB0aGUgcmVzdCBvZiB0aGUgbG9vcCBhbmQgdGhlbiBleGl0IGFmdGVyXHJcbiAgICAgICAgdGhlIHByZXN0aWdlIGV2ZW50IG9jY3VycyAtIGl0IHdpbGwgbm90IGltbWVkaWF0ZWx5IGV4aXQgdGhlIGxvb3AgaW4gdGhlIG1pZGRsZS5gLFxyXG4gICAgICBleGFtcGxlczogW1xyXG4gICAgICAgIFwidW50aWwgZXAgPiAxZTUwMFwiLFxyXG4gICAgICAgIFwidW50aWwgcmVhbGl0eVwiLFxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogMTUsXHJcbiAgICAgIGlzVW5sb2NrZWQ6ICgpID0+IHRydWUsXHJcbiAgICAgIGtleXdvcmQ6IFwiV0hJTEVcIixcclxuICAgICAgY2F0ZWdvcnk6IDQsXHJcbiAgICAgIHN5bnRheDogYDxiPndoaWxlPC9iPiA8dT5jb21wYXJpc29uPC91PiB7PGJyPlxyXG4gICAgICAgIDxibG9ja3F1b3RlPmNvbW1hbmRzPC9ibG9ja3F1b3RlPlxyXG4gICAgICB9YCxcclxuICAgICAgZGVzY3JpcHRpb246IGBEZWZpbmVzIGFuIGlubmVyIGJsb2NrIG9mIHRoZSBzY3JpcHQgd2hlcmUgY29tbWFuZHMgYXJlIHJlcGVhdGVkOyB0aGUgY29tcGFyaXNvbiBpcyBjaGVja2VkIGF0IHRoZVxyXG4gICAgICAgIHN0YXJ0IGFuZCBldmVyeSB0aW1lIHRoZSBsb29wIHJlcGVhdHMuIElmIHRoZSBjb25kaXRpb24gaXMgZmFsc2Ugd2hlbiB0aGUgV0hJTEUgc3RhdGVtZW50IGlzIGZpcnN0IHJlYWNoZWQsIHRoZVxyXG4gICAgICAgIGlubmVyIGJsb2NrIG9mIGNvbW1hbmRzIHdpbGwgYmUgc2tpcHBlZCBlbnRpcmVseS5gLFxyXG4gICAgICBleGFtcGxlczogW1xyXG4gICAgICAgIGB3aGlsZSBlcCA8IDFlNTAwYCxcclxuICAgICAgICBgd2hpbGUgbXlUaHJlc2hvbGQgPiBhbWAsXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxNixcclxuICAgICAgaXNVbmxvY2tlZDogKCkgPT4gdHJ1ZSxcclxuICAgICAga2V5d29yZDogXCJTVE9QXCIsXHJcbiAgICAgIGNhdGVnb3J5OiA0LFxyXG4gICAgICBzeW50YXg6IGA8Yj5zdG9wPC9iPmAsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBgV2hlbiB0aGUgQXV0b21hdG9yIHJ1bnMgdGhpcyBsaW5lLCBpdCB3aWxsIHN0b3AgZXhlY3V0aW9uIGFzIGlmIHlvdSBjbGlja2VkIHRoZVxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXN0b3BcIj48L2k+IGJ1dHRvbiBvbiB0aGUgY29udHJvbCBwYW5lbCBpbiB0aGUgdG9wLWxlZnQgb2YgdGhlIEF1dG9tYXRvci4gVGhpc1xyXG4gICAgICAgIGRvZXMgbm90IG5lZWQgdG8gYmUgcGxhY2VkIGF0IHRoZSBlbmQgb2YgZXZlcnkgc2NyaXB0IGluIG9yZGVyIHRvIHN0b3AgdGhlbSwgYXMgdHVybmluZyBvZmYgdGhlXHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc3luYy1hbHRcIj48L2k+IG9wdGlvbiBvbiB0aGUgbGVmdCBwYW5lbCB3aWxsIGRvIHRoaXMgYXV0b21hdGljYWxseS5cclxuICAgICAgICBUaGlzIGNvbW1hbmQgbWF5IGJlIHVzZWZ1bCB3aGVuIHVzZWQgaW5zaWRlIG9mIGFuIElGIGNvbW1hbmQsIGluIG9yZGVyIHRvIHN0b3AgZXhlY3V0aW9uXHJcbiAgICAgICAgb25seSB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMuYCxcclxuICAgICAgZXhhbXBsZXM6IFtcclxuICAgICAgICBgc3RvcGAsXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxNyxcclxuICAgICAgaXNVbmxvY2tlZDogKCkgPT4gdHJ1ZSxcclxuICAgICAga2V5d29yZDogXCJDdXJyZW5jeSBMaXN0XCIsXHJcbiAgICAgIGNhdGVnb3J5OiA0LFxyXG4gICAgICBzeW50YXg6IFwiPGk+WW91IGNhbiB1c2UgdGhlc2UgaW4gYW55IElGLCBXSElMRSwgVU5USUwsIG9yIFdBSVQgY29tbWFuZDwvaT5cIixcclxuICAgICAgZGVzY3JpcHRpb246ICgpID0+IHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJUZXh0ID0gRWZmYXJpZ1VubG9jay5nbHlwaEZpbHRlci5pc1VubG9ja2VkXHJcbiAgICAgICAgICA/IGA8Yj5maWx0ZXIgc2NvcmU8L2I+IC0gR2x5cGggZmlsdGVyIHNjb3JlIG9mIHRoZSBHbHlwaCB3aGljaCB5b3VyIGZpbHRlciB3aWxsIHNlbGVjdCB0aGlzIFJlYWxpdHk8YnI+YFxyXG4gICAgICAgICAgOiBcIlwiO1xyXG4gICAgICAgIGNvbnN0IHN0VGV4dCA9IFYuc3BhY2VUaGVvcmVtcyA+IDBcclxuICAgICAgICAgID8gYDxiPnNwYWNlIHRoZW9yZW1zPC9iPiAtIEN1cnJlbnQgdW5zcGVudCBTcGFjZSBUaGVvcmVtIGFtb3VudDxicj5cclxuICAgICAgICAgICAgPGI+dG90YWwgc3BhY2UgdGhlb3JlbXM8L2I+IC0gVE9UQUwgU3BhY2UgVGhlb3JlbXMsIGluY2x1ZGluZyBvbmVzIHNwZW50IG9uIGN1cnJlbnQgU3R1ZGllczxicj5gXHJcbiAgICAgICAgICA6IFwiXCI7XHJcbiAgICAgICAgcmV0dXJuIGBUaGlzIGlzIGEgbGlzdCBvZiBcImN1cnJlbmNpZXNcIiBvciBudW1iZXJzIHRoYXQgeW91IGNhbiB1c2Ugd2l0aGluIHRoZSBBdXRvbWF0b3IuPGJyPlxyXG4gICAgICAgICAgTm90ZSB0aGF0IHdoZW4gdXNlZCwgbW9zdCBjdXJyZW5jaWVzIHdpbGwgbmVlZCB0byBiZSBpbiBzY2llbnRpZmljIG5vdGF0aW9uLjxicj5cclxuICAgICAgICAgIDxiPmFtPC9iPiAtIEN1cnJlbnQgQW50aW1hdHRlciBhbW91bnQgIDxicj5cclxuICAgICAgICAgIDxiPmlwPC9iPiAtIEN1cnJlbnQgSW5maW5pdHkgUG9pbnQgYW1vdW50ICA8YnI+XHJcbiAgICAgICAgICA8Yj5lcDwvYj4gLSBDdXJyZW50IEV0ZXJuaXR5IFBvaW50IGFtb3VudCAgPGJyPlxyXG4gICAgICAgICAgPGI+cm08L2I+IC0gQ3VycmVudCBSZWFsaXR5IE1hY2hpbmUgYW1vdW50ICA8YnI+XHJcbiAgICAgICAgICA8Yj5pbmZpbml0aWVzPC9iPiAtIEN1cnJlbnQgSW5maW5pdHkgYW1vdW50IDxicj5cclxuICAgICAgICAgIDxiPmJhbmtlZCBpbmZpbml0aWVzPC9iPiAtIEN1cnJlbnQgQmFua2VkIEluZmluaXR5IGFtb3VudCA8YnI+XHJcbiAgICAgICAgICA8Yj5ldGVybml0aWVzPC9iPiAtIEN1cnJlbnQgRXRlcm5pdHkgYW1vdW50IDxicj5cclxuICAgICAgICAgIDxiPnJlYWxpdGllczwvYj4gLSBDdXJyZW50IFJlYWxpdHkgYW1vdW50IDxicj5cclxuICAgICAgICAgIDxiPnBlbmRpbmcgaXA8L2I+IC0gSVAgZ2FpbmVkIG9uIEluZmluaXR5ICgwIGlmIG5vdCBhdmFpbGFibGUpPGJyPlxyXG4gICAgICAgICAgPGI+cGVuZGluZyBlcDwvYj4gLSBFUCBnYWluZWQgb24gRXRlcm5pdHkgKDAgaWYgbm90IGF2YWlsYWJsZSk8YnI+XHJcbiAgICAgICAgICA8Yj5wZW5kaW5nIHRwPC9iPiAtIFRQIGdhaW5lZCBvbiBleGl0aW5nIERpbGF0aW9uPGJyPlxyXG4gICAgICAgICAgPGI+cGVuZGluZyBybTwvYj4gLSBSTSBnYWluZWQgb24gUmVhbGl0eSAoMCBpZiBub3QgYXZhaWxhYmxlKTxicj5cclxuICAgICAgICAgIDxiPnBlbmRpbmcgZ2x5cGggbGV2ZWw8L2I+IC0gR2x5cGggTGV2ZWwgZ2FpbmVkIG9uIFJlYWxpdHkgKDAgaWYgbm90IGF2YWlsYWJsZSk8YnI+XHJcbiAgICAgICAgICA8Yj5kdDwvYj4gLSBDdXJyZW50IERpbGF0ZWQgVGltZSBhbW91bnQgPGJyPlxyXG4gICAgICAgICAgPGI+dHA8L2I+IC0gQ3VycmVudCBUYWNoeW9uIFBhcnRpY2xlIGFtb3VudDxicj5cclxuICAgICAgICAgIDxiPnJnPC9iPiAtIEN1cnJlbnQgUmVwbGljYW50aSBHYWxheHkgYW1vdW50IChkb2VzIG5vdCB1c2Ugc2NpZW50aWZpYyk8YnI+XHJcbiAgICAgICAgICA8Yj5yZXA8L2I+IC0gQ3VycmVudCBSZXBsaWNhbnRpIGFtb3VudCA8YnI+XHJcbiAgICAgICAgICA8Yj50dDwvYj4gLSBDdXJyZW50IFRpbWUgVGhlb3JlbSBhbW91bnQgPGJyPlxyXG4gICAgICAgICAgPGI+dG90YWwgdHQ8L2I+IC0gVE9UQUwgVGltZSBUaGVvcmVtcywgaW5jbHVkZXMgYWxsIGZvcm1zIG9mIGdlbmVyYXRlZCBUVCBhbmQgYW55IHNwZW50IG9uIFN0dWRpZXMgPGJyPlxyXG4gICAgICAgICAgPGI+c3BlbnQgdHQ8L2I+IC0gVGltZSBUaGVvcmVtcyBjdXJyZW50bHkgc3BlbnQgb24gYWxsIFRpbWUgU3R1ZGllcyA8YnI+XHJcbiAgICAgICAgICA8Yj50b3RhbCBjb21wbGV0aW9uczwvYj4gLSBUb3RhbCBjb21wbGV0aW9ucyBvZiBhbGwgRXRlcm5pdHkgQ2hhbGxlbmdlcyA8YnI+XHJcbiAgICAgICAgICA8Yj5wZW5kaW5nIGNvbXBsZXRpb25zPC9iPiAtIFRvdGFsIGNvbXBsZXRpb25zIG9mIGN1cnJlbnQgRUMgYXQgRXRlcm5pdHkgPGJyPlxyXG4gICAgICAgICAgPGI+ZWM8dT5YPC91PiBjb21wbGV0aW9uczwvYj4gLSBBbW91bnQgb2YgRUMgY29tcGxldGlvbnMgZm9yIGEgY2VydGFpbiBFQyAoZWcuIFwiZWM2IGNvbXBsZXRpb25zXCIpPGJyPlxyXG4gICAgICAgICAgJHtmaWx0ZXJUZXh0fVxyXG4gICAgICAgICAgJHtzdFRleHR9XHJcbiAgICAgICAgYDtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDE4LFxyXG4gICAgICBpc1VubG9ja2VkOiAoKSA9PiB0cnVlLFxyXG4gICAgICBrZXl3b3JkOiBcIkZvcm1hdHRpbmcgQ29tcGFyaXNvbnNcIixcclxuICAgICAgY2F0ZWdvcnk6IDQsXHJcbiAgICAgIHN5bnRheDogXCI8dT5yZXNvdXJjZTE8L3U+IDx1PmNvbmRpdGlvbjwvdT4gPHU+cmVzb3VyY2UyPC91PlwiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogYFxyXG4gICAgICAgIENvbXBhcmlzb25zIGFyZSB1c2VkIHdpdGhpbiBjZXJ0YWluIGNvbW1hbmRzLCB3aGljaCBhbGxvdyB5b3UgdG8gY29udHJvbCB0aGUgYmVoYXZpb3Igb2YgdGhlIGF1dG9tYXRvciBiYXNlZFxyXG4gICAgICAgIG9uIHRoZSBnYW1lJ3MgY3VycmVudCBzdGF0ZS4gVGhleSBoYXZlIGEgc3RhbmRhcmQgZm9ybWF0IHdpdGggdHdvIHZhbHVlIGlucHV0cyBhbmQgYSBjb21wYXJpc29uIG9wZXJhdG9yLCBidXRcclxuICAgICAgICB0aGUgdmFsdWUgaW5wdXRzIGNhbiBiZSBhbnl0aGluZyBhcyBsb25nIGFzIGl0IGlzIGZvcm1hdHRlZCBjb3JyZWN0bHkgb3ZlcmFsbC5gLFxyXG4gICAgICBzZWN0aW9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6IFwiQ09ORElUSU9OU1wiLFxyXG4gICAgICAgICAgaXRlbXM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8aT5yZXNvdXJjZTwvaT5cIixcclxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFxyXG4gICAgICAgICAgICAgICAgVGhpcyBjYW4gYmUgYW55IEF1dG9tYXRvciBDdXJyZW5jeSwgYSBkZWZpbmVkIGNvbnN0YW50LCBvciBhIG51bWJlciB3aGljaCBtdXN0IGJlIGZvcm1hdHRlZCBpblxyXG4gICAgICAgICAgICAgICAgc2NpZW50aWZpYyBub3RhdGlvbiAoZWcuIDEwMDAsIDFlMTAwLCAxLjhlMzA4KS4gVW5saWtlIG1vcmUgZ2VuZXJhbCBwcm9ncmFtbWluZyBsYW5ndWFnZXMsIHRoaXMgbXVzdFxyXG4gICAgICAgICAgICAgICAgYmUgYSBzaW5nbGUgdmFsdWUgKGllLiBtYXRoIGV4cHJlc3Npb25zIHN1Y2ggYXMgXCJpcCArIHBlbmRpbmcgaXBcIiBhcmUgbm90IGFsbG93ZWQpLlxyXG4gICAgICAgICAgICAgIGBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGhlYWRlcjogXCI8aT5jb25kaXRpb248L2k+XCIsXHJcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBcclxuICAgICAgICAgICAgICAgIFRoaXMgbXVzdCBiZSBhbiBpbmVxdWFsaXR5IG9wZXJhdG9yICg8LCA8PSwgPiwgPj0pLCB3aGljaCB0YWtlcyBvbiBpdHMgdHlwaWNhbCBtYXRoZW1hdGljYWwgbWVhbmluZy5cclxuICAgICAgICAgICAgICAgIEVxdWFsaXR5IG9wZXJhdG9ycyAoPT0sICE9KSBhcmUgbm90IGFsbG93ZWQsIGFzIHRoZSBuYXR1cmUgb2YgdGhlIGdhbWUgbWVhbnMgdGhhdCBudW1iZXJzIHdpbGwgb2Z0ZW5cclxuICAgICAgICAgICAgICAgIG5ldmVyIGJlIGV4YWN0bHkgZXF1YWwgYW5kIHRodXMgY2hlY2tpbmcgYmFzZWQgb24gZGlyZWN0IGVxdWFsaXR5IG1heSBsZWFkIHRvIHVuZXhwZWN0ZWQgc2NyaXB0XHJcbiAgICAgICAgICAgICAgICBiZWhhdmlvci5cclxuICAgICAgICAgICAgICBgXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBleGFtcGxlczogW1xyXG4gICAgICAgIFwiZXAgPCAxZTIwXCIsXHJcbiAgICAgICAgXCJ0b3RhbCB0dCA+IDE0MDAwXCIsXHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGlkOiAxOSxcclxuICAgICAgaXNVbmxvY2tlZDogKCkgPT4gdHJ1ZSxcclxuICAgICAga2V5d29yZDogXCJDb21tYW5kcyB3aXRoIGlubmVyIGJsb2Nrc1wiLFxyXG4gICAgICBjYXRlZ29yeTogNCxcclxuICAgICAgc3ludGF4OiBgPGI+aGVhZGVyX2NvbW1hbmQ8L2I+IHs8YnI+XHJcbiAgICAgICAgPGJsb2NrcXVvdGU+aW5uZXJfY29tbWFuZHM8L2Jsb2NrcXVvdGU+XHJcbiAgICAgICAgfWAsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBgU29tZSBjb21tYW5kcyBhcmUgYXNzb2NpYXRlZCB3aXRoIGFuIFwiaW5uZXIgYmxvY2tcIiBvZiBjb21tYW5kcy4gVGhpcyBpbm5lciBibG9jayBjYW4gY29udGFpbiBzdGlsbFxyXG4gICAgICAgIGNvbnRhaW4gYW55IG90aGVyIHZhbGlkIGNvbW1hbmQsIGJ1dCBtYXkgb3IgbWF5IG5vdCBhY3R1YWxseSBnZXQgZXhlY3V0ZWQgYmFzZWQgb24gd2hhdCB0aGUgc3RhdGUgb2YgdGhlIGdhbWUgaXNcclxuICAgICAgICB3aGVuIDxiPmhlYWRlcl9jb21tYW5kPC9iPiBpcyBleGVjdXRlZC4gVGhpcyBhbGxvd3MgeW91IHRvIHJlcGVhdCBzb21lIGNvbW1hbmRzIG92ZXIgYW5kIG92ZXIgKGVnLiBUaW1lIFN0dWR5XHJcbiAgICAgICAgcHVyY2hhc2luZyksIG9yIHRvIHNraXAgdGhlbSBlbnRpcmVseSAoZWcuIG5vdCBlbnRlcmluZyBhbiBFQyBpZiBpdCBhbHJlYWR5IGhhcyBmdWxsIGNvbXBsZXRpb25zKS4gVGhlc2UgYmxvY2tzXHJcbiAgICAgICAgY2FuIGJlIG5lc3RlZCBpZiBkZXNpcmVkLCB3aXRoIGlubmVyIGJsb2NrcyBiZWluZyBwbGFjZWQgd2l0aGluIG9uZSBhbm90aGVyLlxyXG4gICAgICAgIDxicj48YnI+XHJcbiAgICAgICAgSW4gdGhlIHRleHQgZWRpdG9yIG1vZGU6IFNwZWNpZnkgdGhlIGlubmVyIGJsb2NrIHdpdGggY3VybHkgYnJhY2VzLCB3aXRoIHRoZSBvcGVuaW5nIGJyYWNlIHsgb24gdGhlIHNhbWUgbGluZSBhc1xyXG4gICAgICAgIHRoZSBjb21wYXJpc29uIGFuZCB0aGUgY2xvc2luZyBicmFjZSB9IG9uIGl0cyBvd24gbGluZSBhZnRlciB0aGUgbGFzdCBsaW5lIHlvdSB3YW50IGluc2lkZSB0aGUgYmxvY2suIElubmVyXHJcbiAgICAgICAgY29tbWFuZHMgZG8gbm90IG5lZWQgdG8gYmUgaW5kZW50ZWQsIGFsdGhvdWdoIGl0IG1heSBiZSB2aXN1YWxseSBoZWxwZnVsIHRvIGRvIHNvLlxyXG4gICAgICAgIDxicj48YnI+XHJcbiAgICAgICAgSW4gdGhlIGJsb2NrIGVkaXRvciBtb2RlOiBUaGVzZSBjb21tYW5kcyBjb21lIHdpdGggYW4gZW1wdHkgZG90dGVkIHJlY3RhbmdsZSB3aGljaCBpbmRpY2F0ZXMgd2hpY2ggY29tbWFuZHMgYXJlXHJcbiAgICAgICAgd2l0aGluIHRoZSBpbm5lciBibG9jay4gU3Vic2VxdWVudCBibG9ja3MgY2FuIHRoZW4gYmUgZHJhZ2dlZCBpbnNpZGUgdGhlIGRvdHRlZCByZWN0YW5nbGUuXHJcbiAgICAgICAgYCxcclxuICAgICAgZXhhbXBsZXM6IFtcclxuICAgICAgICBgaWYgZWMxMCBjb21wbGV0aW9ucyA8IDUgezxicj5cclxuICAgICAgICAgIDxibG9ja3F1b3RlPlxyXG4gICAgICAgICAgdW5sb2NrIGVjMTA8YnI+XHJcbiAgICAgICAgICBzdGFydCBlYzEwPC9ibG9ja3F1b3RlPlxyXG4gICAgICAgIH1gLFxyXG4gICAgICAgIGB1bnRpbCBlcCA+IDFlOCB7PGJyPlxyXG4gICAgICAgICAgPGJsb2NrcXVvdGU+XHJcbiAgICAgICAgICBzdHVkaWVzIG5vd2FpdCBwdXJjaGFzZSAxMS02Mjxicj5cclxuICAgICAgICAgIHBhdXNlIDEwczxicj5cclxuICAgICAgICAgIGV0ZXJuaXR5IHJlc3BlYzwvYmxvY2txdW90ZT5cclxuICAgICAgICB9YFxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgb3RoZXJBdXRvbWF0b3JQb2ludHM6IFtcclxuICAgIHtcclxuICAgICAgbmFtZTogXCJSZWFsaXR5IENvdW50XCIsXHJcbiAgICAgIGF1dG9tYXRvclBvaW50czogKCkgPT4gMiAqIE1hdGguY2xhbXBNYXgoQ3VycmVuY3kucmVhbGl0aWVzLnZhbHVlLCA1MCksXHJcbiAgICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IGArJHtmb3JtYXRJbnQoMil9IHBlciBSZWFsaXR5LCB1cCB0byAke2Zvcm1hdEludCg1MCl9IFJlYWxpdGllc2AsXHJcbiAgICAgIHN5bWJvbDogXCLPnlwiLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogXCJCbGFjayBIb2xlXCIsXHJcbiAgICAgIGF1dG9tYXRvclBvaW50czogKCkgPT4gKEJsYWNrSG9sZSgxKS5pc1VubG9ja2VkID8gMTAgOiAwKSxcclxuICAgICAgc2hvcnREZXNjcmlwdGlvbjogKCkgPT4gYFVubG9ja2luZyBnaXZlcyAke2Zvcm1hdEludCgxMCl9IEFQYCxcclxuICAgICAgc3ltYm9sOiBcIjxpIGNsYXNzPSdmYXMgZmEtY2lyY2xlJz48L2k+XCIsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVzOiBhdXRvbWF0b3JUZW1wbGF0ZXNcclxufTtcclxuIl0sIm5hbWVzIjpbImF1dG9tYXRvclRlbXBsYXRlcyIsImF1dG9tYXRvciIsImNhdGVnb3J5TmFtZXMiLCJjb21tYW5kcyIsImlkIiwiaXNVbmxvY2tlZCIsImtleXdvcmQiLCJjYXRlZ29yeSIsInN5bnRheCIsImRlc2NyaXB0aW9uIiwiZXhhbXBsZXMiLCJzZWN0aW9ucyIsIm5hbWUiLCJpdGVtcyIsImhlYWRlciIsIkJsYWNrSG9sZSIsIkVuc2xhdmVkIiwiZmlsdGVyVGV4dCIsIkVmZmFyaWdVbmxvY2siLCJnbHlwaEZpbHRlciIsInN0VGV4dCIsIlYiLCJzcGFjZVRoZW9yZW1zIiwib3RoZXJBdXRvbWF0b3JQb2ludHMiLCJhdXRvbWF0b3JQb2ludHMiLCJNYXRoIiwiY2xhbXBNYXgiLCJDdXJyZW5jeSIsInJlYWxpdGllcyIsInZhbHVlIiwic2hvcnREZXNjcmlwdGlvbiIsImZvcm1hdEludCIsInN5bWJvbCIsInRlbXBsYXRlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/core/secret-formula/reality/automator.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/reality/glyph-cosmetics.js": +/*!************************************************************!*\ + !*** ./src/core/secret-formula/reality/glyph-cosmetics.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"glyphCosmeticSets\": () => (/* binding */ glyphCosmeticSets)\n/* harmony export */ });\n// Color prop is a combination of a B/W background and a border hex code\nconst glyphCosmeticSets = {\n cards: {\n id: \"cards\",\n name: \"Playing Card Suits\",\n symbol: [\"♠\", \"♥\", \"♦\", \"♣\", \"♤\", \"♧\", \"♡\", \"♢\"],\n color: [\"W#000000\", \"B#FF2222\"]\n },\n lower: {\n id: \"lower\",\n name: \"Lowercase Glyphs\",\n symbol: [\"ω\", \"ξ\", \"δ\", \"ψ\"]\n },\n sus: {\n id: \"sus\",\n name: \"Suspicious\",\n symbol: [\"ඔ\", \"ඕ\", \"ඞ\", \"ඩ\"],\n color: [\"B#FCA40A\"]\n },\n currency: {\n id: \"currency\",\n name: \"Modern Currency\",\n symbol: [\"$\", \"₽\", \"¥\", \"€\", \"¢\", \"£\", \"₩\"],\n preventBlur: true,\n color: [\"W#00DD00\"]\n },\n oldCurrency: {\n id: \"oldCurrency\",\n name: \"Older Currency\",\n symbol: [\"₷\", \"₰\", \"₳\", \"₯\", \"₻\"],\n preventBlur: true,\n color: [\"B#00DD00\"]\n },\n pipe: {\n id: \"pipe\",\n name: \"Single Pipes\",\n symbol: [\"┌\", \"┐\", \"└\", \"┘\", \"─\", \"│\"],\n color: [\"B#33FF33\"]\n },\n pipe2: {\n id: \"pipe2\",\n name: \"Double Pipes\",\n symbol: [\"╔\", \"╗\", \"╚\", \"╝\", \"═\", \"║\"],\n color: [\"W#33FF33\"]\n },\n trigram: {\n id: \"trigram\",\n name: \"Trigrams\",\n symbol: [\"☰\", \"☱\", \"☲\", \"☳\", \"☴\", \"☵\", \"☶\", \"☷\"],\n preventBlur: true,\n color: [\"B#FFFFFF\"]\n },\n arrow: {\n id: \"arrow\",\n name: \"Single Arrows\",\n symbol: [\"←\", \"↓\", \"↑\", \"→\", \"↖\", \"↗\", \"↘\", \"↙\"],\n color: [\"W#CC0000\"]\n },\n arrow2: {\n id: \"arrow2\",\n name: \"Double Arrows\",\n symbol: [\"⇄\", \"⇅\", \"⇔\", \"⇕\"],\n color: [\"W#0000CC\"]\n },\n arrow3: {\n id: \"arrow3\",\n name: \"Special Arrows\",\n symbol: [\"↺\", \"↯\", \"↬\", \"⇱\", \"⇲\", \"⇮\", \"↭\"],\n preventBlur: true,\n color: [\"W#CCCC00\"]\n },\n integral: {\n id: \"integral\",\n name: \"Integration\",\n symbol: [\"∬\", \"∭\", \"∮\", \"∯\", \"∰\", \"∱\", \"∲\", \"∳\"],\n preventBlur: true,\n color: [\"B#123456\"]\n },\n numbers: {\n id: \"numbers\",\n name: \"Circled Numbers\",\n symbol: [\"①\", \"②\", \"③\", \"④\", \"⑤\", \"⑥\", \"⑦\", \"⑧\"],\n preventBlur: true,\n color: [\"B#607D8B\"]\n },\n blocks: {\n id: \"blocks\",\n name: \"2x2 Blocks\",\n symbol: [\"▘\", \"▚\", \"▞\", \"▙\", \"▛\", \"▜\", \"▟\"]\n },\n shapes: {\n id: \"shapes\",\n name: \"Miscellaneous Shapes\",\n symbol: [\"▰\", \"▲\", \"◆\", \"◎\", \"◍\"],\n preventBlur: true\n },\n chess: {\n id: \"chess\",\n name: \"Chess Pieces\",\n symbol: [\"♟\", \"♞\", \"♝\", \"♜\", \"♛\", \"♚\"],\n preventBlur: true,\n color: [\"B#AAAAAA\"]\n },\n planet: {\n id: \"planet\",\n name: \"Planetary Symbols\",\n symbol: [\"☿\", \"♀\", \"♁\", \"♂\", \"♃\", \"♄\", \"♆\", \"♇\"],\n preventBlur: true,\n color: [\"B#964B00\"]\n },\n musical: {\n id: \"musical\",\n name: \"Musical Symbols\",\n symbol: [\"♩\", \"♪\", \"♬\", \"♭\", \"♮\", \"♯\"],\n preventBlur: true,\n color: [\"W#E621E6\"]\n },\n recycle: {\n id: \"recycle\",\n name: \"Recycling Symbols\",\n symbol: [\"♻\", \"♳\", \"♴\", \"♵\", \"♶\", \"♷\", \"♸\", \"♹\"],\n preventBlur: true\n },\n dice: {\n id: \"dice\",\n name: \"Dice Faces\",\n symbol: [\"⚀\", \"⚁\", \"⚂\", \"⚃\", \"⚄\", \"⚅\"],\n preventBlur: true\n },\n hazard: {\n id: \"hazard\",\n name: \"Hazard Symbols\",\n symbol: [\"☠\", \"☢\", \"☣\", \"⚠\"],\n preventBlur: true,\n color: [\"W#FCA40A\"]\n },\n celestial: {\n id: \"celestial\",\n name: \"Celestial Icons\",\n symbol: [\"\\uF0C1\", \"⌬\", \"\\uF185\", \"ᛝ\", \"♅\"],\n color: [\"B#00BCD4\"]\n },\n alchemy: {\n id: \"alchemy\",\n name: \"Alchemical Symbols\",\n symbol: [\"🜁\", \"🜂\", \"🜃\", \"🜄\", \"🜔\", \"🜍\", \"🜞\", \"🜚\"],\n color: [\"B#FFD700\"]\n },\n blob: {\n id: \"blob\",\n name: \"Blobs\",\n symbol: [\"\\uE011\", \"\\uE012\", \"\\uE013\", \"\\uE014\", \"\\uE016\", \"\\uE01A\", \"\\uE01C\"],\n preventBlur: true,\n color: [\"B#E4B51A\"]\n },\n blob2: {\n id: \"blob2\",\n name: \"More Blobs\",\n symbol: [\"\\uE01D\", \"\\uE01E\", \"\\uE021\", \"\\uE024\", \"\\uE025\", \"\\uE026\", \"\\uE027\"],\n preventBlur: true\n },\n star: {\n id: \"star\",\n name: \"Geometric Stars\",\n symbol: [\"★\", \"☆\", \"✪\", \"✯\", \"✭\", \"✫\", \"🜞\"]\n },\n star2: {\n id: \"star2\",\n name: \"Realistic Stars\",\n symbol: [\"✶\", \"✦\", \"✧\", \"✺\", \"✹\", \"✷\"],\n color: [\"W#D4FFFF\", \"W#FDFFCC\"]\n },\n gem: {\n id: \"gem\",\n name: \"Gemstones\",\n symbol: [\"💎\"],\n color: [\"B#035E3B\", \"B#943B47\", \"B#032C54\"]\n },\n heiroglyph: {\n id: \"heiroglyph\",\n name: \"Common Hieroglyphs\",\n symbol: [\"𓂀\", \"𓀶\", \"𓅊\", \"𓇌\", \"𓊝\", \"☥\"],\n preventBlur: true\n },\n paperclip: {\n id: \"paperclip\",\n name: \"Useless Paperclips\",\n symbol: [\"𓄲\", \"𓄳\", \"𓄴\", \"𓄵\", \"𓄶\", \"𓄷\", \"𓄸\"],\n preventBlur: true,\n color: [\"B#222222\"]\n },\n snake: {\n id: \"snake\",\n name: \"Various Snakes\",\n symbol: [\"𓆓\", \"𓆔\", \"𓆕\", \"𓆖\", \"𓆗\", \"𓆘\"],\n preventBlur: true\n },\n egyptNumber: {\n id: \"egyptNumber\",\n name: \"Egyptian Numbers\",\n symbol: [\"𓆄\", \"𓅔\", \"𓆾\", \"𓂰\", \"𓍦\", \"𓎋\", \"𓐀\", \"𓃐\"],\n preventBlur: true,\n color: [\"W#123456\"]\n },\n egyptWeather: {\n id: \"egyptWeather\",\n name: \"Egyptian Weathervanes\",\n symbol: [\"𓈹\", \"𓈧\", \"𓈷\", \"𓉈\", \"𓈩\", \"𓈻\", \"𓈽\"],\n preventBlur: true,\n color: [\"W#607D8B\"]\n },\n limbs: {\n id: \"limbs\",\n name: \"Awkward Limbs\",\n symbol: [\"𓈝\", \"𓄒\", \"𓃂\", \"𓃁\", \"𓂩\", \"𓂙\", \"𓂓\", \"𓂼\"],\n preventBlur: true,\n color: [\"B#E621E6\"]\n },\n animal: {\n id: \"animal\",\n name: \"Moses' Ark\",\n symbol: [\"𓆏\", \"𓆉\", \"𓅬\", \"𓅃\", \"𓃲\", \"𓆣\", \"𓆊\", \"𓃰\"],\n preventBlur: true,\n color: [\"W#0000AA\"]\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L2dseXBoLWNvc21ldGljcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDTyxNQUFNQSxpQkFBaUIsR0FBRztBQUMvQkMsRUFBQUEsS0FBSyxFQUFFO0FBQ0xDLElBQUFBLEVBQUUsRUFBRSxPQURDO0FBRUxDLElBQUFBLElBQUksRUFBRSxvQkFGRDtBQUdMQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsRUFBb0MsR0FBcEMsQ0FISDtBQUlMQyxJQUFBQSxLQUFLLEVBQUUsQ0FBQyxVQUFELEVBQWEsVUFBYjtBQUpGLEdBRHdCO0FBTy9CQyxFQUFBQSxLQUFLLEVBQUU7QUFDTEosSUFBQUEsRUFBRSxFQUFFLE9BREM7QUFFTEMsSUFBQUEsSUFBSSxFQUFFLGtCQUZEO0FBR0xDLElBQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxFQUFnQixHQUFoQjtBQUhILEdBUHdCO0FBWS9CRyxFQUFBQSxHQUFHLEVBQUU7QUFDSEwsSUFBQUEsRUFBRSxFQUFFLEtBREQ7QUFFSEMsSUFBQUEsSUFBSSxFQUFFLFlBRkg7QUFHSEMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLENBSEw7QUFJSEMsSUFBQUEsS0FBSyxFQUFFLENBQUMsVUFBRDtBQUpKLEdBWjBCO0FBa0IvQkcsRUFBQUEsUUFBUSxFQUFFO0FBQ1JOLElBQUFBLEVBQUUsRUFBRSxVQURJO0FBRVJDLElBQUFBLElBQUksRUFBRSxpQkFGRTtBQUdSQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsQ0FIQTtBQUlSSyxJQUFBQSxXQUFXLEVBQUUsSUFKTDtBQUtSSixJQUFBQSxLQUFLLEVBQUUsQ0FBQyxVQUFEO0FBTEMsR0FsQnFCO0FBeUIvQkssRUFBQUEsV0FBVyxFQUFFO0FBQ1hSLElBQUFBLEVBQUUsRUFBRSxhQURPO0FBRVhDLElBQUFBLElBQUksRUFBRSxnQkFGSztBQUdYQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsQ0FIRztBQUlYSyxJQUFBQSxXQUFXLEVBQUUsSUFKRjtBQUtYSixJQUFBQSxLQUFLLEVBQUUsQ0FBQyxVQUFEO0FBTEksR0F6QmtCO0FBZ0MvQk0sRUFBQUEsSUFBSSxFQUFFO0FBQ0pULElBQUFBLEVBQUUsRUFBRSxNQURBO0FBRUpDLElBQUFBLElBQUksRUFBRSxjQUZGO0FBR0pDLElBQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxFQUFnQixHQUFoQixFQUFxQixHQUFyQixFQUEwQixHQUExQixDQUhKO0FBSUpDLElBQUFBLEtBQUssRUFBRSxDQUFDLFVBQUQ7QUFKSCxHQWhDeUI7QUFzQy9CTyxFQUFBQSxLQUFLLEVBQUU7QUFDTFYsSUFBQUEsRUFBRSxFQUFFLE9BREM7QUFFTEMsSUFBQUEsSUFBSSxFQUFFLGNBRkQ7QUFHTEMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLENBSEg7QUFJTEMsSUFBQUEsS0FBSyxFQUFFLENBQUMsVUFBRDtBQUpGLEdBdEN3QjtBQTRDL0JRLEVBQUFBLE9BQU8sRUFBRTtBQUNQWCxJQUFBQSxFQUFFLEVBQUUsU0FERztBQUVQQyxJQUFBQSxJQUFJLEVBQUUsVUFGQztBQUdQQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsRUFBb0MsR0FBcEMsQ0FIRDtBQUlQSyxJQUFBQSxXQUFXLEVBQUUsSUFKTjtBQUtQSixJQUFBQSxLQUFLLEVBQUUsQ0FBQyxVQUFEO0FBTEEsR0E1Q3NCO0FBbUQvQlMsRUFBQUEsS0FBSyxFQUFFO0FBQ0xaLElBQUFBLEVBQUUsRUFBRSxPQURDO0FBRUxDLElBQUFBLElBQUksRUFBRSxlQUZEO0FBR0xDLElBQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxFQUFnQixHQUFoQixFQUFxQixHQUFyQixFQUEwQixHQUExQixFQUErQixHQUEvQixFQUFvQyxHQUFwQyxDQUhIO0FBSUxDLElBQUFBLEtBQUssRUFBRSxDQUFDLFVBQUQ7QUFKRixHQW5Ed0I7QUF5RC9CVSxFQUFBQSxNQUFNLEVBQUU7QUFDTmIsSUFBQUEsRUFBRSxFQUFFLFFBREU7QUFFTkMsSUFBQUEsSUFBSSxFQUFFLGVBRkE7QUFHTkMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLENBSEY7QUFJTkMsSUFBQUEsS0FBSyxFQUFFLENBQUMsVUFBRDtBQUpELEdBekR1QjtBQStEL0JXLEVBQUFBLE1BQU0sRUFBRTtBQUNOZCxJQUFBQSxFQUFFLEVBQUUsUUFERTtBQUVOQyxJQUFBQSxJQUFJLEVBQUUsZ0JBRkE7QUFHTkMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLEVBQStCLEdBQS9CLENBSEY7QUFJTkssSUFBQUEsV0FBVyxFQUFFLElBSlA7QUFLTkosSUFBQUEsS0FBSyxFQUFFLENBQUMsVUFBRDtBQUxELEdBL0R1QjtBQXNFL0JZLEVBQUFBLFFBQVEsRUFBRTtBQUNSZixJQUFBQSxFQUFFLEVBQUUsVUFESTtBQUVSQyxJQUFBQSxJQUFJLEVBQUUsYUFGRTtBQUdSQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsRUFBb0MsR0FBcEMsQ0FIQTtBQUlSSyxJQUFBQSxXQUFXLEVBQUUsSUFKTDtBQUtSSixJQUFBQSxLQUFLLEVBQUUsQ0FBQyxVQUFEO0FBTEMsR0F0RXFCO0FBNkUvQmEsRUFBQUEsT0FBTyxFQUFFO0FBQ1BoQixJQUFBQSxFQUFFLEVBQUUsU0FERztBQUVQQyxJQUFBQSxJQUFJLEVBQUUsaUJBRkM7QUFHUEMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLEVBQStCLEdBQS9CLEVBQW9DLEdBQXBDLENBSEQ7QUFJUEssSUFBQUEsV0FBVyxFQUFFLElBSk47QUFLUEosSUFBQUEsS0FBSyxFQUFFLENBQUMsVUFBRDtBQUxBLEdBN0VzQjtBQW9GL0JjLEVBQUFBLE1BQU0sRUFBRTtBQUNOakIsSUFBQUEsRUFBRSxFQUFFLFFBREU7QUFFTkMsSUFBQUEsSUFBSSxFQUFFLFlBRkE7QUFHTkMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLEVBQStCLEdBQS9CO0FBSEYsR0FwRnVCO0FBeUYvQmdCLEVBQUFBLE1BQU0sRUFBRTtBQUNObEIsSUFBQUEsRUFBRSxFQUFFLFFBREU7QUFFTkMsSUFBQUEsSUFBSSxFQUFFLHNCQUZBO0FBR05DLElBQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxFQUFnQixHQUFoQixFQUFxQixHQUFyQixDQUhGO0FBSU5LLElBQUFBLFdBQVcsRUFBRTtBQUpQLEdBekZ1QjtBQStGL0JZLEVBQUFBLEtBQUssRUFBRTtBQUNMbkIsSUFBQUEsRUFBRSxFQUFFLE9BREM7QUFFTEMsSUFBQUEsSUFBSSxFQUFFLGNBRkQ7QUFHTEMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLENBSEg7QUFJTEssSUFBQUEsV0FBVyxFQUFFLElBSlI7QUFLTEosSUFBQUEsS0FBSyxFQUFFLENBQUMsVUFBRDtBQUxGLEdBL0Z3QjtBQXNHL0JpQixFQUFBQSxNQUFNLEVBQUU7QUFDTnBCLElBQUFBLEVBQUUsRUFBRSxRQURFO0FBRU5DLElBQUFBLElBQUksRUFBRSxtQkFGQTtBQUdOQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsRUFBb0MsR0FBcEMsQ0FIRjtBQUlOSyxJQUFBQSxXQUFXLEVBQUUsSUFKUDtBQUtOSixJQUFBQSxLQUFLLEVBQUUsQ0FBQyxVQUFEO0FBTEQsR0F0R3VCO0FBNkcvQmtCLEVBQUFBLE9BQU8sRUFBRTtBQUNQckIsSUFBQUEsRUFBRSxFQUFFLFNBREc7QUFFUEMsSUFBQUEsSUFBSSxFQUFFLGlCQUZDO0FBR1BDLElBQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxFQUFnQixHQUFoQixFQUFxQixHQUFyQixFQUEwQixHQUExQixDQUhEO0FBSVBLLElBQUFBLFdBQVcsRUFBRSxJQUpOO0FBS1BKLElBQUFBLEtBQUssRUFBRSxDQUFDLFVBQUQ7QUFMQSxHQTdHc0I7QUFvSC9CbUIsRUFBQUEsT0FBTyxFQUFFO0FBQ1B0QixJQUFBQSxFQUFFLEVBQUUsU0FERztBQUVQQyxJQUFBQSxJQUFJLEVBQUUsbUJBRkM7QUFHUEMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLEVBQStCLEdBQS9CLEVBQW9DLEdBQXBDLENBSEQ7QUFJUEssSUFBQUEsV0FBVyxFQUFFO0FBSk4sR0FwSHNCO0FBMEgvQmdCLEVBQUFBLElBQUksRUFBRTtBQUNKdkIsSUFBQUEsRUFBRSxFQUFFLE1BREE7QUFFSkMsSUFBQUEsSUFBSSxFQUFFLFlBRkY7QUFHSkMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLENBSEo7QUFJSkssSUFBQUEsV0FBVyxFQUFFO0FBSlQsR0ExSHlCO0FBZ0kvQmlCLEVBQUFBLE1BQU0sRUFBRTtBQUNOeEIsSUFBQUEsRUFBRSxFQUFFLFFBREU7QUFFTkMsSUFBQUEsSUFBSSxFQUFFLGdCQUZBO0FBR05DLElBQUFBLE1BQU0sRUFBRSxDQUFDLEdBQUQsRUFBTSxHQUFOLEVBQVcsR0FBWCxFQUFnQixHQUFoQixDQUhGO0FBSU5LLElBQUFBLFdBQVcsRUFBRSxJQUpQO0FBS05KLElBQUFBLEtBQUssRUFBRSxDQUFDLFVBQUQ7QUFMRCxHQWhJdUI7QUF1SS9Cc0IsRUFBQUEsU0FBUyxFQUFFO0FBQ1R6QixJQUFBQSxFQUFFLEVBQUUsV0FESztBQUVUQyxJQUFBQSxJQUFJLEVBQUUsaUJBRkc7QUFHVEMsSUFBQUEsTUFBTSxFQUFFLENBQUMsUUFBRCxFQUFXLEdBQVgsRUFBZ0IsUUFBaEIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsQ0FIQztBQUlUQyxJQUFBQSxLQUFLLEVBQUUsQ0FBQyxVQUFEO0FBSkUsR0F2SW9CO0FBNkkvQnVCLEVBQUFBLE9BQU8sRUFBRTtBQUNQMUIsSUFBQUEsRUFBRSxFQUFFLFNBREc7QUFFUEMsSUFBQUEsSUFBSSxFQUFFLG9CQUZDO0FBR1BDLElBQUFBLE1BQU0sRUFBRSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixFQUF5QixJQUF6QixFQUErQixJQUEvQixFQUFxQyxJQUFyQyxFQUEyQyxJQUEzQyxDQUhEO0FBSVBDLElBQUFBLEtBQUssRUFBRSxDQUFDLFVBQUQ7QUFKQSxHQTdJc0I7QUFtSi9Cd0IsRUFBQUEsSUFBSSxFQUFFO0FBQ0ozQixJQUFBQSxFQUFFLEVBQUUsTUFEQTtBQUVKQyxJQUFBQSxJQUFJLEVBQUUsT0FGRjtBQUdKQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxRQUFELEVBQVcsUUFBWCxFQUFxQixRQUFyQixFQUErQixRQUEvQixFQUF5QyxRQUF6QyxFQUFtRCxRQUFuRCxFQUE2RCxRQUE3RCxDQUhKO0FBSUpLLElBQUFBLFdBQVcsRUFBRSxJQUpUO0FBS0pKLElBQUFBLEtBQUssRUFBRSxDQUFDLFVBQUQ7QUFMSCxHQW5KeUI7QUEwSi9CeUIsRUFBQUEsS0FBSyxFQUFFO0FBQ0w1QixJQUFBQSxFQUFFLEVBQUUsT0FEQztBQUVMQyxJQUFBQSxJQUFJLEVBQUUsWUFGRDtBQUdMQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxRQUFELEVBQVcsUUFBWCxFQUFxQixRQUFyQixFQUErQixRQUEvQixFQUF5QyxRQUF6QyxFQUFtRCxRQUFuRCxFQUE2RCxRQUE3RCxDQUhIO0FBSUxLLElBQUFBLFdBQVcsRUFBRTtBQUpSLEdBMUp3QjtBQWdLL0JzQixFQUFBQSxJQUFJLEVBQUU7QUFDSjdCLElBQUFBLEVBQUUsRUFBRSxNQURBO0FBRUpDLElBQUFBLElBQUksRUFBRSxpQkFGRjtBQUdKQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsSUFBL0I7QUFISixHQWhLeUI7QUFxSy9CNEIsRUFBQUEsS0FBSyxFQUFFO0FBQ0w5QixJQUFBQSxFQUFFLEVBQUUsT0FEQztBQUVMQyxJQUFBQSxJQUFJLEVBQUUsaUJBRkQ7QUFHTEMsSUFBQUEsTUFBTSxFQUFFLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLENBSEg7QUFJTEMsSUFBQUEsS0FBSyxFQUFFLENBQUMsVUFBRCxFQUFhLFVBQWI7QUFKRixHQXJLd0I7QUEySy9CNEIsRUFBQUEsR0FBRyxFQUFFO0FBQ0gvQixJQUFBQSxFQUFFLEVBQUUsS0FERDtBQUVIQyxJQUFBQSxJQUFJLEVBQUUsV0FGSDtBQUdIQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxJQUFELENBSEw7QUFJSEMsSUFBQUEsS0FBSyxFQUFFLENBQUMsVUFBRCxFQUFhLFVBQWIsRUFBeUIsVUFBekI7QUFKSixHQTNLMEI7QUFpTC9CNkIsRUFBQUEsVUFBVSxFQUFFO0FBQ1ZoQyxJQUFBQSxFQUFFLEVBQUUsWUFETTtBQUVWQyxJQUFBQSxJQUFJLEVBQUUsb0JBRkk7QUFHVkMsSUFBQUEsTUFBTSxFQUFFLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFiLEVBQW1CLElBQW5CLEVBQXlCLElBQXpCLEVBQStCLEdBQS9CLENBSEU7QUFJVkssSUFBQUEsV0FBVyxFQUFFO0FBSkgsR0FqTG1CO0FBdUwvQjBCLEVBQUFBLFNBQVMsRUFBRTtBQUNUakMsSUFBQUEsRUFBRSxFQUFFLFdBREs7QUFFVEMsSUFBQUEsSUFBSSxFQUFFLG9CQUZHO0FBR1RDLElBQUFBLE1BQU0sRUFBRSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixFQUF5QixJQUF6QixFQUErQixJQUEvQixFQUFxQyxJQUFyQyxDQUhDO0FBSVRLLElBQUFBLFdBQVcsRUFBRSxJQUpKO0FBS1RKLElBQUFBLEtBQUssRUFBRSxDQUFDLFVBQUQ7QUFMRSxHQXZMb0I7QUE4TC9CK0IsRUFBQUEsS0FBSyxFQUFFO0FBQ0xsQyxJQUFBQSxFQUFFLEVBQUUsT0FEQztBQUVMQyxJQUFBQSxJQUFJLEVBQUUsZ0JBRkQ7QUFHTEMsSUFBQUEsTUFBTSxFQUFFLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFiLEVBQW1CLElBQW5CLEVBQXlCLElBQXpCLEVBQStCLElBQS9CLENBSEg7QUFJTEssSUFBQUEsV0FBVyxFQUFFO0FBSlIsR0E5THdCO0FBb00vQjRCLEVBQUFBLFdBQVcsRUFBRTtBQUNYbkMsSUFBQUEsRUFBRSxFQUFFLGFBRE87QUFFWEMsSUFBQUEsSUFBSSxFQUFFLGtCQUZLO0FBR1hDLElBQUFBLE1BQU0sRUFBRSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixFQUF5QixJQUF6QixFQUErQixJQUEvQixFQUFxQyxJQUFyQyxFQUEyQyxJQUEzQyxDQUhHO0FBSVhLLElBQUFBLFdBQVcsRUFBRSxJQUpGO0FBS1hKLElBQUFBLEtBQUssRUFBRSxDQUFDLFVBQUQ7QUFMSSxHQXBNa0I7QUEyTS9CaUMsRUFBQUEsWUFBWSxFQUFFO0FBQ1pwQyxJQUFBQSxFQUFFLEVBQUUsY0FEUTtBQUVaQyxJQUFBQSxJQUFJLEVBQUUsdUJBRk07QUFHWkMsSUFBQUEsTUFBTSxFQUFFLENBQUMsSUFBRCxFQUFPLElBQVAsRUFBYSxJQUFiLEVBQW1CLElBQW5CLEVBQXlCLElBQXpCLEVBQStCLElBQS9CLEVBQXFDLElBQXJDLENBSEk7QUFJWkssSUFBQUEsV0FBVyxFQUFFLElBSkQ7QUFLWkosSUFBQUEsS0FBSyxFQUFFLENBQUMsVUFBRDtBQUxLLEdBM01pQjtBQWtOL0JrQyxFQUFBQSxLQUFLLEVBQUU7QUFDTHJDLElBQUFBLEVBQUUsRUFBRSxPQURDO0FBRUxDLElBQUFBLElBQUksRUFBRSxlQUZEO0FBR0xDLElBQUFBLE1BQU0sRUFBRSxDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsSUFBYixFQUFtQixJQUFuQixFQUF5QixJQUF6QixFQUErQixJQUEvQixFQUFxQyxJQUFyQyxFQUEyQyxJQUEzQyxDQUhIO0FBSUxLLElBQUFBLFdBQVcsRUFBRSxJQUpSO0FBS0xKLElBQUFBLEtBQUssRUFBRSxDQUFDLFVBQUQ7QUFMRixHQWxOd0I7QUF5Ti9CbUMsRUFBQUEsTUFBTSxFQUFFO0FBQ050QyxJQUFBQSxFQUFFLEVBQUUsUUFERTtBQUVOQyxJQUFBQSxJQUFJLEVBQUUsWUFGQTtBQUdOQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQyxJQUFELEVBQU8sSUFBUCxFQUFhLElBQWIsRUFBbUIsSUFBbkIsRUFBeUIsSUFBekIsRUFBK0IsSUFBL0IsRUFBcUMsSUFBckMsRUFBMkMsSUFBM0MsQ0FIRjtBQUlOSyxJQUFBQSxXQUFXLEVBQUUsSUFKUDtBQUtOSixJQUFBQSxLQUFLLEVBQUUsQ0FBQyxVQUFEO0FBTEQ7QUF6TnVCLENBQTFCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvcmUvc2VjcmV0LWZvcm11bGEvcmVhbGl0eS9nbHlwaC1jb3NtZXRpY3MuanM/NDIxOCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb2xvciBwcm9wIGlzIGEgY29tYmluYXRpb24gb2YgYSBCL1cgYmFja2dyb3VuZCBhbmQgYSBib3JkZXIgaGV4IGNvZGVcclxuZXhwb3J0IGNvbnN0IGdseXBoQ29zbWV0aWNTZXRzID0ge1xyXG4gIGNhcmRzOiB7XHJcbiAgICBpZDogXCJjYXJkc1wiLFxyXG4gICAgbmFtZTogXCJQbGF5aW5nIENhcmQgU3VpdHNcIixcclxuICAgIHN5bWJvbDogW1wi4pmgXCIsIFwi4pmlXCIsIFwi4pmmXCIsIFwi4pmjXCIsIFwi4pmkXCIsIFwi4pmnXCIsIFwi4pmhXCIsIFwi4pmiXCJdLFxyXG4gICAgY29sb3I6IFtcIlcjMDAwMDAwXCIsIFwiQiNGRjIyMjJcIl0sXHJcbiAgfSxcclxuICBsb3dlcjoge1xyXG4gICAgaWQ6IFwibG93ZXJcIixcclxuICAgIG5hbWU6IFwiTG93ZXJjYXNlIEdseXBoc1wiLFxyXG4gICAgc3ltYm9sOiBbXCLPiVwiLCBcIs6+XCIsIFwizrRcIiwgXCLPiFwiXSxcclxuICB9LFxyXG4gIHN1czoge1xyXG4gICAgaWQ6IFwic3VzXCIsXHJcbiAgICBuYW1lOiBcIlN1c3BpY2lvdXNcIixcclxuICAgIHN5bWJvbDogW1wi4LaUXCIsIFwi4LaVXCIsIFwi4LaeXCIsIFwi4LapXCJdLFxyXG4gICAgY29sb3I6IFtcIkIjRkNBNDBBXCJdXHJcbiAgfSxcclxuICBjdXJyZW5jeToge1xyXG4gICAgaWQ6IFwiY3VycmVuY3lcIixcclxuICAgIG5hbWU6IFwiTW9kZXJuIEN1cnJlbmN5XCIsXHJcbiAgICBzeW1ib2w6IFtcIiRcIiwgXCLigr1cIiwgXCLCpVwiLCBcIuKCrFwiLCBcIsKiXCIsIFwiwqNcIiwgXCLigqlcIl0sXHJcbiAgICBwcmV2ZW50Qmx1cjogdHJ1ZSxcclxuICAgIGNvbG9yOiBbXCJXIzAwREQwMFwiXSxcclxuICB9LFxyXG4gIG9sZEN1cnJlbmN5OiB7XHJcbiAgICBpZDogXCJvbGRDdXJyZW5jeVwiLFxyXG4gICAgbmFtZTogXCJPbGRlciBDdXJyZW5jeVwiLFxyXG4gICAgc3ltYm9sOiBbXCLigrdcIiwgXCLigrBcIiwgXCLigrNcIiwgXCLigq9cIiwgXCLigrtcIl0sXHJcbiAgICBwcmV2ZW50Qmx1cjogdHJ1ZSxcclxuICAgIGNvbG9yOiBbXCJCIzAwREQwMFwiXSxcclxuICB9LFxyXG4gIHBpcGU6IHtcclxuICAgIGlkOiBcInBpcGVcIixcclxuICAgIG5hbWU6IFwiU2luZ2xlIFBpcGVzXCIsXHJcbiAgICBzeW1ib2w6IFtcIuKUjFwiLCBcIuKUkFwiLCBcIuKUlFwiLCBcIuKUmFwiLCBcIuKUgFwiLCBcIuKUglwiXSxcclxuICAgIGNvbG9yOiBbXCJCIzMzRkYzM1wiXSxcclxuICB9LFxyXG4gIHBpcGUyOiB7XHJcbiAgICBpZDogXCJwaXBlMlwiLFxyXG4gICAgbmFtZTogXCJEb3VibGUgUGlwZXNcIixcclxuICAgIHN5bWJvbDogW1wi4pWUXCIsIFwi4pWXXCIsIFwi4pWaXCIsIFwi4pWdXCIsIFwi4pWQXCIsIFwi4pWRXCJdLFxyXG4gICAgY29sb3I6IFtcIlcjMzNGRjMzXCJdLFxyXG4gIH0sXHJcbiAgdHJpZ3JhbToge1xyXG4gICAgaWQ6IFwidHJpZ3JhbVwiLFxyXG4gICAgbmFtZTogXCJUcmlncmFtc1wiLFxyXG4gICAgc3ltYm9sOiBbXCLimLBcIiwgXCLimLFcIiwgXCLimLJcIiwgXCLimLNcIiwgXCLimLRcIiwgXCLimLVcIiwgXCLimLZcIiwgXCLimLdcIl0sXHJcbiAgICBwcmV2ZW50Qmx1cjogdHJ1ZSxcclxuICAgIGNvbG9yOiBbXCJCI0ZGRkZGRlwiXSxcclxuICB9LFxyXG4gIGFycm93OiB7XHJcbiAgICBpZDogXCJhcnJvd1wiLFxyXG4gICAgbmFtZTogXCJTaW5nbGUgQXJyb3dzXCIsXHJcbiAgICBzeW1ib2w6IFtcIuKGkFwiLCBcIuKGk1wiLCBcIuKGkVwiLCBcIuKGklwiLCBcIuKGllwiLCBcIuKGl1wiLCBcIuKGmFwiLCBcIuKGmVwiXSxcclxuICAgIGNvbG9yOiBbXCJXI0NDMDAwMFwiXSxcclxuICB9LFxyXG4gIGFycm93Mjoge1xyXG4gICAgaWQ6IFwiYXJyb3cyXCIsXHJcbiAgICBuYW1lOiBcIkRvdWJsZSBBcnJvd3NcIixcclxuICAgIHN5bWJvbDogW1wi4oeEXCIsIFwi4oeFXCIsIFwi4oeUXCIsIFwi4oeVXCJdLFxyXG4gICAgY29sb3I6IFtcIlcjMDAwMENDXCJdLFxyXG4gIH0sXHJcbiAgYXJyb3czOiB7XHJcbiAgICBpZDogXCJhcnJvdzNcIixcclxuICAgIG5hbWU6IFwiU3BlY2lhbCBBcnJvd3NcIixcclxuICAgIHN5bWJvbDogW1wi4oa6XCIsIFwi4oavXCIsIFwi4oasXCIsIFwi4oexXCIsIFwi4oeyXCIsIFwi4oeuXCIsIFwi4oatXCJdLFxyXG4gICAgcHJldmVudEJsdXI6IHRydWUsXHJcbiAgICBjb2xvcjogW1wiVyNDQ0NDMDBcIl0sXHJcbiAgfSxcclxuICBpbnRlZ3JhbDoge1xyXG4gICAgaWQ6IFwiaW50ZWdyYWxcIixcclxuICAgIG5hbWU6IFwiSW50ZWdyYXRpb25cIixcclxuICAgIHN5bWJvbDogW1wi4oisXCIsIFwi4oitXCIsIFwi4oiuXCIsIFwi4oivXCIsIFwi4oiwXCIsIFwi4oixXCIsIFwi4oiyXCIsIFwi4oizXCJdLFxyXG4gICAgcHJldmVudEJsdXI6IHRydWUsXHJcbiAgICBjb2xvcjogW1wiQiMxMjM0NTZcIl1cclxuICB9LFxyXG4gIG51bWJlcnM6IHtcclxuICAgIGlkOiBcIm51bWJlcnNcIixcclxuICAgIG5hbWU6IFwiQ2lyY2xlZCBOdW1iZXJzXCIsXHJcbiAgICBzeW1ib2w6IFtcIuKRoFwiLCBcIuKRoVwiLCBcIuKRolwiLCBcIuKRo1wiLCBcIuKRpFwiLCBcIuKRpVwiLCBcIuKRplwiLCBcIuKRp1wiXSxcclxuICAgIHByZXZlbnRCbHVyOiB0cnVlLFxyXG4gICAgY29sb3I6IFtcIkIjNjA3RDhCXCJdXHJcbiAgfSxcclxuICBibG9ja3M6IHtcclxuICAgIGlkOiBcImJsb2Nrc1wiLFxyXG4gICAgbmFtZTogXCIyeDIgQmxvY2tzXCIsXHJcbiAgICBzeW1ib2w6IFtcIuKWmFwiLCBcIuKWmlwiLCBcIuKWnlwiLCBcIuKWmVwiLCBcIuKWm1wiLCBcIuKWnFwiLCBcIuKWn1wiXSxcclxuICB9LFxyXG4gIHNoYXBlczoge1xyXG4gICAgaWQ6IFwic2hhcGVzXCIsXHJcbiAgICBuYW1lOiBcIk1pc2NlbGxhbmVvdXMgU2hhcGVzXCIsXHJcbiAgICBzeW1ib2w6IFtcIuKWsFwiLCBcIuKWslwiLCBcIuKXhlwiLCBcIuKXjlwiLCBcIuKXjVwiXSxcclxuICAgIHByZXZlbnRCbHVyOiB0cnVlLFxyXG4gIH0sXHJcbiAgY2hlc3M6IHtcclxuICAgIGlkOiBcImNoZXNzXCIsXHJcbiAgICBuYW1lOiBcIkNoZXNzIFBpZWNlc1wiLFxyXG4gICAgc3ltYm9sOiBbXCLimZ9cIiwgXCLimZ5cIiwgXCLimZ1cIiwgXCLimZxcIiwgXCLimZtcIiwgXCLimZpcIl0sXHJcbiAgICBwcmV2ZW50Qmx1cjogdHJ1ZSxcclxuICAgIGNvbG9yOiBbXCJCI0FBQUFBQVwiXSxcclxuICB9LFxyXG4gIHBsYW5ldDoge1xyXG4gICAgaWQ6IFwicGxhbmV0XCIsXHJcbiAgICBuYW1lOiBcIlBsYW5ldGFyeSBTeW1ib2xzXCIsXHJcbiAgICBzeW1ib2w6IFtcIuKYv1wiLCBcIuKZgFwiLCBcIuKZgVwiLCBcIuKZglwiLCBcIuKZg1wiLCBcIuKZhFwiLCBcIuKZhlwiLCBcIuKZh1wiXSxcclxuICAgIHByZXZlbnRCbHVyOiB0cnVlLFxyXG4gICAgY29sb3I6IFtcIkIjOTY0QjAwXCJdLFxyXG4gIH0sXHJcbiAgbXVzaWNhbDoge1xyXG4gICAgaWQ6IFwibXVzaWNhbFwiLFxyXG4gICAgbmFtZTogXCJNdXNpY2FsIFN5bWJvbHNcIixcclxuICAgIHN5bWJvbDogW1wi4pmpXCIsIFwi4pmqXCIsIFwi4pmsXCIsIFwi4pmtXCIsIFwi4pmuXCIsIFwi4pmvXCJdLFxyXG4gICAgcHJldmVudEJsdXI6IHRydWUsXHJcbiAgICBjb2xvcjogW1wiVyNFNjIxRTZcIl1cclxuICB9LFxyXG4gIHJlY3ljbGU6IHtcclxuICAgIGlkOiBcInJlY3ljbGVcIixcclxuICAgIG5hbWU6IFwiUmVjeWNsaW5nIFN5bWJvbHNcIixcclxuICAgIHN5bWJvbDogW1wi4pm7XCIsIFwi4pmzXCIsIFwi4pm0XCIsIFwi4pm1XCIsIFwi4pm2XCIsIFwi4pm3XCIsIFwi4pm4XCIsIFwi4pm5XCJdLFxyXG4gICAgcHJldmVudEJsdXI6IHRydWUsXHJcbiAgfSxcclxuICBkaWNlOiB7XHJcbiAgICBpZDogXCJkaWNlXCIsXHJcbiAgICBuYW1lOiBcIkRpY2UgRmFjZXNcIixcclxuICAgIHN5bWJvbDogW1wi4pqAXCIsIFwi4pqBXCIsIFwi4pqCXCIsIFwi4pqDXCIsIFwi4pqEXCIsIFwi4pqFXCJdLFxyXG4gICAgcHJldmVudEJsdXI6IHRydWUsXHJcbiAgfSxcclxuICBoYXphcmQ6IHtcclxuICAgIGlkOiBcImhhemFyZFwiLFxyXG4gICAgbmFtZTogXCJIYXphcmQgU3ltYm9sc1wiLFxyXG4gICAgc3ltYm9sOiBbXCLimKBcIiwgXCLimKJcIiwgXCLimKNcIiwgXCLimqBcIl0sXHJcbiAgICBwcmV2ZW50Qmx1cjogdHJ1ZSxcclxuICAgIGNvbG9yOiBbXCJXI0ZDQTQwQVwiXVxyXG4gIH0sXHJcbiAgY2VsZXN0aWFsOiB7XHJcbiAgICBpZDogXCJjZWxlc3RpYWxcIixcclxuICAgIG5hbWU6IFwiQ2VsZXN0aWFsIEljb25zXCIsXHJcbiAgICBzeW1ib2w6IFtcIlxcdUYwQzFcIiwgXCLijKxcIiwgXCJcXHVGMTg1XCIsIFwi4ZudXCIsIFwi4pmFXCJdLFxyXG4gICAgY29sb3I6IFtcIkIjMDBCQ0Q0XCJdLFxyXG4gIH0sXHJcbiAgYWxjaGVteToge1xyXG4gICAgaWQ6IFwiYWxjaGVteVwiLFxyXG4gICAgbmFtZTogXCJBbGNoZW1pY2FsIFN5bWJvbHNcIixcclxuICAgIHN5bWJvbDogW1wi8J+cgVwiLCBcIvCfnIJcIiwgXCLwn5yDXCIsIFwi8J+chFwiLCBcIvCfnJRcIiwgXCLwn5yNXCIsIFwi8J+cnlwiLCBcIvCfnJpcIl0sXHJcbiAgICBjb2xvcjogW1wiQiNGRkQ3MDBcIl0sXHJcbiAgfSxcclxuICBibG9iOiB7XHJcbiAgICBpZDogXCJibG9iXCIsXHJcbiAgICBuYW1lOiBcIkJsb2JzXCIsXHJcbiAgICBzeW1ib2w6IFtcIlxcdUUwMTFcIiwgXCJcXHVFMDEyXCIsIFwiXFx1RTAxM1wiLCBcIlxcdUUwMTRcIiwgXCJcXHVFMDE2XCIsIFwiXFx1RTAxQVwiLCBcIlxcdUUwMUNcIl0sXHJcbiAgICBwcmV2ZW50Qmx1cjogdHJ1ZSxcclxuICAgIGNvbG9yOiBbXCJCI0U0QjUxQVwiXSxcclxuICB9LFxyXG4gIGJsb2IyOiB7XHJcbiAgICBpZDogXCJibG9iMlwiLFxyXG4gICAgbmFtZTogXCJNb3JlIEJsb2JzXCIsXHJcbiAgICBzeW1ib2w6IFtcIlxcdUUwMURcIiwgXCJcXHVFMDFFXCIsIFwiXFx1RTAyMVwiLCBcIlxcdUUwMjRcIiwgXCJcXHVFMDI1XCIsIFwiXFx1RTAyNlwiLCBcIlxcdUUwMjdcIl0sXHJcbiAgICBwcmV2ZW50Qmx1cjogdHJ1ZSxcclxuICB9LFxyXG4gIHN0YXI6IHtcclxuICAgIGlkOiBcInN0YXJcIixcclxuICAgIG5hbWU6IFwiR2VvbWV0cmljIFN0YXJzXCIsXHJcbiAgICBzeW1ib2w6IFtcIuKYhVwiLCBcIuKYhlwiLCBcIuKcqlwiLCBcIuKcr1wiLCBcIuKcrVwiLCBcIuKcq1wiLCBcIvCfnJ5cIl0sXHJcbiAgfSxcclxuICBzdGFyMjoge1xyXG4gICAgaWQ6IFwic3RhcjJcIixcclxuICAgIG5hbWU6IFwiUmVhbGlzdGljIFN0YXJzXCIsXHJcbiAgICBzeW1ib2w6IFtcIuKctlwiLCBcIuKcplwiLCBcIuKcp1wiLCBcIuKculwiLCBcIuKcuVwiLCBcIuKct1wiXSxcclxuICAgIGNvbG9yOiBbXCJXI0Q0RkZGRlwiLCBcIlcjRkRGRkNDXCJdLFxyXG4gIH0sXHJcbiAgZ2VtOiB7XHJcbiAgICBpZDogXCJnZW1cIixcclxuICAgIG5hbWU6IFwiR2Vtc3RvbmVzXCIsXHJcbiAgICBzeW1ib2w6IFtcIvCfko5cIl0sXHJcbiAgICBjb2xvcjogW1wiQiMwMzVFM0JcIiwgXCJCIzk0M0I0N1wiLCBcIkIjMDMyQzU0XCJdLFxyXG4gIH0sXHJcbiAgaGVpcm9nbHlwaDoge1xyXG4gICAgaWQ6IFwiaGVpcm9nbHlwaFwiLFxyXG4gICAgbmFtZTogXCJDb21tb24gSGllcm9nbHlwaHNcIixcclxuICAgIHN5bWJvbDogW1wi8JOCgFwiLCBcIvCTgLZcIiwgXCLwk4WKXCIsIFwi8JOHjFwiLCBcIvCTip1cIiwgXCLimKVcIl0sXHJcbiAgICBwcmV2ZW50Qmx1cjogdHJ1ZSxcclxuICB9LFxyXG4gIHBhcGVyY2xpcDoge1xyXG4gICAgaWQ6IFwicGFwZXJjbGlwXCIsXHJcbiAgICBuYW1lOiBcIlVzZWxlc3MgUGFwZXJjbGlwc1wiLFxyXG4gICAgc3ltYm9sOiBbXCLwk4SyXCIsIFwi8JOEs1wiLCBcIvCThLRcIiwgXCLwk4S1XCIsIFwi8JOEtlwiLCBcIvCThLdcIiwgXCLwk4S4XCJdLFxyXG4gICAgcHJldmVudEJsdXI6IHRydWUsXHJcbiAgICBjb2xvcjogW1wiQiMyMjIyMjJcIl0sXHJcbiAgfSxcclxuICBzbmFrZToge1xyXG4gICAgaWQ6IFwic25ha2VcIixcclxuICAgIG5hbWU6IFwiVmFyaW91cyBTbmFrZXNcIixcclxuICAgIHN5bWJvbDogW1wi8JOGk1wiLCBcIvCThpRcIiwgXCLwk4aVXCIsIFwi8JOGllwiLCBcIvCThpdcIiwgXCLwk4aYXCJdLFxyXG4gICAgcHJldmVudEJsdXI6IHRydWUsXHJcbiAgfSxcclxuICBlZ3lwdE51bWJlcjoge1xyXG4gICAgaWQ6IFwiZWd5cHROdW1iZXJcIixcclxuICAgIG5hbWU6IFwiRWd5cHRpYW4gTnVtYmVyc1wiLFxyXG4gICAgc3ltYm9sOiBbXCLwk4aEXCIsIFwi8JOFlFwiLCBcIvCThr5cIiwgXCLwk4KwXCIsIFwi8JONplwiLCBcIvCTjotcIiwgXCLwk5CAXCIsIFwi8JODkFwiXSxcclxuICAgIHByZXZlbnRCbHVyOiB0cnVlLFxyXG4gICAgY29sb3I6IFtcIlcjMTIzNDU2XCJdXHJcbiAgfSxcclxuICBlZ3lwdFdlYXRoZXI6IHtcclxuICAgIGlkOiBcImVneXB0V2VhdGhlclwiLFxyXG4gICAgbmFtZTogXCJFZ3lwdGlhbiBXZWF0aGVydmFuZXNcIixcclxuICAgIHN5bWJvbDogW1wi8JOIuVwiLCBcIvCTiKdcIiwgXCLwk4i3XCIsIFwi8JOJiFwiLCBcIvCTiKlcIiwgXCLwk4i7XCIsIFwi8JOIvVwiXSxcclxuICAgIHByZXZlbnRCbHVyOiB0cnVlLFxyXG4gICAgY29sb3I6IFtcIlcjNjA3RDhCXCJdXHJcbiAgfSxcclxuICBsaW1iczoge1xyXG4gICAgaWQ6IFwibGltYnNcIixcclxuICAgIG5hbWU6IFwiQXdrd2FyZCBMaW1ic1wiLFxyXG4gICAgc3ltYm9sOiBbXCLwk4idXCIsIFwi8JOEklwiLCBcIvCTg4JcIiwgXCLwk4OBXCIsIFwi8JOCqVwiLCBcIvCTgplcIiwgXCLwk4KTXCIsIFwi8JOCvFwiXSxcclxuICAgIHByZXZlbnRCbHVyOiB0cnVlLFxyXG4gICAgY29sb3I6IFtcIkIjRTYyMUU2XCJdXHJcbiAgfSxcclxuICBhbmltYWw6IHtcclxuICAgIGlkOiBcImFuaW1hbFwiLFxyXG4gICAgbmFtZTogXCJNb3NlcycgQXJrXCIsXHJcbiAgICBzeW1ib2w6IFtcIvCTho9cIiwgXCLwk4aJXCIsIFwi8JOFrFwiLCBcIvCThYNcIiwgXCLwk4OyXCIsIFwi8JOGo1wiLCBcIvCThopcIiwgXCLwk4OwXCJdLFxyXG4gICAgcHJldmVudEJsdXI6IHRydWUsXHJcbiAgICBjb2xvcjogW1wiVyMwMDAwQUFcIl0sXHJcbiAgfSxcclxufTtcclxuIl0sIm5hbWVzIjpbImdseXBoQ29zbWV0aWNTZXRzIiwiY2FyZHMiLCJpZCIsIm5hbWUiLCJzeW1ib2wiLCJjb2xvciIsImxvd2VyIiwic3VzIiwiY3VycmVuY3kiLCJwcmV2ZW50Qmx1ciIsIm9sZEN1cnJlbmN5IiwicGlwZSIsInBpcGUyIiwidHJpZ3JhbSIsImFycm93IiwiYXJyb3cyIiwiYXJyb3czIiwiaW50ZWdyYWwiLCJudW1iZXJzIiwiYmxvY2tzIiwic2hhcGVzIiwiY2hlc3MiLCJwbGFuZXQiLCJtdXNpY2FsIiwicmVjeWNsZSIsImRpY2UiLCJoYXphcmQiLCJjZWxlc3RpYWwiLCJhbGNoZW15IiwiYmxvYiIsImJsb2IyIiwic3RhciIsInN0YXIyIiwiZ2VtIiwiaGVpcm9nbHlwaCIsInBhcGVyY2xpcCIsInNuYWtlIiwiZWd5cHROdW1iZXIiLCJlZ3lwdFdlYXRoZXIiLCJsaW1icyIsImFuaW1hbCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/core/secret-formula/reality/glyph-cosmetics.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/reality/glyph-effects.js": +/*!**********************************************************!*\ + !*** ./src/core/secret-formula/reality/glyph-effects.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"GlyphCombiner\": () => (/* binding */ GlyphCombiner),\n/* harmony export */ \"glyphEffects\": () => (/* binding */ glyphEffects)\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.reduce.js */ \"./node_modules/core-js/modules/es.array.reduce.js\");\n/* harmony import */ var core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_reduce_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../constants */ \"./src/core/constants.js\");\n\n\nconst GlyphCombiner = Object.freeze({\n /**\r\n * @param {number[]} x\r\n * @returns {number}\r\n */\n add: x => x.reduce(Number.sumReducer, 0),\n\n /**\r\n * @param {number[]} x\r\n * @returns {number}\r\n */\n multiply: x => x.reduce(Number.prodReducer, 1),\n\n /**\r\n * For exponents, the base value is 1, so when we add two exponents a and b we want to get a + b - 1,\r\n * so that if a and b are both close to 1 so is their sum. In general, when we add a list x of exponents,\r\n * we have to add 1 - x.length to the actual sum, so that if all the exponents are close to 1 the result\r\n * is also close to 1 rather than close to x.length.\r\n * @param {number[]} x\r\n * @returns {number}\r\n */\n addExponents: x => x.reduce(Number.sumReducer, 1 - x.length),\n\n /**\r\n * @param {Decimal[]} x\r\n * @returns {Decimal}\r\n */\n multiplyDecimal: x => x.reduce(Decimal.prodReducer, _constants__WEBPACK_IMPORTED_MODULE_1__.DC.D1)\n});\nconst glyphEffects = {\n timepow: {\n id: \"timepow\",\n bitmaskIndex: 0,\n isGenerated: true,\n glyphTypes: [\"time\"],\n singleDesc: \"Time Dimension power +{value}\",\n totalDesc: \"Time Dimension multipliers ^{value}\",\n shortDesc: \"TD power +{value}\",\n effect: (level, strength) => 1.01 + Math.pow(level, 0.32) * Math.pow(strength, 0.45) / 75,\n formatEffect: x => format(x, 3, 3),\n formatSingleEffect: x => format(x - 1, 3, 3),\n combine: GlyphCombiner.addExponents,\n enabledInDoomed: true\n },\n timespeed: {\n id: \"timespeed\",\n bitmaskIndex: 1,\n isGenerated: true,\n glyphTypes: [\"time\"],\n singleDesc: \"Multiply game speed by {value}\",\n totalDesc: \"Game runs ×{value} faster\",\n genericDesc: \"Game speed multiplier\",\n shortDesc: \"Game speed ×{value}\",\n effect: (level, strength) => GlyphAlteration.isEmpowered(\"time\") ? 1 + Math.pow(level, 0.35) : 1 + Math.pow(level, 0.3) * Math.pow(strength, 0.65) / 20,\n formatEffect: x => format(x, 3, 3),\n combine: GlyphCombiner.multiply,\n alteredColor: () => GlyphAlteration.getEmpowermentColor(\"time\"),\n alterationType: ALTERATION_TYPE.EMPOWER,\n enabledInDoomed: true\n },\n timeetermult: {\n id: \"timeetermult\",\n bitmaskIndex: 2,\n isGenerated: true,\n glyphTypes: [\"time\"],\n singleDesc: \"Multiply Eternity gain by {value}\",\n totalDesc: \"Eternity gain ×{value}\",\n genericDesc: \"Eternity gain multiplier\",\n shortDesc: \"Eternities ×{value}\",\n effect: (level, strength) => Math.pow((strength + 3) * level, 0.9) * Math.pow(3, GlyphAlteration.sacrificeBoost(\"time\")),\n formatEffect: x => format(x, 2, 2),\n combine: GlyphCombiner.multiply,\n alteredColor: () => GlyphAlteration.getBoostColor(\"time\"),\n alterationType: ALTERATION_TYPE.BOOST\n },\n timeEP: {\n id: \"timeEP\",\n bitmaskIndex: 3,\n isGenerated: true,\n glyphTypes: [\"time\"],\n singleDesc: () => GlyphAlteration.isAdded(\"time\") ? \"Eternity Point gain \\n×{value} [and ^]{value2}\" : \"Multiply Eternity Point gain by {value}\",\n totalDesc: () => GlyphAlteration.isAdded(\"time\") ? \"Eternity Point gain ×{value} and ^{value2}\" : \"Eternity Point gain ×{value}\",\n genericDesc: () => GlyphAlteration.isAdded(\"time\") ? \"Eternity Point gain multiplier and power\" : \"Eternity Point gain multiplier\",\n shortDesc: () => GlyphAlteration.isAdded(\"time\") ? \"EP ×{value} and ^{value2}\" : \"EP ×{value}\",\n effect: (level, strength) => Math.pow(level * strength, 3) * 100,\n formatEffect: x => format(x, 2, 3),\n combine: GlyphCombiner.multiply,\n conversion: x => 1 + Math.log10(x) / 1000,\n formatSecondaryEffect: x => format(x, 4, 4),\n alteredColor: () => GlyphAlteration.getAdditionColor(\"time\"),\n alterationType: ALTERATION_TYPE.ADDITION\n },\n dilationDT: {\n id: \"dilationDT\",\n bitmaskIndex: 4,\n isGenerated: true,\n glyphTypes: [\"dilation\"],\n singleDesc: \"Multiply Dilated Time gain by {value}\",\n totalDesc: \"Dilated Time gain ×{value}\",\n shortDesc: \"DT ×{value}\",\n effect: (level, strength) => GlyphAlteration.isEmpowered(\"dilation\") ? _constants__WEBPACK_IMPORTED_MODULE_1__.DC.D1_005.pow(level).times(15) : Decimal.pow(level * strength, 1.5).times(2),\n formatEffect: x => format(x, 2, 1),\n combine: GlyphCombiner.multiplyDecimal,\n alteredColor: () => GlyphAlteration.getEmpowermentColor(\"dilation\"),\n alterationType: ALTERATION_TYPE.EMPOWER\n },\n dilationgalaxyThreshold: {\n id: \"dilationgalaxyThreshold\",\n bitmaskIndex: 5,\n isGenerated: true,\n glyphTypes: [\"dilation\"],\n singleDesc: \"Tachyon Galaxy threshold multiplier ×{value}\",\n genericDesc: \"Tachyon Galaxy cost multiplier\",\n shortDesc: \"TG threshold ×{value}\",\n effect: (level, strength) => 1 - Math.pow(level, 0.17) * Math.pow(strength, 0.35) / 100 - GlyphAlteration.sacrificeBoost(\"dilation\") / 50,\n formatEffect: x => format(x, 3, 3),\n alteredColor: () => GlyphAlteration.getBoostColor(\"dilation\"),\n alterationType: ALTERATION_TYPE.BOOST,\n combine: effects => {\n const prod = effects.reduce(Number.prodReducer, 1);\n return prod < 0.4 ? {\n value: 0.4 - Math.pow(0.4 - prod, 1.7),\n capped: true\n } : {\n value: prod,\n capped: false\n };\n },\n enabledInDoomed: true\n },\n dilationTTgen: {\n // TTgen slowly generates TT, value amount is per second, displayed per hour\n id: \"dilationTTgen\",\n bitmaskIndex: 6,\n isGenerated: true,\n glyphTypes: [\"dilation\"],\n singleDesc: () => GlyphAlteration.isAdded(\"dilation\") ? \"Generates {value} Time Theorems/hour \\n[and multiplies Time Theorem \\ngeneration by] {value2}\" : \"Generates {value} Time Theorems per hour\",\n totalDesc: () => GlyphAlteration.isAdded(\"dilation\") ? \"Generating {value} Time Theorems/hour and Time Theorem generation ×{value2}\" : \"Generating {value} Time Theorems per hour\",\n genericDesc: () => GlyphAlteration.isAdded(\"dilation\") ? \"Time Theorem generation and multiplier\" : \"Time Theorem generation\",\n shortDesc: () => GlyphAlteration.isAdded(\"dilation\") ? \"{value} TT/hr and TTgen ×{value2}\" : \"{value} TT/hr\",\n effect: (level, strength) => Math.pow(level * strength, 0.5) / 10000,\n\n /** @type {function(number): string} */\n formatEffect: x => format(3600 * x, 2, 2),\n combine: GlyphCombiner.add,\n conversion: x => Math.clampMin(Math.pow(10000 * x, 1.6), 1),\n formatSecondaryEffect: x => format(x, 2, 2),\n alteredColor: () => GlyphAlteration.getAdditionColor(\"dilation\"),\n alterationType: ALTERATION_TYPE.ADDITION\n },\n dilationpow: {\n id: \"dilationpow\",\n bitmaskIndex: 7,\n isGenerated: true,\n glyphTypes: [\"dilation\"],\n singleDesc: \"Antimatter Dimension power +{value} while Dilated\",\n totalDesc: \"Antimatter Dimension multipliers ^{value} while Dilated\",\n genericDesc: \"Antimatter Dimensions ^x while Dilated\",\n shortDesc: \"Dilated AD power +{value}\",\n effect: (level, strength) => 1.1 + Math.pow(level, 0.7) * Math.pow(strength, 0.7) / 25,\n formatEffect: x => format(x, 2, 2),\n formatSingleEffect: x => format(x - 1, 2, 2),\n combine: GlyphCombiner.addExponents,\n enabledInDoomed: true\n },\n replicationspeed: {\n id: \"replicationspeed\",\n bitmaskIndex: 8,\n isGenerated: true,\n glyphTypes: [\"replication\"],\n singleDesc: \"Multiply Replication speed by {value}\",\n totalDesc: \"Replication speed ×{value}\",\n genericDesc: \"Replication speed multiplier\",\n shortDesc: \"Replication speed ×{value}\",\n effect: (level, strength) => GlyphAlteration.isEmpowered(\"replication\") ? _constants__WEBPACK_IMPORTED_MODULE_1__.DC.D1_007.pow(level).times(10) : Decimal.times(level, strength).times(3),\n formatEffect: x => format(x, 2, 1),\n combine: GlyphCombiner.multiplyDecimal,\n alteredColor: () => GlyphAlteration.getEmpowermentColor(\"replication\"),\n alterationType: ALTERATION_TYPE.EMPOWER\n },\n replicationpow: {\n id: \"replicationpow\",\n bitmaskIndex: 9,\n isGenerated: true,\n glyphTypes: [\"replication\"],\n singleDesc: \"Replicanti multiplier power +{value}\",\n totalDesc: \"Replicanti multiplier ^{value}\",\n shortDesc: \"Replicanti mult. power +{value}\",\n effect: (level, strength) => 1.1 + Math.pow(level, 0.5) * strength / 25 + GlyphAlteration.sacrificeBoost(\"replication\") * 3,\n formatEffect: x => format(x, 2, 2),\n formatSingleEffect: x => format(x - 1, 2, 2),\n combine: GlyphCombiner.addExponents,\n alteredColor: () => GlyphAlteration.getBoostColor(\"replication\"),\n alterationType: ALTERATION_TYPE.BOOST,\n enabledInDoomed: true\n },\n replicationdtgain: {\n id: \"replicationdtgain\",\n bitmaskIndex: 10,\n isGenerated: true,\n glyphTypes: [\"replication\"],\n singleDesc: () => GlyphAlteration.isAdded(\"replication\") ? `Multiply Dilated Time \\n[and Replicanti speed] by \\n+{value} per ${format(_constants__WEBPACK_IMPORTED_MODULE_1__.DC.E10000)} replicanti` : `Multiply Dilated Time gain by \\n+{value} per ${format(_constants__WEBPACK_IMPORTED_MODULE_1__.DC.E10000)} replicanti`,\n totalDesc: () => GlyphAlteration.isAdded(\"replication\") ? `Multiply Dilated Time and Replication speed by +{value} per ${format(_constants__WEBPACK_IMPORTED_MODULE_1__.DC.E10000)} replicanti` : `Multiply Dilated Time gain by +{value} per ${format(_constants__WEBPACK_IMPORTED_MODULE_1__.DC.E10000)} replicanti`,\n genericDesc: () => GlyphAlteration.isAdded(\"replication\") ? \"Dilated Time+Replicanti mult from replicanti\" : \"Dilated Time gain multiplier from replicanti\",\n shortDesc: () => GlyphAlteration.isAdded(\"replication\") ? `×DT and repl. by +{value} per ${format(_constants__WEBPACK_IMPORTED_MODULE_1__.DC.E10000)} replicanti` : `×DT by +{value} per ${format(_constants__WEBPACK_IMPORTED_MODULE_1__.DC.E10000)} replicanti`,\n effect: (level, strength) => 0.0003 * Math.pow(level, 0.3) * Math.pow(strength, 0.65),\n formatEffect: x => format(10000 * x, 2, 2),\n formatSingleEffect: x => format(10000 * x, 2, 2),\n // It's bad to stack this one additively (N glyphs acts as a DT mult of N) or multiplicatively (the raw number is\n // less than 1), so instead we do a multiplicative stacking relative to the \"base\" effect of a level 1, 0% glyph.\n // We also introduce a 3x mult per glyph after the first, so that stacking level 1, 0% glyphs still has an effect.\n // This is still just a flat DT mult when stacking multiple glyphs, but at least it's bigger than 2 or 3.\n combine: effects => ({\n value: effects.length === 0 ? 0 : effects.reduce(Number.prodReducer, Math.pow(0.0001, 1 - effects.length)),\n capped: false\n }),\n conversion: x => x,\n formatSecondaryEffect: x => format(x, 2, 3),\n formatSingleSecondaryEffect: x => format(x, 5, 5),\n alteredColor: () => GlyphAlteration.getAdditionColor(\"replication\"),\n alterationType: ALTERATION_TYPE.ADDITION\n },\n replicationglyphlevel: {\n id: \"replicationglyphlevel\",\n bitmaskIndex: 11,\n isGenerated: true,\n glyphTypes: [\"replication\"],\n singleDesc: () => `Replicanti factor for Glyph level:\\n ^${format(0.4, 1, 1)}\n ➜ ^(${format(0.4, 1, 1)} + {value})`,\n totalDesc: () => `Replicanti factor for Glyph level: ^${format(0.4, 1, 1)}\n ➜ ^(${format(0.4, 1, 1)} + {value})`,\n genericDesc: \"Replicanti factor for Glyph level\",\n shortDesc: \"Replicanti pow. for level +{value}\",\n effect: (level, strength) => Math.pow(Math.pow(level, 0.25) * Math.pow(strength, 0.4), 0.5) / 50,\n formatEffect: x => format(x, 3, 3),\n combine: effects => {\n let sum = effects.reduce(Number.sumReducer, 0);\n if (effects.length > 2) sum *= 6 / (effects.length + 4);\n return sum > 0.1 ? {\n value: 0.1 + 0.2 * (sum - 0.1),\n capped: true\n } : {\n value: sum,\n capped: effects.length > 2\n };\n },\n enabledInDoomed: true\n },\n infinitypow: {\n id: \"infinitypow\",\n bitmaskIndex: 12,\n isGenerated: true,\n glyphTypes: [\"infinity\"],\n singleDesc: \"Infinity Dimension power +{value}\",\n totalDesc: \"Infinity Dimension multipliers ^{value}\",\n shortDesc: \"ID power +{value}\",\n effect: (level, strength) => 1.007 + Math.pow(level, 0.21) * Math.pow(strength, 0.4) / 75 + GlyphAlteration.sacrificeBoost(\"infinity\") / 50,\n formatEffect: x => format(x, 3, 3),\n formatSingleEffect: x => format(x - 1, 3, 3),\n combine: GlyphCombiner.addExponents,\n alteredColor: () => GlyphAlteration.getBoostColor(\"infinity\"),\n alterationType: ALTERATION_TYPE.BOOST,\n enabledInDoomed: true\n },\n infinityrate: {\n id: \"infinityrate\",\n bitmaskIndex: 13,\n isGenerated: true,\n glyphTypes: [\"infinity\"],\n singleDesc: () => `Infinity Power conversion rate: \\n^${formatInt(7)}\n ➜ ^(${formatInt(7)} + {value})`,\n totalDesc: () => `Infinity Power conversion rate: ^${formatInt(7)}\n ➜ ^(${formatInt(7)} + {value})`,\n genericDesc: \"Infinity Power conversion rate\",\n shortDesc: \"Infinity Power conversion +{value}\",\n effect: (level, strength) => Math.pow(level, 0.2) * Math.pow(strength, 0.4) * 0.04,\n formatEffect: x => format(x, 2, 2),\n combine: GlyphCombiner.add,\n enabledInDoomed: true\n },\n infinityIP: {\n id: \"infinityIP\",\n bitmaskIndex: 14,\n isGenerated: true,\n glyphTypes: [\"infinity\"],\n singleDesc: () => GlyphAlteration.isAdded(\"infinity\") ? \"Infinity Point gain \\n×{value} [and ^]{value2}\" : \"Multiply Infinity Point gain by {value}\",\n totalDesc: () => GlyphAlteration.isAdded(\"infinity\") ? \"Infinity Point gain ×{value} and ^{value2}\" : \"Infinity Point gain ×{value}\",\n genericDesc: () => GlyphAlteration.isAdded(\"infinity\") ? \"Infinity Point gain multiplier and power\" : \"Infinity Point gain multiplier\",\n shortDesc: () => GlyphAlteration.isAdded(\"infinity\") ? \"IP ×{value} and ^{value2}\" : \"IP ×{value}\",\n effect: (level, strength) => Math.pow(level * (strength + 1), 6) * 10000,\n formatEffect: x => format(x, 2, 3),\n combine: GlyphCombiner.multiply,\n // eslint-disable-next-line no-negated-condition\n softcap: value => Effarig.eternityCap !== undefined ? Math.min(value, Effarig.eternityCap.toNumber()) : value,\n conversion: x => 1 + Math.log10(x) / 1800,\n formatSecondaryEffect: x => format(x, 4, 4),\n alteredColor: () => GlyphAlteration.getAdditionColor(\"infinity\"),\n alterationType: ALTERATION_TYPE.ADDITION\n },\n infinityinfmult: {\n id: \"infinityinfmult\",\n bitmaskIndex: 15,\n isGenerated: true,\n glyphTypes: [\"infinity\"],\n singleDesc: \"Multiply Infinity gain by {value}\",\n totalDesc: \"Infinity gain ×{value}\",\n genericDesc: \"Infinity gain multiplier\",\n shortDesc: \"Infinities ×{value}\",\n effect: (level, strength) => GlyphAlteration.isEmpowered(\"infinity\") ? _constants__WEBPACK_IMPORTED_MODULE_1__.DC.D1_02.pow(level) : Decimal.pow(level * strength, 1.5).times(2),\n formatEffect: x => format(x, 2, 1),\n combine: GlyphCombiner.multiplyDecimal,\n alteredColor: () => GlyphAlteration.getEmpowermentColor(\"infinity\"),\n alterationType: ALTERATION_TYPE.EMPOWER\n },\n powerpow: {\n id: \"powerpow\",\n bitmaskIndex: 16,\n isGenerated: true,\n glyphTypes: [\"power\"],\n singleDesc: () => GlyphAlteration.isAdded(\"power\") ? \"Antimatter Dimension power +{value}\\n[and Antimatter Galaxy cost ×]{value2}\" : \"Antimatter Dimension power +{value}\",\n totalDesc: () => GlyphAlteration.isAdded(\"power\") ? \"Antimatter Dimension multipliers ^{value} and Antimatter Galaxy cost ×{value2}\" : \"Antimatter Dimension multipliers ^{value}\",\n genericDesc: () => GlyphAlteration.isAdded(\"power\") ? \"Antimatter Dimensions multipliers ^x and Antimatter Galaxy cost multiplier\" : \"Antimatter Dimension multipliers ^x\",\n shortDesc: () => GlyphAlteration.isAdded(\"power\") ? \"AD power +{value} and AG cost ×{value2}\" : \"AD power +{value}\",\n effect: (level, strength) => 1.015 + Math.pow(level, 0.2) * Math.pow(strength, 0.4) / 75,\n formatEffect: x => format(x, 3, 3),\n formatSingleEffect: x => format(x - 1, 3, 3),\n combine: GlyphCombiner.addExponents,\n conversion: x => 2 / (x + 1),\n formatSecondaryEffect: x => format(x, 3, 3),\n alteredColor: () => GlyphAlteration.getAdditionColor(\"power\"),\n alterationType: ALTERATION_TYPE.ADDITION,\n enabledInDoomed: true\n },\n powermult: {\n id: \"powermult\",\n bitmaskIndex: 17,\n isGenerated: true,\n glyphTypes: [\"power\"],\n singleDesc: \"Antimatter Dimension multipliers ×{value}\",\n shortDesc: \"AD ×{value}\",\n effect: (level, strength) => GlyphAlteration.isEmpowered(\"power\") ? _constants__WEBPACK_IMPORTED_MODULE_1__.DC.D11111.pow(level * 220) : Decimal.pow(level * strength * 10, level * strength * 10),\n formatEffect: x => formatPostBreak(x, 2, 0),\n combine: GlyphCombiner.multiplyDecimal,\n alteredColor: () => GlyphAlteration.getEmpowermentColor(\"power\"),\n alterationType: ALTERATION_TYPE.EMPOWER,\n enabledInDoomed: true\n },\n powerdimboost: {\n id: \"powerdimboost\",\n bitmaskIndex: 18,\n isGenerated: true,\n glyphTypes: [\"power\"],\n singleDesc: \"Dimension Boost multiplier ×{value}\",\n genericDesc: \"Dimension Boost multiplier\",\n shortDesc: \"Dimboost mult. ×{value}\",\n effect: (level, strength) => Math.pow(level * strength, 0.5) * Math.pow(1 + GlyphAlteration.sacrificeBoost(\"power\"), 3),\n formatEffect: x => format(x, 2, 2),\n combine: GlyphCombiner.multiply,\n alteredColor: () => GlyphAlteration.getBoostColor(\"power\"),\n alterationType: ALTERATION_TYPE.BOOST,\n enabledInDoomed: true\n },\n powerbuy10: {\n id: \"powerbuy10\",\n bitmaskIndex: 19,\n isGenerated: true,\n glyphTypes: [\"power\"],\n singleDesc: () => `Increase the bonus from buying ${formatInt(10)} Antimatter Dimensions by {value}`,\n totalDesc: () => `Multiplier from \"Buy ${formatInt(10)}\" ×{value}`,\n genericDesc: () => `\"Buy ${formatInt(10)}\" bonus increase`,\n shortDesc: () => `AD \"Buy ${formatInt(10)}\" mult. ×{value}`,\n effect: (level, strength) => 1 + level * strength / 12,\n formatEffect: x => format(x, 2, 2),\n combine: GlyphCombiner.addExponents,\n enabledInDoomed: true\n },\n effarigrm: {\n id: \"effarigrm\",\n bitmaskIndex: 20,\n isGenerated: true,\n glyphTypes: [\"effarig\"],\n singleDesc: \"Reality Machine multiplier ×{value}\",\n genericDesc: \"Reality Machine multiplier\",\n shortDesc: \"RM ×{value}\",\n effect: (level, strength) => GlyphAlteration.isEmpowered(\"effarig\") ? Math.pow(level, 1.5) : Math.pow(level, 0.6) * strength,\n formatEffect: x => format(x, 2, 2),\n combine: GlyphCombiner.multiply,\n alteredColor: () => GlyphAlteration.getEmpowermentColor(\"effarig\"),\n alterationType: ALTERATION_TYPE.EMPOWER\n },\n effarigglyph: {\n id: \"effarigglyph\",\n bitmaskIndex: 21,\n isGenerated: true,\n glyphTypes: [\"effarig\"],\n singleDesc: \"Glyph Instability starting level +{value}\",\n genericDesc: \"Glyph Instability delay\",\n shortDesc: \"Instability delay +{value}\",\n effect: (level, strength) => Math.floor(10 * Math.pow(level * strength, 0.5)),\n formatEffect: x => formatInt(x),\n combine: GlyphCombiner.add\n },\n effarigblackhole: {\n id: \"effarigblackhole\",\n bitmaskIndex: 22,\n isGenerated: true,\n glyphTypes: [\"effarig\"],\n singleDesc: \"Game speed power +{value}\",\n totalDesc: \"Game speed ^{value}\",\n genericDesc: \"Game speed ^x\",\n shortDesc: \"Game speed power +{value}\",\n effect: (level, strength) => 1 + Math.pow(level, 0.25) * Math.pow(strength, 0.4) / 75,\n formatEffect: x => format(x, 3, 3),\n formatSingleEffect: x => format(x - 1, 3, 3),\n combine: GlyphCombiner.addExponents\n },\n effarigachievement: {\n id: \"effarigachievement\",\n bitmaskIndex: 23,\n isGenerated: true,\n glyphTypes: [\"effarig\"],\n singleDesc: \"Achievement multiplier power +{value}\",\n totalDesc: \"Achievement multiplier ^{value}\",\n genericDesc: \"Achievement multiplier ^x\",\n shortDesc: \"Achievement mult. power +{value}\",\n effect: (level, strength) => 1 + Math.pow(level, 0.4) * Math.pow(strength, 0.6) / 60 + GlyphAlteration.sacrificeBoost(\"effarig\") / 10,\n formatEffect: x => format(x, 3, 3),\n formatSingleEffect: x => format(x - 1, 3, 3),\n combine: GlyphCombiner.addExponents,\n alteredColor: () => GlyphAlteration.getBoostColor(\"effarig\"),\n alterationType: ALTERATION_TYPE.BOOST\n },\n effarigforgotten: {\n id: \"effarigforgotten\",\n bitmaskIndex: 24,\n isGenerated: true,\n glyphTypes: [\"effarig\"],\n singleDesc: () => GlyphAlteration.isAdded(\"effarig\") ? `\"Buy ${formatInt(10)}\" multiplier ^{value} [and\\nDimension Boost multiplier ^]{value2}` : `Bonus from buying ${formatInt(10)} Dimensions ^{value}`,\n totalDesc: () => GlyphAlteration.isAdded(\"effarig\") ? `Multiplier from \"Buy ${formatInt(10)}\" ^{value} and Dimension Boost multiplier ^{value2}` : `Multiplier from \"Buy ${formatInt(10)}\" ^{value}`,\n genericDesc: () => GlyphAlteration.isAdded(\"effarig\") ? `\"Buy ${formatInt(10)}\" and Dimension Boost multipliers ^x` : `\"Buy ${formatInt(10)}\" multiplier ^x`,\n shortDesc: () => GlyphAlteration.isAdded(\"effarig\") ? `Buy ${formatInt(10)} mult. ^{value}, Dimboost mult. ^{value2}` : `Buy ${formatInt(10)} mult. ^{value}`,\n effect: (level, strength) => 1 + 2 * Math.pow(level, 0.25) * Math.pow(strength, 0.4),\n formatEffect: x => format(x, 2, 2),\n combine: GlyphCombiner.multiply,\n conversion: x => Math.pow(x, 0.4),\n formatSecondaryEffect: x => format(x, 2, 2),\n alteredColor: () => GlyphAlteration.getAdditionColor(\"effarig\"),\n alterationType: ALTERATION_TYPE.ADDITION\n },\n effarigdimensions: {\n id: \"effarigdimensions\",\n bitmaskIndex: 25,\n isGenerated: true,\n glyphTypes: [\"effarig\"],\n singleDesc: \"All Dimension power +{value}\",\n totalDesc: \"All Dimension multipliers ^{value}\",\n genericDesc: \"All Dimension multipliers ^x\",\n shortDesc: \"All Dimension power +{value}\",\n effect: (level, strength) => 1 + Math.pow(level, 0.25) * Math.pow(strength, 0.4) / 500,\n formatEffect: x => format(x, 3, 3),\n formatSingleEffect: x => format(x - 1, 3, 3),\n combine: GlyphCombiner.addExponents\n },\n effarigantimatter: {\n id: \"effarigantimatter\",\n bitmaskIndex: 26,\n isGenerated: true,\n glyphTypes: [\"effarig\"],\n singleDesc: () => `Antimatter production:\\n${formatInt(10)}^x ➜ ${formatInt(10)}^(x^{value})`,\n genericDesc: \"Antimatter production exponent power\",\n shortDesc: \"AM production exponent ^{value}\",\n effect: (level, strength) => 1 + Math.pow(level, 0.25) * Math.pow(strength, 0.4) / 5000,\n formatEffect: x => format(x, 4, 4),\n combine: GlyphCombiner.multiply\n },\n timeshardpow: {\n id: \"timeshardpow\",\n bitmaskIndex: 27,\n isGenerated: true,\n // This gets explicitly added to time glyphs elsewhere (once unlocked)\n glyphTypes: [],\n singleDesc: \"Time Shard power +{value}\",\n totalDesc: \"Time Shard gain ^{value}\",\n genericDesc: \"Time Shards ^x\",\n shortDesc: \"Time Shard power +{value}\",\n effect: (level, strength) => 1 + strength / 3.5 * Math.pow(level, 0.35) / 400,\n formatEffect: x => format(x, 3, 3),\n formatSingleEffect: x => format(x - 1, 3, 3),\n combine: GlyphCombiner.addExponents,\n enabledInDoomed: true\n },\n cursedgalaxies: {\n id: \"cursedgalaxies\",\n bitmaskIndex: 0,\n isGenerated: false,\n glyphTypes: [\"cursed\"],\n singleDesc: `All Galaxies are {value} weaker`,\n totalDesc: \"All Galaxy strength -{value}\",\n shortDesc: \"Galaxy Strength -{value}\",\n // Multiplies by 0.768 per glyph\n effect: level => Math.pow(level, -0.03),\n formatEffect: x => formatPercents(1 - x, 2),\n combine: GlyphCombiner.multiply\n },\n curseddimensions: {\n id: \"curseddimensions\",\n bitmaskIndex: 1,\n isGenerated: false,\n glyphTypes: [\"cursed\"],\n singleDesc: \"All Dimension multipliers ^{value}\",\n shortDesc: \"All Dimensions ^{value}\",\n // Multiplies by 0.734 per glyph\n effect: level => Math.pow(level, -0.035),\n formatEffect: x => format(x, 3, 3),\n combine: GlyphCombiner.multiply\n },\n cursedtickspeed: {\n id: \"cursedtickspeed\",\n bitmaskIndex: 2,\n isGenerated: false,\n glyphTypes: [\"cursed\"],\n singleDesc: \"The threshold for Tickspeed Upgrades from Time Dimensions is multiplied by ×{value}\",\n totalDesc: \"The threshold for Tickspeed Upgrades from Time Dimensions is increased by ×{value}\",\n shortDesc: \"TD Tickspeed threshold ×{value}\",\n // Additive 3.82 per glyph\n effect: level => Math.clampMin(Math.log10(level), 1),\n formatEffect: x => format(x, 3, 3),\n combine: GlyphCombiner.add\n },\n cursedEP: {\n id: \"cursedEP\",\n bitmaskIndex: 3,\n isGenerated: false,\n glyphTypes: [\"cursed\"],\n singleDesc: \"Divide Eternity Point gain by {value}\",\n totalDesc: \"Eternity Point gain / {value}\",\n shortDesc: \"EP / {value}\",\n // Divides e666.6 per glyph\n effect: level => Decimal.pow10(-level / 10),\n formatEffect: x => format(x.reciprocal()),\n combine: GlyphCombiner.multiplyDecimal\n },\n realityglyphlevel: {\n id: \"realityglyphlevel\",\n bitmaskIndex: 4,\n isGenerated: false,\n glyphTypes: [\"reality\"],\n singleDesc: \"Increase the effective level of equipped basic Glyphs by {value}\",\n totalDesc: \"Equipped basic Glyph level +{value}\",\n shortDesc: \"Basic Glyph Level +{value}\",\n effect: level => Math.floor(Math.sqrt(level * 90)),\n formatEffect: x => formatInt(x),\n combine: GlyphCombiner.add\n },\n realitygalaxies: {\n id: \"realitygalaxies\",\n bitmaskIndex: 5,\n isGenerated: false,\n glyphTypes: [\"reality\"],\n singleDesc: \"All Galaxies are {value} stronger\",\n totalDesc: \"All Galaxy strength +{value}\",\n shortDesc: \"Galaxy Strength +{value}\",\n effect: level => 1 + Math.pow(level / 100000, 0.5),\n formatEffect: x => formatPercents(x - 1, 2),\n combine: GlyphCombiner.multiply\n },\n realityrow1pow: {\n id: \"realityrow1pow\",\n bitmaskIndex: 6,\n isGenerated: false,\n glyphTypes: [\"reality\"],\n singleDesc: \"Multiplier from Reality Upgrade Amplifiers ^{value}\",\n totalDesc: \"Reality Upgrade Amplifier multiplier ^{value}\",\n shortDesc: \"Amplifier Multiplier ^{value}\",\n effect: level => 1 + level / 125000,\n formatEffect: x => format(x, 3, 3),\n combine: GlyphCombiner.addExponents\n },\n realityDTglyph: {\n id: \"realityDTglyph\",\n bitmaskIndex: 7,\n isGenerated: false,\n glyphTypes: [\"reality\"],\n singleDesc: () => `Dilated Time factor for Glyph level: \\n^${format(1.3, 1, 1)}\n ➜ ^(${format(1.3, 1, 1)} + {value})`,\n totalDesc: () => `Dilated Time factor for Glyph level: ^${format(1.3, 1, 1)}\n ➜ ^(${format(1.3, 1, 1)} + {value})`,\n genericDesc: \"Dilated Time factor for Glyph level\",\n shortDesc: \"DT pow. for level +{value}\",\n // You can only get this effect on level 25000 reality glyphs anyway, might as well make it look nice\n effect: () => 0.1,\n formatEffect: x => format(x, 2, 2),\n combine: GlyphCombiner.add\n },\n companiondescription: {\n id: \"companiondescription\",\n bitmaskIndex: 8,\n isGenerated: false,\n glyphTypes: [\"companion\"],\n singleDesc: \"It does nothing but sit there and cutely smile at you, whisper into your dreams politely, \" + \"and plot the demise of all who stand against you. This one-of-a-kind Glyph will never leave you.\",\n totalDesc: \"+{value} happiness\",\n shortDesc: \"Doesn't want to hurt you\",\n effect: () => {\n if (Enslaved.isRunning) return 0;\n const cursedCount = Glyphs.active.countWhere(g => (g === null || g === void 0 ? void 0 : g.type) === \"cursed\");\n if (cursedCount > 0) return Math.pow(0.2 + 0.2 * Math.random(), cursedCount);\n return 0.4 + 0.6 * Math.random();\n },\n formatEffect: x => formatPercents(x, 2, 2),\n combine: GlyphCombiner.add,\n enabledInDoomed: true\n },\n companionEP: {\n id: \"companionEP\",\n bitmaskIndex: 9,\n isGenerated: false,\n glyphTypes: [\"companion\"],\n singleDesc: \"Thanks for your dedication for the game! You reached {value} Eternity Points on your first Reality.\",\n shortDesc: \"It loves you very, very much\",\n totalDesc: () => Enslaved.isRunning || Glyphs.active.countWhere(g => (g === null || g === void 0 ? void 0 : g.type) === \"cursed\") ? \"Help me\" : \"Yay!\",\n // The EP value for this is entirely encoded in rarity, but level needs to be present to\n // make sure the proper parameter is being used. The actual glyph level shouldn't do anything.\n // eslint-disable-next-line no-unused-vars\n effect: (level, strength) => Decimal.pow10(1e6 * strengthToRarity(strength)),\n formatEffect: x => formatPostBreak(x, 2),\n combine: GlyphCombiner.multiplyDecimal,\n enabledInDoomed: true\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L2dseXBoLWVmZmVjdHMuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFFTyxNQUFNQyxhQUFhLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO0FBQ3pDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0VDLEVBQUFBLEdBQUcsRUFBRUMsQ0FBQyxJQUFJQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsTUFBTSxDQUFDQyxVQUFoQixFQUE0QixDQUE1QixDQUwrQjs7QUFNekM7QUFDRjtBQUNBO0FBQ0E7QUFDRUMsRUFBQUEsUUFBUSxFQUFFSixDQUFDLElBQUlBLENBQUMsQ0FBQ0MsTUFBRixDQUFTQyxNQUFNLENBQUNHLFdBQWhCLEVBQTZCLENBQTdCLENBVjBCOztBQVd6QztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VDLEVBQUFBLFlBQVksRUFBRU4sQ0FBQyxJQUFJQSxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsTUFBTSxDQUFDQyxVQUFoQixFQUE0QixJQUFJSCxDQUFDLENBQUNPLE1BQWxDLENBbkJzQjs7QUFvQnpDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0VDLEVBQUFBLGVBQWUsRUFBRVIsQ0FBQyxJQUFJQSxDQUFDLENBQUNDLE1BQUYsQ0FBU1EsT0FBTyxDQUFDSixXQUFqQixFQUE4QlYsNkNBQTlCO0FBeEJtQixDQUFkLENBQXRCO0FBMkJBLE1BQU1nQixZQUFZLEdBQUc7QUFDMUJDLEVBQUFBLE9BQU8sRUFBRTtBQUNQQyxJQUFBQSxFQUFFLEVBQUUsU0FERztBQUVQQyxJQUFBQSxZQUFZLEVBQUUsQ0FGUDtBQUdQQyxJQUFBQSxXQUFXLEVBQUUsSUFITjtBQUlQQyxJQUFBQSxVQUFVLEVBQUUsQ0FBQyxNQUFELENBSkw7QUFLUEMsSUFBQUEsVUFBVSxFQUFFLCtCQUxMO0FBTVBDLElBQUFBLFNBQVMsRUFBRSxxQ0FOSjtBQU9QQyxJQUFBQSxTQUFTLEVBQUUsbUJBUEo7QUFR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Yy9jb3JlL3NlY3JldC1mb3JtdWxhL3JlYWxpdHkvZ2x5cGgtZWZmZWN0cy5qcz9mMjQ1Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERDIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEdseXBoQ29tYmluZXIgPSBPYmplY3QuZnJlZXplKHtcclxuICAvKipcclxuICAgKiBAcGFyYW0ge251bWJlcltdfSB4XHJcbiAgICogQHJldHVybnMge251bWJlcn1cclxuICAgKi9cclxuICBhZGQ6IHggPT4geC5yZWR1Y2UoTnVtYmVyLnN1bVJlZHVjZXIsIDApLFxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyW119IHhcclxuICAgKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gICAqL1xyXG4gIG11bHRpcGx5OiB4ID0+IHgucmVkdWNlKE51bWJlci5wcm9kUmVkdWNlciwgMSksXHJcbiAgLyoqXHJcbiAgICogRm9yIGV4cG9uZW50cywgdGhlIGJhc2UgdmFsdWUgaXMgMSwgc28gd2hlbiB3ZSBhZGQgdHdvIGV4cG9uZW50cyBhIGFuZCBiIHdlIHdhbnQgdG8gZ2V0IGEgKyBiIC0gMSxcclxuICAgKiBzbyB0aGF0IGlmIGEgYW5kIGIgYXJlIGJvdGggY2xvc2UgdG8gMSBzbyBpcyB0aGVpciBzdW0uIEluIGdlbmVyYWwsIHdoZW4gd2UgYWRkIGEgbGlzdCB4IG9mIGV4cG9uZW50cyxcclxuICAgKiB3ZSBoYXZlIHRvIGFkZCAxIC0geC5sZW5ndGggdG8gdGhlIGFjdHVhbCBzdW0sIHNvIHRoYXQgaWYgYWxsIHRoZSBleHBvbmVudHMgYXJlIGNsb3NlIHRvIDEgdGhlIHJlc3VsdFxyXG4gICAqIGlzIGFsc28gY2xvc2UgdG8gMSByYXRoZXIgdGhhbiBjbG9zZSB0byB4Lmxlbmd0aC5cclxuICAgKiBAcGFyYW0ge251bWJlcltdfSB4XHJcbiAgICogQHJldHVybnMge251bWJlcn1cclxuICAgKi9cclxuICBhZGRFeHBvbmVudHM6IHggPT4geC5yZWR1Y2UoTnVtYmVyLnN1bVJlZHVjZXIsIDEgLSB4Lmxlbmd0aCksXHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIHtEZWNpbWFsW119IHhcclxuICAgKiBAcmV0dXJucyB7RGVjaW1hbH1cclxuICAgKi9cclxuICBtdWx0aXBseURlY2ltYWw6IHggPT4geC5yZWR1Y2UoRGVjaW1hbC5wcm9kUmVkdWNlciwgREMuRDEpXHJcbn0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IGdseXBoRWZmZWN0cyA9IHtcclxuICB0aW1lcG93OiB7XHJcbiAgICBpZDogXCJ0aW1lcG93XCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDAsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcInRpbWVcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIlRpbWUgRGltZW5zaW9uIHBvd2VyICt7dmFsdWV9XCIsXHJcbiAgICB0b3RhbERlc2M6IFwiVGltZSBEaW1lbnNpb24gbXVsdGlwbGllcnMgXnt2YWx1ZX1cIixcclxuICAgIHNob3J0RGVzYzogXCJURCBwb3dlciAre3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAxLjAxICsgTWF0aC5wb3cobGV2ZWwsIDAuMzIpICogTWF0aC5wb3coc3RyZW5ndGgsIDAuNDUpIC8gNzUsXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDMsIDMpLFxyXG4gICAgZm9ybWF0U2luZ2xlRWZmZWN0OiB4ID0+IGZvcm1hdCh4IC0gMSwgMywgMyksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLmFkZEV4cG9uZW50cyxcclxuICAgIGVuYWJsZWRJbkRvb21lZDogdHJ1ZSxcclxuICB9LFxyXG4gIHRpbWVzcGVlZDoge1xyXG4gICAgaWQ6IFwidGltZXNwZWVkXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDEsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcInRpbWVcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIk11bHRpcGx5IGdhbWUgc3BlZWQgYnkge3ZhbHVlfVwiLFxyXG4gICAgdG90YWxEZXNjOiBcIkdhbWUgcnVucyDDl3t2YWx1ZX0gZmFzdGVyXCIsXHJcbiAgICBnZW5lcmljRGVzYzogXCJHYW1lIHNwZWVkIG11bHRpcGxpZXJcIixcclxuICAgIHNob3J0RGVzYzogXCJHYW1lIHNwZWVkIMOXe3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAoR2x5cGhBbHRlcmF0aW9uLmlzRW1wb3dlcmVkKFwidGltZVwiKVxyXG4gICAgICA/IDEgKyBNYXRoLnBvdyhsZXZlbCwgMC4zNSlcclxuICAgICAgOiAxICsgTWF0aC5wb3cobGV2ZWwsIDAuMykgKiBNYXRoLnBvdyhzdHJlbmd0aCwgMC42NSkgLyAyMCksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDMsIDMpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5tdWx0aXBseSxcclxuICAgIGFsdGVyZWRDb2xvcjogKCkgPT4gR2x5cGhBbHRlcmF0aW9uLmdldEVtcG93ZXJtZW50Q29sb3IoXCJ0aW1lXCIpLFxyXG4gICAgYWx0ZXJhdGlvblR5cGU6IEFMVEVSQVRJT05fVFlQRS5FTVBPV0VSLFxyXG4gICAgZW5hYmxlZEluRG9vbWVkOiB0cnVlLFxyXG4gIH0sXHJcbiAgdGltZWV0ZXJtdWx0OiB7XHJcbiAgICBpZDogXCJ0aW1lZXRlcm11bHRcIixcclxuICAgIGJpdG1hc2tJbmRleDogMixcclxuICAgIGlzR2VuZXJhdGVkOiB0cnVlLFxyXG4gICAgZ2x5cGhUeXBlczogW1widGltZVwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiTXVsdGlwbHkgRXRlcm5pdHkgZ2FpbiBieSB7dmFsdWV9XCIsXHJcbiAgICB0b3RhbERlc2M6IFwiRXRlcm5pdHkgZ2FpbiDDl3t2YWx1ZX1cIixcclxuICAgIGdlbmVyaWNEZXNjOiBcIkV0ZXJuaXR5IGdhaW4gbXVsdGlwbGllclwiLFxyXG4gICAgc2hvcnREZXNjOiBcIkV0ZXJuaXRpZXMgw5d7dmFsdWV9XCIsXHJcbiAgICBlZmZlY3Q6IChsZXZlbCwgc3RyZW5ndGgpID0+IE1hdGgucG93KChzdHJlbmd0aCArIDMpICogbGV2ZWwsIDAuOSkgKlxyXG4gICAgICBNYXRoLnBvdygzLCBHbHlwaEFsdGVyYXRpb24uc2FjcmlmaWNlQm9vc3QoXCJ0aW1lXCIpKSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMiwgMiksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLm11bHRpcGx5LFxyXG4gICAgYWx0ZXJlZENvbG9yOiAoKSA9PiBHbHlwaEFsdGVyYXRpb24uZ2V0Qm9vc3RDb2xvcihcInRpbWVcIiksXHJcbiAgICBhbHRlcmF0aW9uVHlwZTogQUxURVJBVElPTl9UWVBFLkJPT1NUXHJcbiAgfSxcclxuICB0aW1lRVA6IHtcclxuICAgIGlkOiBcInRpbWVFUFwiLFxyXG4gICAgYml0bWFza0luZGV4OiAzLFxyXG4gICAgaXNHZW5lcmF0ZWQ6IHRydWUsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJ0aW1lXCJdLFxyXG4gICAgc2luZ2xlRGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwidGltZVwiKVxyXG4gICAgICA/IFwiRXRlcm5pdHkgUG9pbnQgZ2FpbiBcXG7Dl3t2YWx1ZX0gW2FuZCBeXXt2YWx1ZTJ9XCJcclxuICAgICAgOiBcIk11bHRpcGx5IEV0ZXJuaXR5IFBvaW50IGdhaW4gYnkge3ZhbHVlfVwiKSxcclxuICAgIHRvdGFsRGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwidGltZVwiKVxyXG4gICAgICA/IFwiRXRlcm5pdHkgUG9pbnQgZ2FpbiDDl3t2YWx1ZX0gYW5kIF57dmFsdWUyfVwiXHJcbiAgICAgIDogXCJFdGVybml0eSBQb2ludCBnYWluIMOXe3ZhbHVlfVwiKSxcclxuICAgIGdlbmVyaWNEZXNjOiAoKSA9PiAoR2x5cGhBbHRlcmF0aW9uLmlzQWRkZWQoXCJ0aW1lXCIpXHJcbiAgICAgID8gXCJFdGVybml0eSBQb2ludCBnYWluIG11bHRpcGxpZXIgYW5kIHBvd2VyXCJcclxuICAgICAgOiBcIkV0ZXJuaXR5IFBvaW50IGdhaW4gbXVsdGlwbGllclwiKSxcclxuICAgIHNob3J0RGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwidGltZVwiKVxyXG4gICAgICA/IFwiRVAgw5d7dmFsdWV9IGFuZCBee3ZhbHVlMn1cIlxyXG4gICAgICA6IFwiRVAgw5d7dmFsdWV9XCIpLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiBNYXRoLnBvdyhsZXZlbCAqIHN0cmVuZ3RoLCAzKSAqIDEwMCxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMiwgMyksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLm11bHRpcGx5LFxyXG4gICAgY29udmVyc2lvbjogeCA9PiAxICsgTWF0aC5sb2cxMCh4KSAvIDEwMDAsXHJcbiAgICBmb3JtYXRTZWNvbmRhcnlFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDQsIDQpLFxyXG4gICAgYWx0ZXJlZENvbG9yOiAoKSA9PiBHbHlwaEFsdGVyYXRpb24uZ2V0QWRkaXRpb25Db2xvcihcInRpbWVcIiksXHJcbiAgICBhbHRlcmF0aW9uVHlwZTogQUxURVJBVElPTl9UWVBFLkFERElUSU9OXHJcbiAgfSxcclxuICBkaWxhdGlvbkRUOiB7XHJcbiAgICBpZDogXCJkaWxhdGlvbkRUXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDQsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImRpbGF0aW9uXCJdLFxyXG4gICAgc2luZ2xlRGVzYzogXCJNdWx0aXBseSBEaWxhdGVkIFRpbWUgZ2FpbiBieSB7dmFsdWV9XCIsXHJcbiAgICB0b3RhbERlc2M6IFwiRGlsYXRlZCBUaW1lIGdhaW4gw5d7dmFsdWV9XCIsXHJcbiAgICBzaG9ydERlc2M6IFwiRFQgw5d7dmFsdWV9XCIsXHJcbiAgICBlZmZlY3Q6IChsZXZlbCwgc3RyZW5ndGgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNFbXBvd2VyZWQoXCJkaWxhdGlvblwiKVxyXG4gICAgICA/IERDLkQxXzAwNS5wb3cobGV2ZWwpLnRpbWVzKDE1KVxyXG4gICAgICA6IERlY2ltYWwucG93KGxldmVsICogc3RyZW5ndGgsIDEuNSkudGltZXMoMikpLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAyLCAxKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIubXVsdGlwbHlEZWNpbWFsLFxyXG4gICAgYWx0ZXJlZENvbG9yOiAoKSA9PiBHbHlwaEFsdGVyYXRpb24uZ2V0RW1wb3dlcm1lbnRDb2xvcihcImRpbGF0aW9uXCIpLFxyXG4gICAgYWx0ZXJhdGlvblR5cGU6IEFMVEVSQVRJT05fVFlQRS5FTVBPV0VSXHJcbiAgfSxcclxuICBkaWxhdGlvbmdhbGF4eVRocmVzaG9sZDoge1xyXG4gICAgaWQ6IFwiZGlsYXRpb25nYWxheHlUaHJlc2hvbGRcIixcclxuICAgIGJpdG1hc2tJbmRleDogNSxcclxuICAgIGlzR2VuZXJhdGVkOiB0cnVlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wiZGlsYXRpb25cIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIlRhY2h5b24gR2FsYXh5IHRocmVzaG9sZCBtdWx0aXBsaWVyIMOXe3ZhbHVlfVwiLFxyXG4gICAgZ2VuZXJpY0Rlc2M6IFwiVGFjaHlvbiBHYWxheHkgY29zdCBtdWx0aXBsaWVyXCIsXHJcbiAgICBzaG9ydERlc2M6IFwiVEcgdGhyZXNob2xkIMOXe3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAxIC0gTWF0aC5wb3cobGV2ZWwsIDAuMTcpICogTWF0aC5wb3coc3RyZW5ndGgsIDAuMzUpIC8gMTAwIC1cclxuICAgICAgR2x5cGhBbHRlcmF0aW9uLnNhY3JpZmljZUJvb3N0KFwiZGlsYXRpb25cIikgLyA1MCxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMywgMyksXHJcbiAgICBhbHRlcmVkQ29sb3I6ICgpID0+IEdseXBoQWx0ZXJhdGlvbi5nZXRCb29zdENvbG9yKFwiZGlsYXRpb25cIiksXHJcbiAgICBhbHRlcmF0aW9uVHlwZTogQUxURVJBVElPTl9UWVBFLkJPT1NULFxyXG4gICAgY29tYmluZTogZWZmZWN0cyA9PiB7XHJcbiAgICAgIGNvbnN0IHByb2QgPSBlZmZlY3RzLnJlZHVjZShOdW1iZXIucHJvZFJlZHVjZXIsIDEpO1xyXG4gICAgICByZXR1cm4gcHJvZCA8IDAuNFxyXG4gICAgICAgID8geyB2YWx1ZTogMC40IC0gTWF0aC5wb3coMC40IC0gcHJvZCwgMS43KSwgY2FwcGVkOiB0cnVlIH1cclxuICAgICAgICA6IHsgdmFsdWU6IHByb2QsIGNhcHBlZDogZmFsc2UgfTtcclxuICAgIH0sXHJcbiAgICBlbmFibGVkSW5Eb29tZWQ6IHRydWUsXHJcbiAgfSxcclxuICBkaWxhdGlvblRUZ2VuOiB7XHJcbiAgICAvLyBUVGdlbiBzbG93bHkgZ2VuZXJhdGVzIFRULCB2YWx1ZSBhbW91bnQgaXMgcGVyIHNlY29uZCwgZGlzcGxheWVkIHBlciBob3VyXHJcbiAgICBpZDogXCJkaWxhdGlvblRUZ2VuXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDYsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImRpbGF0aW9uXCJdLFxyXG4gICAgc2luZ2xlRGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwiZGlsYXRpb25cIilcclxuICAgICAgPyBcIkdlbmVyYXRlcyB7dmFsdWV9IFRpbWUgVGhlb3JlbXMvaG91ciBcXG5bYW5kIG11bHRpcGxpZXMgVGltZSBUaGVvcmVtIFxcbmdlbmVyYXRpb24gYnldIHt2YWx1ZTJ9XCJcclxuICAgICAgOiBcIkdlbmVyYXRlcyB7dmFsdWV9IFRpbWUgVGhlb3JlbXMgcGVyIGhvdXJcIiksXHJcbiAgICB0b3RhbERlc2M6ICgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNBZGRlZChcImRpbGF0aW9uXCIpXHJcbiAgICAgID8gXCJHZW5lcmF0aW5nIHt2YWx1ZX0gVGltZSBUaGVvcmVtcy9ob3VyIGFuZCBUaW1lIFRoZW9yZW0gZ2VuZXJhdGlvbiDDl3t2YWx1ZTJ9XCJcclxuICAgICAgOiBcIkdlbmVyYXRpbmcge3ZhbHVlfSBUaW1lIFRoZW9yZW1zIHBlciBob3VyXCIpLFxyXG4gICAgZ2VuZXJpY0Rlc2M6ICgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNBZGRlZChcImRpbGF0aW9uXCIpXHJcbiAgICAgID8gXCJUaW1lIFRoZW9yZW0gZ2VuZXJhdGlvbiBhbmQgbXVsdGlwbGllclwiXHJcbiAgICAgIDogXCJUaW1lIFRoZW9yZW0gZ2VuZXJhdGlvblwiKSxcclxuICAgIHNob3J0RGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwiZGlsYXRpb25cIilcclxuICAgICAgPyBcInt2YWx1ZX0gVFQvaHIgYW5kIFRUZ2VuIMOXe3ZhbHVlMn1cIlxyXG4gICAgICA6IFwie3ZhbHVlfSBUVC9oclwiKSxcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gTWF0aC5wb3cobGV2ZWwgKiBzdHJlbmd0aCwgMC41KSAvIDEwMDAwLFxyXG4gICAgLyoqIEB0eXBlIHtmdW5jdGlvbihudW1iZXIpOiBzdHJpbmd9ICovXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KDM2MDAgKiB4LCAyLCAyKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIuYWRkLFxyXG4gICAgY29udmVyc2lvbjogeCA9PiBNYXRoLmNsYW1wTWluKE1hdGgucG93KDEwMDAwICogeCwgMS42KSwgMSksXHJcbiAgICBmb3JtYXRTZWNvbmRhcnlFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDIsIDIpLFxyXG4gICAgYWx0ZXJlZENvbG9yOiAoKSA9PiBHbHlwaEFsdGVyYXRpb24uZ2V0QWRkaXRpb25Db2xvcihcImRpbGF0aW9uXCIpLFxyXG4gICAgYWx0ZXJhdGlvblR5cGU6IEFMVEVSQVRJT05fVFlQRS5BRERJVElPTlxyXG4gIH0sXHJcbiAgZGlsYXRpb25wb3c6IHtcclxuICAgIGlkOiBcImRpbGF0aW9ucG93XCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDcsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImRpbGF0aW9uXCJdLFxyXG4gICAgc2luZ2xlRGVzYzogXCJBbnRpbWF0dGVyIERpbWVuc2lvbiBwb3dlciAre3ZhbHVlfSB3aGlsZSBEaWxhdGVkXCIsXHJcbiAgICB0b3RhbERlc2M6IFwiQW50aW1hdHRlciBEaW1lbnNpb24gbXVsdGlwbGllcnMgXnt2YWx1ZX0gd2hpbGUgRGlsYXRlZFwiLFxyXG4gICAgZ2VuZXJpY0Rlc2M6IFwiQW50aW1hdHRlciBEaW1lbnNpb25zIF54IHdoaWxlIERpbGF0ZWRcIixcclxuICAgIHNob3J0RGVzYzogXCJEaWxhdGVkIEFEIHBvd2VyICt7dmFsdWV9XCIsXHJcbiAgICBlZmZlY3Q6IChsZXZlbCwgc3RyZW5ndGgpID0+IDEuMSArIE1hdGgucG93KGxldmVsLCAwLjcpICogTWF0aC5wb3coc3RyZW5ndGgsIDAuNykgLyAyNSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMiwgMiksXHJcbiAgICBmb3JtYXRTaW5nbGVFZmZlY3Q6IHggPT4gZm9ybWF0KHggLSAxLCAyLCAyKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIuYWRkRXhwb25lbnRzLFxyXG4gICAgZW5hYmxlZEluRG9vbWVkOiB0cnVlLFxyXG4gIH0sXHJcbiAgcmVwbGljYXRpb25zcGVlZDoge1xyXG4gICAgaWQ6IFwicmVwbGljYXRpb25zcGVlZFwiLFxyXG4gICAgYml0bWFza0luZGV4OiA4LFxyXG4gICAgaXNHZW5lcmF0ZWQ6IHRydWUsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJyZXBsaWNhdGlvblwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiTXVsdGlwbHkgUmVwbGljYXRpb24gc3BlZWQgYnkge3ZhbHVlfVwiLFxyXG4gICAgdG90YWxEZXNjOiBcIlJlcGxpY2F0aW9uIHNwZWVkIMOXe3ZhbHVlfVwiLFxyXG4gICAgZ2VuZXJpY0Rlc2M6IFwiUmVwbGljYXRpb24gc3BlZWQgbXVsdGlwbGllclwiLFxyXG4gICAgc2hvcnREZXNjOiBcIlJlcGxpY2F0aW9uIHNwZWVkIMOXe3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAoR2x5cGhBbHRlcmF0aW9uLmlzRW1wb3dlcmVkKFwicmVwbGljYXRpb25cIilcclxuICAgICAgPyBEQy5EMV8wMDcucG93KGxldmVsKS50aW1lcygxMClcclxuICAgICAgOiBEZWNpbWFsLnRpbWVzKGxldmVsLCBzdHJlbmd0aCkudGltZXMoMykpLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAyLCAxKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIubXVsdGlwbHlEZWNpbWFsLFxyXG4gICAgYWx0ZXJlZENvbG9yOiAoKSA9PiBHbHlwaEFsdGVyYXRpb24uZ2V0RW1wb3dlcm1lbnRDb2xvcihcInJlcGxpY2F0aW9uXCIpLFxyXG4gICAgYWx0ZXJhdGlvblR5cGU6IEFMVEVSQVRJT05fVFlQRS5FTVBPV0VSXHJcbiAgfSxcclxuICByZXBsaWNhdGlvbnBvdzoge1xyXG4gICAgaWQ6IFwicmVwbGljYXRpb25wb3dcIixcclxuICAgIGJpdG1hc2tJbmRleDogOSxcclxuICAgIGlzR2VuZXJhdGVkOiB0cnVlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wicmVwbGljYXRpb25cIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIlJlcGxpY2FudGkgbXVsdGlwbGllciBwb3dlciAre3ZhbHVlfVwiLFxyXG4gICAgdG90YWxEZXNjOiBcIlJlcGxpY2FudGkgbXVsdGlwbGllciBee3ZhbHVlfVwiLFxyXG4gICAgc2hvcnREZXNjOiBcIlJlcGxpY2FudGkgbXVsdC4gcG93ZXIgK3t2YWx1ZX1cIixcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gMS4xICsgTWF0aC5wb3cobGV2ZWwsIDAuNSkgKiBzdHJlbmd0aCAvIDI1ICtcclxuICAgICAgR2x5cGhBbHRlcmF0aW9uLnNhY3JpZmljZUJvb3N0KFwicmVwbGljYXRpb25cIikgKiAzLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAyLCAyKSxcclxuICAgIGZvcm1hdFNpbmdsZUVmZmVjdDogeCA9PiBmb3JtYXQoeCAtIDEsIDIsIDIpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5hZGRFeHBvbmVudHMsXHJcbiAgICBhbHRlcmVkQ29sb3I6ICgpID0+IEdseXBoQWx0ZXJhdGlvbi5nZXRCb29zdENvbG9yKFwicmVwbGljYXRpb25cIiksXHJcbiAgICBhbHRlcmF0aW9uVHlwZTogQUxURVJBVElPTl9UWVBFLkJPT1NULFxyXG4gICAgZW5hYmxlZEluRG9vbWVkOiB0cnVlLFxyXG4gIH0sXHJcbiAgcmVwbGljYXRpb25kdGdhaW46IHtcclxuICAgIGlkOiBcInJlcGxpY2F0aW9uZHRnYWluXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDEwLFxyXG4gICAgaXNHZW5lcmF0ZWQ6IHRydWUsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJyZXBsaWNhdGlvblwiXSxcclxuICAgIHNpbmdsZURlc2M6ICgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNBZGRlZChcInJlcGxpY2F0aW9uXCIpXHJcbiAgICAgID8gYE11bHRpcGx5IERpbGF0ZWQgVGltZSBcXG5bYW5kIFJlcGxpY2FudGkgc3BlZWRdIGJ5IFxcbit7dmFsdWV9IHBlciAke2Zvcm1hdChEQy5FMTAwMDApfSByZXBsaWNhbnRpYFxyXG4gICAgICA6IGBNdWx0aXBseSBEaWxhdGVkIFRpbWUgZ2FpbiBieSBcXG4re3ZhbHVlfSBwZXIgJHtmb3JtYXQoREMuRTEwMDAwKX0gcmVwbGljYW50aWApLFxyXG4gICAgdG90YWxEZXNjOiAoKSA9PiAoR2x5cGhBbHRlcmF0aW9uLmlzQWRkZWQoXCJyZXBsaWNhdGlvblwiKVxyXG4gICAgICA/IGBNdWx0aXBseSBEaWxhdGVkIFRpbWUgYW5kIFJlcGxpY2F0aW9uIHNwZWVkIGJ5ICt7dmFsdWV9IHBlciAke2Zvcm1hdChEQy5FMTAwMDApfSByZXBsaWNhbnRpYFxyXG4gICAgICA6IGBNdWx0aXBseSBEaWxhdGVkIFRpbWUgZ2FpbiBieSAre3ZhbHVlfSBwZXIgJHtmb3JtYXQoREMuRTEwMDAwKX0gcmVwbGljYW50aWApLFxyXG4gICAgZ2VuZXJpY0Rlc2M6ICgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNBZGRlZChcInJlcGxpY2F0aW9uXCIpXHJcbiAgICAgID8gXCJEaWxhdGVkIFRpbWUrUmVwbGljYW50aSBtdWx0IGZyb20gcmVwbGljYW50aVwiXHJcbiAgICAgIDogXCJEaWxhdGVkIFRpbWUgZ2FpbiBtdWx0aXBsaWVyIGZyb20gcmVwbGljYW50aVwiKSxcclxuICAgIHNob3J0RGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwicmVwbGljYXRpb25cIilcclxuICAgICAgPyBgw5dEVCBhbmQgcmVwbC4gYnkgK3t2YWx1ZX0gcGVyICR7Zm9ybWF0KERDLkUxMDAwMCl9IHJlcGxpY2FudGlgXHJcbiAgICAgIDogYMOXRFQgYnkgK3t2YWx1ZX0gcGVyICR7Zm9ybWF0KERDLkUxMDAwMCl9IHJlcGxpY2FudGlgKSxcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gMC4wMDAzICogTWF0aC5wb3cobGV2ZWwsIDAuMykgKiBNYXRoLnBvdyhzdHJlbmd0aCwgMC42NSksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KDEwMDAwICogeCwgMiwgMiksXHJcbiAgICBmb3JtYXRTaW5nbGVFZmZlY3Q6IHggPT4gZm9ybWF0KDEwMDAwICogeCwgMiwgMiksXHJcbiAgICAvLyBJdCdzIGJhZCB0byBzdGFjayB0aGlzIG9uZSBhZGRpdGl2ZWx5IChOIGdseXBocyBhY3RzIGFzIGEgRFQgbXVsdCBvZiBOKSBvciBtdWx0aXBsaWNhdGl2ZWx5ICh0aGUgcmF3IG51bWJlciBpc1xyXG4gICAgLy8gbGVzcyB0aGFuIDEpLCBzbyBpbnN0ZWFkIHdlIGRvIGEgbXVsdGlwbGljYXRpdmUgc3RhY2tpbmcgcmVsYXRpdmUgdG8gdGhlIFwiYmFzZVwiIGVmZmVjdCBvZiBhIGxldmVsIDEsIDAlIGdseXBoLlxyXG4gICAgLy8gV2UgYWxzbyBpbnRyb2R1Y2UgYSAzeCBtdWx0IHBlciBnbHlwaCBhZnRlciB0aGUgZmlyc3QsIHNvIHRoYXQgc3RhY2tpbmcgbGV2ZWwgMSwgMCUgZ2x5cGhzIHN0aWxsIGhhcyBhbiBlZmZlY3QuXHJcbiAgICAvLyBUaGlzIGlzIHN0aWxsIGp1c3QgYSBmbGF0IERUIG11bHQgd2hlbiBzdGFja2luZyBtdWx0aXBsZSBnbHlwaHMsIGJ1dCBhdCBsZWFzdCBpdCdzIGJpZ2dlciB0aGFuIDIgb3IgMy5cclxuICAgIGNvbWJpbmU6IGVmZmVjdHMgPT4gKHtcclxuICAgICAgdmFsdWU6IGVmZmVjdHMubGVuZ3RoID09PSAwID8gMCA6IGVmZmVjdHMucmVkdWNlKE51bWJlci5wcm9kUmVkdWNlciwgTWF0aC5wb3coMC4wMDAxLCAxIC0gZWZmZWN0cy5sZW5ndGgpKSxcclxuICAgICAgY2FwcGVkOiBmYWxzZVxyXG4gICAgfSksXHJcbiAgICBjb252ZXJzaW9uOiB4ID0+IHgsXHJcbiAgICBmb3JtYXRTZWNvbmRhcnlFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDIsIDMpLFxyXG4gICAgZm9ybWF0U2luZ2xlU2Vjb25kYXJ5RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCA1LCA1KSxcclxuICAgIGFsdGVyZWRDb2xvcjogKCkgPT4gR2x5cGhBbHRlcmF0aW9uLmdldEFkZGl0aW9uQ29sb3IoXCJyZXBsaWNhdGlvblwiKSxcclxuICAgIGFsdGVyYXRpb25UeXBlOiBBTFRFUkFUSU9OX1RZUEUuQURESVRJT04sXHJcbiAgfSxcclxuICByZXBsaWNhdGlvbmdseXBobGV2ZWw6IHtcclxuICAgIGlkOiBcInJlcGxpY2F0aW9uZ2x5cGhsZXZlbFwiLFxyXG4gICAgYml0bWFza0luZGV4OiAxMSxcclxuICAgIGlzR2VuZXJhdGVkOiB0cnVlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wicmVwbGljYXRpb25cIl0sXHJcbiAgICBzaW5nbGVEZXNjOiAoKSA9PiBgUmVwbGljYW50aSBmYWN0b3IgZm9yIEdseXBoIGxldmVsOlxcbiBeJHtmb3JtYXQoMC40LCAxLCAxKX1cclxuICAgICAg4p6cIF4oJHtmb3JtYXQoMC40LCAxLCAxKX0gKyB7dmFsdWV9KWAsXHJcbiAgICB0b3RhbERlc2M6ICgpID0+IGBSZXBsaWNhbnRpIGZhY3RvciBmb3IgR2x5cGggbGV2ZWw6IF4ke2Zvcm1hdCgwLjQsIDEsIDEpfVxyXG4gICAgICDinpwgXigke2Zvcm1hdCgwLjQsIDEsIDEpfSArIHt2YWx1ZX0pYCxcclxuICAgIGdlbmVyaWNEZXNjOiBcIlJlcGxpY2FudGkgZmFjdG9yIGZvciBHbHlwaCBsZXZlbFwiLFxyXG4gICAgc2hvcnREZXNjOiBcIlJlcGxpY2FudGkgcG93LiBmb3IgbGV2ZWwgK3t2YWx1ZX1cIixcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gTWF0aC5wb3coTWF0aC5wb3cobGV2ZWwsIDAuMjUpICogTWF0aC5wb3coc3RyZW5ndGgsIDAuNCksIDAuNSkgLyA1MCxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMywgMyksXHJcbiAgICBjb21iaW5lOiBlZmZlY3RzID0+IHtcclxuICAgICAgbGV0IHN1bSA9IGVmZmVjdHMucmVkdWNlKE51bWJlci5zdW1SZWR1Y2VyLCAwKTtcclxuICAgICAgaWYgKGVmZmVjdHMubGVuZ3RoID4gMikgc3VtICo9IDYgLyAoZWZmZWN0cy5sZW5ndGggKyA0KTtcclxuICAgICAgcmV0dXJuIHN1bSA+IDAuMVxyXG4gICAgICAgID8geyB2YWx1ZTogMC4xICsgMC4yICogKHN1bSAtIDAuMSksIGNhcHBlZDogdHJ1ZSB9XHJcbiAgICAgICAgOiB7IHZhbHVlOiBzdW0sIGNhcHBlZDogZWZmZWN0cy5sZW5ndGggPiAyIH07XHJcbiAgICB9LFxyXG4gICAgZW5hYmxlZEluRG9vbWVkOiB0cnVlLFxyXG4gIH0sXHJcbiAgaW5maW5pdHlwb3c6IHtcclxuICAgIGlkOiBcImluZmluaXR5cG93XCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDEyLFxyXG4gICAgaXNHZW5lcmF0ZWQ6IHRydWUsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJpbmZpbml0eVwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiSW5maW5pdHkgRGltZW5zaW9uIHBvd2VyICt7dmFsdWV9XCIsXHJcbiAgICB0b3RhbERlc2M6IFwiSW5maW5pdHkgRGltZW5zaW9uIG11bHRpcGxpZXJzIF57dmFsdWV9XCIsXHJcbiAgICBzaG9ydERlc2M6IFwiSUQgcG93ZXIgK3t2YWx1ZX1cIixcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gMS4wMDcgKyBNYXRoLnBvdyhsZXZlbCwgMC4yMSkgKiBNYXRoLnBvdyhzdHJlbmd0aCwgMC40KSAvIDc1ICtcclxuICAgICAgR2x5cGhBbHRlcmF0aW9uLnNhY3JpZmljZUJvb3N0KFwiaW5maW5pdHlcIikgLyA1MCxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMywgMyksXHJcbiAgICBmb3JtYXRTaW5nbGVFZmZlY3Q6IHggPT4gZm9ybWF0KHggLSAxLCAzLCAzKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIuYWRkRXhwb25lbnRzLFxyXG4gICAgYWx0ZXJlZENvbG9yOiAoKSA9PiBHbHlwaEFsdGVyYXRpb24uZ2V0Qm9vc3RDb2xvcihcImluZmluaXR5XCIpLFxyXG4gICAgYWx0ZXJhdGlvblR5cGU6IEFMVEVSQVRJT05fVFlQRS5CT09TVCxcclxuICAgIGVuYWJsZWRJbkRvb21lZDogdHJ1ZSxcclxuICB9LFxyXG4gIGluZmluaXR5cmF0ZToge1xyXG4gICAgaWQ6IFwiaW5maW5pdHlyYXRlXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDEzLFxyXG4gICAgaXNHZW5lcmF0ZWQ6IHRydWUsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJpbmZpbml0eVwiXSxcclxuICAgIHNpbmdsZURlc2M6ICgpID0+IGBJbmZpbml0eSBQb3dlciBjb252ZXJzaW9uIHJhdGU6IFxcbl4ke2Zvcm1hdEludCg3KX1cclxuICAgICAg4p6cIF4oJHtmb3JtYXRJbnQoNyl9ICsge3ZhbHVlfSlgLFxyXG4gICAgdG90YWxEZXNjOiAoKSA9PiBgSW5maW5pdHkgUG93ZXIgY29udmVyc2lvbiByYXRlOiBeJHtmb3JtYXRJbnQoNyl9XHJcbiAgICAgIOKenCBeKCR7Zm9ybWF0SW50KDcpfSArIHt2YWx1ZX0pYCxcclxuICAgIGdlbmVyaWNEZXNjOiBcIkluZmluaXR5IFBvd2VyIGNvbnZlcnNpb24gcmF0ZVwiLFxyXG4gICAgc2hvcnREZXNjOiBcIkluZmluaXR5IFBvd2VyIGNvbnZlcnNpb24gK3t2YWx1ZX1cIixcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gTWF0aC5wb3cobGV2ZWwsIDAuMikgKiBNYXRoLnBvdyhzdHJlbmd0aCwgMC40KSAqIDAuMDQsXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDIsIDIpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5hZGQsXHJcbiAgICBlbmFibGVkSW5Eb29tZWQ6IHRydWUsXHJcbiAgfSxcclxuICBpbmZpbml0eUlQOiB7XHJcbiAgICBpZDogXCJpbmZpbml0eUlQXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDE0LFxyXG4gICAgaXNHZW5lcmF0ZWQ6IHRydWUsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJpbmZpbml0eVwiXSxcclxuICAgIHNpbmdsZURlc2M6ICgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNBZGRlZChcImluZmluaXR5XCIpXHJcbiAgICAgID8gXCJJbmZpbml0eSBQb2ludCBnYWluIFxcbsOXe3ZhbHVlfSBbYW5kIF5de3ZhbHVlMn1cIlxyXG4gICAgICA6IFwiTXVsdGlwbHkgSW5maW5pdHkgUG9pbnQgZ2FpbiBieSB7dmFsdWV9XCIpLFxyXG4gICAgdG90YWxEZXNjOiAoKSA9PiAoR2x5cGhBbHRlcmF0aW9uLmlzQWRkZWQoXCJpbmZpbml0eVwiKVxyXG4gICAgICA/IFwiSW5maW5pdHkgUG9pbnQgZ2FpbiDDl3t2YWx1ZX0gYW5kIF57dmFsdWUyfVwiXHJcbiAgICAgIDogXCJJbmZpbml0eSBQb2ludCBnYWluIMOXe3ZhbHVlfVwiKSxcclxuICAgIGdlbmVyaWNEZXNjOiAoKSA9PiAoR2x5cGhBbHRlcmF0aW9uLmlzQWRkZWQoXCJpbmZpbml0eVwiKVxyXG4gICAgICA/IFwiSW5maW5pdHkgUG9pbnQgZ2FpbiBtdWx0aXBsaWVyIGFuZCBwb3dlclwiXHJcbiAgICAgIDogXCJJbmZpbml0eSBQb2ludCBnYWluIG11bHRpcGxpZXJcIiksXHJcbiAgICBzaG9ydERlc2M6ICgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNBZGRlZChcImluZmluaXR5XCIpXHJcbiAgICAgID8gXCJJUCDDl3t2YWx1ZX0gYW5kIF57dmFsdWUyfVwiXHJcbiAgICAgIDogXCJJUCDDl3t2YWx1ZX1cIiksXHJcbiAgICBlZmZlY3Q6IChsZXZlbCwgc3RyZW5ndGgpID0+IE1hdGgucG93KGxldmVsICogKHN0cmVuZ3RoICsgMSksIDYpICogMTAwMDAsXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDIsIDMpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5tdWx0aXBseSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZWdhdGVkLWNvbmRpdGlvblxyXG4gICAgc29mdGNhcDogdmFsdWUgPT4gKChFZmZhcmlnLmV0ZXJuaXR5Q2FwICE9PSB1bmRlZmluZWQpID8gTWF0aC5taW4odmFsdWUsIEVmZmFyaWcuZXRlcm5pdHlDYXAudG9OdW1iZXIoKSkgOiB2YWx1ZSksXHJcbiAgICBjb252ZXJzaW9uOiB4ID0+IDEgKyBNYXRoLmxvZzEwKHgpIC8gMTgwMCxcclxuICAgIGZvcm1hdFNlY29uZGFyeUVmZmVjdDogeCA9PiBmb3JtYXQoeCwgNCwgNCksXHJcbiAgICBhbHRlcmVkQ29sb3I6ICgpID0+IEdseXBoQWx0ZXJhdGlvbi5nZXRBZGRpdGlvbkNvbG9yKFwiaW5maW5pdHlcIiksXHJcbiAgICBhbHRlcmF0aW9uVHlwZTogQUxURVJBVElPTl9UWVBFLkFERElUSU9OXHJcbiAgfSxcclxuICBpbmZpbml0eWluZm11bHQ6IHtcclxuICAgIGlkOiBcImluZmluaXR5aW5mbXVsdFwiLFxyXG4gICAgYml0bWFza0luZGV4OiAxNSxcclxuICAgIGlzR2VuZXJhdGVkOiB0cnVlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wiaW5maW5pdHlcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIk11bHRpcGx5IEluZmluaXR5IGdhaW4gYnkge3ZhbHVlfVwiLFxyXG4gICAgdG90YWxEZXNjOiBcIkluZmluaXR5IGdhaW4gw5d7dmFsdWV9XCIsXHJcbiAgICBnZW5lcmljRGVzYzogXCJJbmZpbml0eSBnYWluIG11bHRpcGxpZXJcIixcclxuICAgIHNob3J0RGVzYzogXCJJbmZpbml0aWVzIMOXe3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAoR2x5cGhBbHRlcmF0aW9uLmlzRW1wb3dlcmVkKFwiaW5maW5pdHlcIilcclxuICAgICAgPyBEQy5EMV8wMi5wb3cobGV2ZWwpXHJcbiAgICAgIDogRGVjaW1hbC5wb3cobGV2ZWwgKiBzdHJlbmd0aCwgMS41KS50aW1lcygyKSksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDIsIDEpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5tdWx0aXBseURlY2ltYWwsXHJcbiAgICBhbHRlcmVkQ29sb3I6ICgpID0+IEdseXBoQWx0ZXJhdGlvbi5nZXRFbXBvd2VybWVudENvbG9yKFwiaW5maW5pdHlcIiksXHJcbiAgICBhbHRlcmF0aW9uVHlwZTogQUxURVJBVElPTl9UWVBFLkVNUE9XRVJcclxuICB9LFxyXG4gIHBvd2VycG93OiB7XHJcbiAgICBpZDogXCJwb3dlcnBvd1wiLFxyXG4gICAgYml0bWFza0luZGV4OiAxNixcclxuICAgIGlzR2VuZXJhdGVkOiB0cnVlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wicG93ZXJcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiAoKSA9PiAoR2x5cGhBbHRlcmF0aW9uLmlzQWRkZWQoXCJwb3dlclwiKVxyXG4gICAgICA/IFwiQW50aW1hdHRlciBEaW1lbnNpb24gcG93ZXIgK3t2YWx1ZX1cXG5bYW5kIEFudGltYXR0ZXIgR2FsYXh5IGNvc3Qgw5dde3ZhbHVlMn1cIlxyXG4gICAgICA6IFwiQW50aW1hdHRlciBEaW1lbnNpb24gcG93ZXIgK3t2YWx1ZX1cIiksXHJcbiAgICB0b3RhbERlc2M6ICgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNBZGRlZChcInBvd2VyXCIpXHJcbiAgICAgID8gXCJBbnRpbWF0dGVyIERpbWVuc2lvbiBtdWx0aXBsaWVycyBee3ZhbHVlfSBhbmQgQW50aW1hdHRlciBHYWxheHkgY29zdCDDl3t2YWx1ZTJ9XCJcclxuICAgICAgOiBcIkFudGltYXR0ZXIgRGltZW5zaW9uIG11bHRpcGxpZXJzIF57dmFsdWV9XCIpLFxyXG4gICAgZ2VuZXJpY0Rlc2M6ICgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNBZGRlZChcInBvd2VyXCIpXHJcbiAgICAgID8gXCJBbnRpbWF0dGVyIERpbWVuc2lvbnMgbXVsdGlwbGllcnMgXnggYW5kIEFudGltYXR0ZXIgR2FsYXh5IGNvc3QgbXVsdGlwbGllclwiXHJcbiAgICAgIDogXCJBbnRpbWF0dGVyIERpbWVuc2lvbiBtdWx0aXBsaWVycyBeeFwiKSxcclxuICAgIHNob3J0RGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwicG93ZXJcIilcclxuICAgICAgPyBcIkFEIHBvd2VyICt7dmFsdWV9IGFuZCBBRyBjb3N0IMOXe3ZhbHVlMn1cIlxyXG4gICAgICA6IFwiQUQgcG93ZXIgK3t2YWx1ZX1cIiksXHJcbiAgICBlZmZlY3Q6IChsZXZlbCwgc3RyZW5ndGgpID0+IDEuMDE1ICsgTWF0aC5wb3cobGV2ZWwsIDAuMikgKiBNYXRoLnBvdyhzdHJlbmd0aCwgMC40KSAvIDc1LFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAzLCAzKSxcclxuICAgIGZvcm1hdFNpbmdsZUVmZmVjdDogeCA9PiBmb3JtYXQoeCAtIDEsIDMsIDMpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5hZGRFeHBvbmVudHMsXHJcbiAgICBjb252ZXJzaW9uOiB4ID0+IDIgLyAoeCArIDEpLFxyXG4gICAgZm9ybWF0U2Vjb25kYXJ5RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAzLCAzKSxcclxuICAgIGFsdGVyZWRDb2xvcjogKCkgPT4gR2x5cGhBbHRlcmF0aW9uLmdldEFkZGl0aW9uQ29sb3IoXCJwb3dlclwiKSxcclxuICAgIGFsdGVyYXRpb25UeXBlOiBBTFRFUkFUSU9OX1RZUEUuQURESVRJT04sXHJcbiAgICBlbmFibGVkSW5Eb29tZWQ6IHRydWUsXHJcbiAgfSxcclxuICBwb3dlcm11bHQ6IHtcclxuICAgIGlkOiBcInBvd2VybXVsdFwiLFxyXG4gICAgYml0bWFza0luZGV4OiAxNyxcclxuICAgIGlzR2VuZXJhdGVkOiB0cnVlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wicG93ZXJcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIkFudGltYXR0ZXIgRGltZW5zaW9uIG11bHRpcGxpZXJzIMOXe3ZhbHVlfVwiLFxyXG4gICAgc2hvcnREZXNjOiBcIkFEIMOXe3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAoR2x5cGhBbHRlcmF0aW9uLmlzRW1wb3dlcmVkKFwicG93ZXJcIilcclxuICAgICAgPyBEQy5EMTExMTEucG93KGxldmVsICogMjIwKVxyXG4gICAgICA6IERlY2ltYWwucG93KGxldmVsICogc3RyZW5ndGggKiAxMCwgbGV2ZWwgKiBzdHJlbmd0aCAqIDEwKSksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0UG9zdEJyZWFrKHgsIDIsIDApLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5tdWx0aXBseURlY2ltYWwsXHJcbiAgICBhbHRlcmVkQ29sb3I6ICgpID0+IEdseXBoQWx0ZXJhdGlvbi5nZXRFbXBvd2VybWVudENvbG9yKFwicG93ZXJcIiksXHJcbiAgICBhbHRlcmF0aW9uVHlwZTogQUxURVJBVElPTl9UWVBFLkVNUE9XRVIsXHJcbiAgICBlbmFibGVkSW5Eb29tZWQ6IHRydWUsXHJcbiAgfSxcclxuICBwb3dlcmRpbWJvb3N0OiB7XHJcbiAgICBpZDogXCJwb3dlcmRpbWJvb3N0XCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDE4LFxyXG4gICAgaXNHZW5lcmF0ZWQ6IHRydWUsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJwb3dlclwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiRGltZW5zaW9uIEJvb3N0IG11bHRpcGxpZXIgw5d7dmFsdWV9XCIsXHJcbiAgICBnZW5lcmljRGVzYzogXCJEaW1lbnNpb24gQm9vc3QgbXVsdGlwbGllclwiLFxyXG4gICAgc2hvcnREZXNjOiBcIkRpbWJvb3N0IG11bHQuIMOXe3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiBNYXRoLnBvdyhsZXZlbCAqIHN0cmVuZ3RoLCAwLjUpICpcclxuICAgICAgTWF0aC5wb3coMSArIEdseXBoQWx0ZXJhdGlvbi5zYWNyaWZpY2VCb29zdChcInBvd2VyXCIpLCAzKSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMiwgMiksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLm11bHRpcGx5LFxyXG4gICAgYWx0ZXJlZENvbG9yOiAoKSA9PiBHbHlwaEFsdGVyYXRpb24uZ2V0Qm9vc3RDb2xvcihcInBvd2VyXCIpLFxyXG4gICAgYWx0ZXJhdGlvblR5cGU6IEFMVEVSQVRJT05fVFlQRS5CT09TVCxcclxuICAgIGVuYWJsZWRJbkRvb21lZDogdHJ1ZSxcclxuICB9LFxyXG4gIHBvd2VyYnV5MTA6IHtcclxuICAgIGlkOiBcInBvd2VyYnV5MTBcIixcclxuICAgIGJpdG1hc2tJbmRleDogMTksXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcInBvd2VyXCJdLFxyXG4gICAgc2luZ2xlRGVzYzogKCkgPT4gYEluY3JlYXNlIHRoZSBib251cyBmcm9tIGJ1eWluZyAke2Zvcm1hdEludCgxMCl9IEFudGltYXR0ZXIgRGltZW5zaW9ucyBieSB7dmFsdWV9YCxcclxuICAgIHRvdGFsRGVzYzogKCkgPT4gYE11bHRpcGxpZXIgZnJvbSBcIkJ1eSAke2Zvcm1hdEludCgxMCl9XCIgw5d7dmFsdWV9YCxcclxuICAgIGdlbmVyaWNEZXNjOiAoKSA9PiBgXCJCdXkgJHtmb3JtYXRJbnQoMTApfVwiIGJvbnVzIGluY3JlYXNlYCxcclxuICAgIHNob3J0RGVzYzogKCkgPT4gYEFEIFwiQnV5ICR7Zm9ybWF0SW50KDEwKX1cIiBtdWx0LiDDl3t2YWx1ZX1gLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAxICsgbGV2ZWwgKiBzdHJlbmd0aCAvIDEyLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAyLCAyKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIuYWRkRXhwb25lbnRzLFxyXG4gICAgZW5hYmxlZEluRG9vbWVkOiB0cnVlLFxyXG4gIH0sXHJcbiAgZWZmYXJpZ3JtOiB7XHJcbiAgICBpZDogXCJlZmZhcmlncm1cIixcclxuICAgIGJpdG1hc2tJbmRleDogMjAsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImVmZmFyaWdcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIlJlYWxpdHkgTWFjaGluZSBtdWx0aXBsaWVyIMOXe3ZhbHVlfVwiLFxyXG4gICAgZ2VuZXJpY0Rlc2M6IFwiUmVhbGl0eSBNYWNoaW5lIG11bHRpcGxpZXJcIixcclxuICAgIHNob3J0RGVzYzogXCJSTSDDl3t2YWx1ZX1cIixcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0VtcG93ZXJlZChcImVmZmFyaWdcIilcclxuICAgICAgPyBNYXRoLnBvdyhsZXZlbCwgMS41KVxyXG4gICAgICA6IE1hdGgucG93KGxldmVsLCAwLjYpICogc3RyZW5ndGgpLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAyLCAyKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIubXVsdGlwbHksXHJcbiAgICBhbHRlcmVkQ29sb3I6ICgpID0+IEdseXBoQWx0ZXJhdGlvbi5nZXRFbXBvd2VybWVudENvbG9yKFwiZWZmYXJpZ1wiKSxcclxuICAgIGFsdGVyYXRpb25UeXBlOiBBTFRFUkFUSU9OX1RZUEUuRU1QT1dFUlxyXG4gIH0sXHJcbiAgZWZmYXJpZ2dseXBoOiB7XHJcbiAgICBpZDogXCJlZmZhcmlnZ2x5cGhcIixcclxuICAgIGJpdG1hc2tJbmRleDogMjEsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImVmZmFyaWdcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIkdseXBoIEluc3RhYmlsaXR5IHN0YXJ0aW5nIGxldmVsICt7dmFsdWV9XCIsXHJcbiAgICBnZW5lcmljRGVzYzogXCJHbHlwaCBJbnN0YWJpbGl0eSBkZWxheVwiLFxyXG4gICAgc2hvcnREZXNjOiBcIkluc3RhYmlsaXR5IGRlbGF5ICt7dmFsdWV9XCIsXHJcbiAgICBlZmZlY3Q6IChsZXZlbCwgc3RyZW5ndGgpID0+IE1hdGguZmxvb3IoMTAgKiBNYXRoLnBvdyhsZXZlbCAqIHN0cmVuZ3RoLCAwLjUpKSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXRJbnQoeCksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLmFkZCxcclxuICB9LFxyXG4gIGVmZmFyaWdibGFja2hvbGU6IHtcclxuICAgIGlkOiBcImVmZmFyaWdibGFja2hvbGVcIixcclxuICAgIGJpdG1hc2tJbmRleDogMjIsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImVmZmFyaWdcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIkdhbWUgc3BlZWQgcG93ZXIgK3t2YWx1ZX1cIixcclxuICAgIHRvdGFsRGVzYzogXCJHYW1lIHNwZWVkIF57dmFsdWV9XCIsXHJcbiAgICBnZW5lcmljRGVzYzogXCJHYW1lIHNwZWVkIF54XCIsXHJcbiAgICBzaG9ydERlc2M6IFwiR2FtZSBzcGVlZCBwb3dlciAre3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAxICsgTWF0aC5wb3cobGV2ZWwsIDAuMjUpICogTWF0aC5wb3coc3RyZW5ndGgsIDAuNCkgLyA3NSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMywgMyksXHJcbiAgICBmb3JtYXRTaW5nbGVFZmZlY3Q6IHggPT4gZm9ybWF0KHggLSAxLCAzLCAzKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIuYWRkRXhwb25lbnRzLFxyXG4gIH0sXHJcbiAgZWZmYXJpZ2FjaGlldmVtZW50OiB7XHJcbiAgICBpZDogXCJlZmZhcmlnYWNoaWV2ZW1lbnRcIixcclxuICAgIGJpdG1hc2tJbmRleDogMjMsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImVmZmFyaWdcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIkFjaGlldmVtZW50IG11bHRpcGxpZXIgcG93ZXIgK3t2YWx1ZX1cIixcclxuICAgIHRvdGFsRGVzYzogXCJBY2hpZXZlbWVudCBtdWx0aXBsaWVyIF57dmFsdWV9XCIsXHJcbiAgICBnZW5lcmljRGVzYzogXCJBY2hpZXZlbWVudCBtdWx0aXBsaWVyIF54XCIsXHJcbiAgICBzaG9ydERlc2M6IFwiQWNoaWV2ZW1lbnQgbXVsdC4gcG93ZXIgK3t2YWx1ZX1cIixcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gMSArIE1hdGgucG93KGxldmVsLCAwLjQpICogTWF0aC5wb3coc3RyZW5ndGgsIDAuNikgLyA2MCArXHJcbiAgICAgIEdseXBoQWx0ZXJhdGlvbi5zYWNyaWZpY2VCb29zdChcImVmZmFyaWdcIikgLyAxMCxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMywgMyksXHJcbiAgICBmb3JtYXRTaW5nbGVFZmZlY3Q6IHggPT4gZm9ybWF0KHggLSAxLCAzLCAzKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIuYWRkRXhwb25lbnRzLFxyXG4gICAgYWx0ZXJlZENvbG9yOiAoKSA9PiBHbHlwaEFsdGVyYXRpb24uZ2V0Qm9vc3RDb2xvcihcImVmZmFyaWdcIiksXHJcbiAgICBhbHRlcmF0aW9uVHlwZTogQUxURVJBVElPTl9UWVBFLkJPT1NUXHJcbiAgfSxcclxuICBlZmZhcmlnZm9yZ290dGVuOiB7XHJcbiAgICBpZDogXCJlZmZhcmlnZm9yZ290dGVuXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDI0LFxyXG4gICAgaXNHZW5lcmF0ZWQ6IHRydWUsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJlZmZhcmlnXCJdLFxyXG4gICAgc2luZ2xlRGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwiZWZmYXJpZ1wiKVxyXG4gICAgICA/IGBcIkJ1eSAke2Zvcm1hdEludCgxMCl9XCIgbXVsdGlwbGllciBee3ZhbHVlfSBbYW5kXFxuRGltZW5zaW9uIEJvb3N0IG11bHRpcGxpZXIgXl17dmFsdWUyfWBcclxuICAgICAgOiBgQm9udXMgZnJvbSBidXlpbmcgJHtmb3JtYXRJbnQoMTApfSBEaW1lbnNpb25zIF57dmFsdWV9YCksXHJcbiAgICB0b3RhbERlc2M6ICgpID0+IChHbHlwaEFsdGVyYXRpb24uaXNBZGRlZChcImVmZmFyaWdcIilcclxuICAgICAgPyBgTXVsdGlwbGllciBmcm9tIFwiQnV5ICR7Zm9ybWF0SW50KDEwKX1cIiBee3ZhbHVlfSBhbmQgRGltZW5zaW9uIEJvb3N0IG11bHRpcGxpZXIgXnt2YWx1ZTJ9YFxyXG4gICAgICA6IGBNdWx0aXBsaWVyIGZyb20gXCJCdXkgJHtmb3JtYXRJbnQoMTApfVwiIF57dmFsdWV9YCksXHJcbiAgICBnZW5lcmljRGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwiZWZmYXJpZ1wiKVxyXG4gICAgICA/IGBcIkJ1eSAke2Zvcm1hdEludCgxMCl9XCIgYW5kIERpbWVuc2lvbiBCb29zdCBtdWx0aXBsaWVycyBeeGBcclxuICAgICAgOiBgXCJCdXkgJHtmb3JtYXRJbnQoMTApfVwiIG11bHRpcGxpZXIgXnhgKSxcclxuICAgIHNob3J0RGVzYzogKCkgPT4gKEdseXBoQWx0ZXJhdGlvbi5pc0FkZGVkKFwiZWZmYXJpZ1wiKVxyXG4gICAgICA/IGBCdXkgJHtmb3JtYXRJbnQoMTApfSBtdWx0LiBee3ZhbHVlfSwgRGltYm9vc3QgbXVsdC4gXnt2YWx1ZTJ9YFxyXG4gICAgICA6IGBCdXkgJHtmb3JtYXRJbnQoMTApfSBtdWx0LiBee3ZhbHVlfWApLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAxICsgMiAqIE1hdGgucG93KGxldmVsLCAwLjI1KSAqIE1hdGgucG93KHN0cmVuZ3RoLCAwLjQpLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAyLCAyKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIubXVsdGlwbHksXHJcbiAgICBjb252ZXJzaW9uOiB4ID0+IE1hdGgucG93KHgsIDAuNCksXHJcbiAgICBmb3JtYXRTZWNvbmRhcnlFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDIsIDIpLFxyXG4gICAgYWx0ZXJlZENvbG9yOiAoKSA9PiBHbHlwaEFsdGVyYXRpb24uZ2V0QWRkaXRpb25Db2xvcihcImVmZmFyaWdcIiksXHJcbiAgICBhbHRlcmF0aW9uVHlwZTogQUxURVJBVElPTl9UWVBFLkFERElUSU9OXHJcbiAgfSxcclxuICBlZmZhcmlnZGltZW5zaW9uczoge1xyXG4gICAgaWQ6IFwiZWZmYXJpZ2RpbWVuc2lvbnNcIixcclxuICAgIGJpdG1hc2tJbmRleDogMjUsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImVmZmFyaWdcIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIkFsbCBEaW1lbnNpb24gcG93ZXIgK3t2YWx1ZX1cIixcclxuICAgIHRvdGFsRGVzYzogXCJBbGwgRGltZW5zaW9uIG11bHRpcGxpZXJzIF57dmFsdWV9XCIsXHJcbiAgICBnZW5lcmljRGVzYzogXCJBbGwgRGltZW5zaW9uIG11bHRpcGxpZXJzIF54XCIsXHJcbiAgICBzaG9ydERlc2M6IFwiQWxsIERpbWVuc2lvbiBwb3dlciAre3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiAxICsgTWF0aC5wb3cobGV2ZWwsIDAuMjUpICogTWF0aC5wb3coc3RyZW5ndGgsIDAuNCkgLyA1MDAsXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDMsIDMpLFxyXG4gICAgZm9ybWF0U2luZ2xlRWZmZWN0OiB4ID0+IGZvcm1hdCh4IC0gMSwgMywgMyksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLmFkZEV4cG9uZW50cyxcclxuICB9LFxyXG4gIGVmZmFyaWdhbnRpbWF0dGVyOiB7XHJcbiAgICBpZDogXCJlZmZhcmlnYW50aW1hdHRlclwiLFxyXG4gICAgYml0bWFza0luZGV4OiAyNixcclxuICAgIGlzR2VuZXJhdGVkOiB0cnVlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wiZWZmYXJpZ1wiXSxcclxuICAgIHNpbmdsZURlc2M6ICgpID0+IGBBbnRpbWF0dGVyIHByb2R1Y3Rpb246XFxuJHtmb3JtYXRJbnQoMTApfV54IOKenCAke2Zvcm1hdEludCgxMCl9Xih4Xnt2YWx1ZX0pYCxcclxuICAgIGdlbmVyaWNEZXNjOiBcIkFudGltYXR0ZXIgcHJvZHVjdGlvbiBleHBvbmVudCBwb3dlclwiLFxyXG4gICAgc2hvcnREZXNjOiBcIkFNIHByb2R1Y3Rpb24gZXhwb25lbnQgXnt2YWx1ZX1cIixcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gMSArIE1hdGgucG93KGxldmVsLCAwLjI1KSAqIE1hdGgucG93KHN0cmVuZ3RoLCAwLjQpIC8gNTAwMCxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgNCwgNCksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLm11bHRpcGx5LFxyXG4gIH0sXHJcbiAgdGltZXNoYXJkcG93OiB7XHJcbiAgICBpZDogXCJ0aW1lc2hhcmRwb3dcIixcclxuICAgIGJpdG1hc2tJbmRleDogMjcsXHJcbiAgICBpc0dlbmVyYXRlZDogdHJ1ZSxcclxuICAgIC8vIFRoaXMgZ2V0cyBleHBsaWNpdGx5IGFkZGVkIHRvIHRpbWUgZ2x5cGhzIGVsc2V3aGVyZSAob25jZSB1bmxvY2tlZClcclxuICAgIGdseXBoVHlwZXM6IFtdLFxyXG4gICAgc2luZ2xlRGVzYzogXCJUaW1lIFNoYXJkIHBvd2VyICt7dmFsdWV9XCIsXHJcbiAgICB0b3RhbERlc2M6IFwiVGltZSBTaGFyZCBnYWluIF57dmFsdWV9XCIsXHJcbiAgICBnZW5lcmljRGVzYzogXCJUaW1lIFNoYXJkcyBeeFwiLFxyXG4gICAgc2hvcnREZXNjOiBcIlRpbWUgU2hhcmQgcG93ZXIgK3t2YWx1ZX1cIixcclxuICAgIGVmZmVjdDogKGxldmVsLCBzdHJlbmd0aCkgPT4gMSArIChzdHJlbmd0aCAvIDMuNSkgKiBNYXRoLnBvdyhsZXZlbCwgMC4zNSkgLyA0MDAsXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDMsIDMpLFxyXG4gICAgZm9ybWF0U2luZ2xlRWZmZWN0OiB4ID0+IGZvcm1hdCh4IC0gMSwgMywgMyksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLmFkZEV4cG9uZW50cyxcclxuICAgIGVuYWJsZWRJbkRvb21lZDogdHJ1ZSxcclxuICB9LFxyXG4gIGN1cnNlZGdhbGF4aWVzOiB7XHJcbiAgICBpZDogXCJjdXJzZWRnYWxheGllc1wiLFxyXG4gICAgYml0bWFza0luZGV4OiAwLFxyXG4gICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wiY3Vyc2VkXCJdLFxyXG4gICAgc2luZ2xlRGVzYzogYEFsbCBHYWxheGllcyBhcmUge3ZhbHVlfSB3ZWFrZXJgLFxyXG4gICAgdG90YWxEZXNjOiBcIkFsbCBHYWxheHkgc3RyZW5ndGggLXt2YWx1ZX1cIixcclxuICAgIHNob3J0RGVzYzogXCJHYWxheHkgU3RyZW5ndGggLXt2YWx1ZX1cIixcclxuICAgIC8vIE11bHRpcGxpZXMgYnkgMC43NjggcGVyIGdseXBoXHJcbiAgICBlZmZlY3Q6IGxldmVsID0+IE1hdGgucG93KGxldmVsLCAtMC4wMyksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0UGVyY2VudHMoMSAtIHgsIDIpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5tdWx0aXBseSxcclxuICB9LFxyXG4gIGN1cnNlZGRpbWVuc2lvbnM6IHtcclxuICAgIGlkOiBcImN1cnNlZGRpbWVuc2lvbnNcIixcclxuICAgIGJpdG1hc2tJbmRleDogMSxcclxuICAgIGlzR2VuZXJhdGVkOiBmYWxzZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImN1cnNlZFwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiQWxsIERpbWVuc2lvbiBtdWx0aXBsaWVycyBee3ZhbHVlfVwiLFxyXG4gICAgc2hvcnREZXNjOiBcIkFsbCBEaW1lbnNpb25zIF57dmFsdWV9XCIsXHJcbiAgICAvLyBNdWx0aXBsaWVzIGJ5IDAuNzM0IHBlciBnbHlwaFxyXG4gICAgZWZmZWN0OiBsZXZlbCA9PiBNYXRoLnBvdyhsZXZlbCwgLTAuMDM1KSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXQoeCwgMywgMyksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLm11bHRpcGx5LFxyXG4gIH0sXHJcbiAgY3Vyc2VkdGlja3NwZWVkOiB7XHJcbiAgICBpZDogXCJjdXJzZWR0aWNrc3BlZWRcIixcclxuICAgIGJpdG1hc2tJbmRleDogMixcclxuICAgIGlzR2VuZXJhdGVkOiBmYWxzZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImN1cnNlZFwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiVGhlIHRocmVzaG9sZCBmb3IgVGlja3NwZWVkIFVwZ3JhZGVzIGZyb20gVGltZSBEaW1lbnNpb25zIGlzIG11bHRpcGxpZWQgYnkgw5d7dmFsdWV9XCIsXHJcbiAgICB0b3RhbERlc2M6IFwiVGhlIHRocmVzaG9sZCBmb3IgVGlja3NwZWVkIFVwZ3JhZGVzIGZyb20gVGltZSBEaW1lbnNpb25zIGlzIGluY3JlYXNlZCBieSDDl3t2YWx1ZX1cIixcclxuICAgIHNob3J0RGVzYzogXCJURCBUaWNrc3BlZWQgdGhyZXNob2xkIMOXe3ZhbHVlfVwiLFxyXG4gICAgLy8gQWRkaXRpdmUgMy44MiBwZXIgZ2x5cGhcclxuICAgIGVmZmVjdDogbGV2ZWwgPT4gTWF0aC5jbGFtcE1pbihNYXRoLmxvZzEwKGxldmVsKSwgMSksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KHgsIDMsIDMpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5hZGQsXHJcbiAgfSxcclxuICBjdXJzZWRFUDoge1xyXG4gICAgaWQ6IFwiY3Vyc2VkRVBcIixcclxuICAgIGJpdG1hc2tJbmRleDogMyxcclxuICAgIGlzR2VuZXJhdGVkOiBmYWxzZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImN1cnNlZFwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiRGl2aWRlIEV0ZXJuaXR5IFBvaW50IGdhaW4gYnkge3ZhbHVlfVwiLFxyXG4gICAgdG90YWxEZXNjOiBcIkV0ZXJuaXR5IFBvaW50IGdhaW4gLyB7dmFsdWV9XCIsXHJcbiAgICBzaG9ydERlc2M6IFwiRVAgLyB7dmFsdWV9XCIsXHJcbiAgICAvLyBEaXZpZGVzIGU2NjYuNiBwZXIgZ2x5cGhcclxuICAgIGVmZmVjdDogbGV2ZWwgPT4gRGVjaW1hbC5wb3cxMCgtbGV2ZWwgLyAxMCksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0KHgucmVjaXByb2NhbCgpKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIubXVsdGlwbHlEZWNpbWFsLFxyXG4gIH0sXHJcbiAgcmVhbGl0eWdseXBobGV2ZWw6IHtcclxuICAgIGlkOiBcInJlYWxpdHlnbHlwaGxldmVsXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDQsXHJcbiAgICBpc0dlbmVyYXRlZDogZmFsc2UsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJyZWFsaXR5XCJdLFxyXG4gICAgc2luZ2xlRGVzYzogXCJJbmNyZWFzZSB0aGUgZWZmZWN0aXZlIGxldmVsIG9mIGVxdWlwcGVkIGJhc2ljIEdseXBocyBieSB7dmFsdWV9XCIsXHJcbiAgICB0b3RhbERlc2M6IFwiRXF1aXBwZWQgYmFzaWMgR2x5cGggbGV2ZWwgK3t2YWx1ZX1cIixcclxuICAgIHNob3J0RGVzYzogXCJCYXNpYyBHbHlwaCBMZXZlbCAre3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiBsZXZlbCA9PiBNYXRoLmZsb29yKE1hdGguc3FydChsZXZlbCAqIDkwKSksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0SW50KHgpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5hZGQsXHJcbiAgfSxcclxuICByZWFsaXR5Z2FsYXhpZXM6IHtcclxuICAgIGlkOiBcInJlYWxpdHlnYWxheGllc1wiLFxyXG4gICAgYml0bWFza0luZGV4OiA1LFxyXG4gICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wicmVhbGl0eVwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiQWxsIEdhbGF4aWVzIGFyZSB7dmFsdWV9IHN0cm9uZ2VyXCIsXHJcbiAgICB0b3RhbERlc2M6IFwiQWxsIEdhbGF4eSBzdHJlbmd0aCAre3ZhbHVlfVwiLFxyXG4gICAgc2hvcnREZXNjOiBcIkdhbGF4eSBTdHJlbmd0aCAre3ZhbHVlfVwiLFxyXG4gICAgZWZmZWN0OiBsZXZlbCA9PiAxICsgTWF0aC5wb3cobGV2ZWwgLyAxMDAwMDAsIDAuNSksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gZm9ybWF0UGVyY2VudHMoeCAtIDEsIDIpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5tdWx0aXBseSxcclxuICB9LFxyXG4gIHJlYWxpdHlyb3cxcG93OiB7XHJcbiAgICBpZDogXCJyZWFsaXR5cm93MXBvd1wiLFxyXG4gICAgYml0bWFza0luZGV4OiA2LFxyXG4gICAgaXNHZW5lcmF0ZWQ6IGZhbHNlLFxyXG4gICAgZ2x5cGhUeXBlczogW1wicmVhbGl0eVwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiTXVsdGlwbGllciBmcm9tIFJlYWxpdHkgVXBncmFkZSBBbXBsaWZpZXJzIF57dmFsdWV9XCIsXHJcbiAgICB0b3RhbERlc2M6IFwiUmVhbGl0eSBVcGdyYWRlIEFtcGxpZmllciBtdWx0aXBsaWVyIF57dmFsdWV9XCIsXHJcbiAgICBzaG9ydERlc2M6IFwiQW1wbGlmaWVyIE11bHRpcGxpZXIgXnt2YWx1ZX1cIixcclxuICAgIGVmZmVjdDogbGV2ZWwgPT4gMSArIGxldmVsIC8gMTI1MDAwLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAzLCAzKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIuYWRkRXhwb25lbnRzLFxyXG4gIH0sXHJcbiAgcmVhbGl0eURUZ2x5cGg6IHtcclxuICAgIGlkOiBcInJlYWxpdHlEVGdseXBoXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDcsXHJcbiAgICBpc0dlbmVyYXRlZDogZmFsc2UsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJyZWFsaXR5XCJdLFxyXG4gICAgc2luZ2xlRGVzYzogKCkgPT4gYERpbGF0ZWQgVGltZSBmYWN0b3IgZm9yIEdseXBoIGxldmVsOiBcXG5eJHtmb3JtYXQoMS4zLCAxLCAxKX1cclxuICAgICAg4p6cIF4oJHtmb3JtYXQoMS4zLCAxLCAxKX0gKyB7dmFsdWV9KWAsXHJcbiAgICB0b3RhbERlc2M6ICgpID0+IGBEaWxhdGVkIFRpbWUgZmFjdG9yIGZvciBHbHlwaCBsZXZlbDogXiR7Zm9ybWF0KDEuMywgMSwgMSl9XHJcbiAgICAgIOKenCBeKCR7Zm9ybWF0KDEuMywgMSwgMSl9ICsge3ZhbHVlfSlgLFxyXG4gICAgZ2VuZXJpY0Rlc2M6IFwiRGlsYXRlZCBUaW1lIGZhY3RvciBmb3IgR2x5cGggbGV2ZWxcIixcclxuICAgIHNob3J0RGVzYzogXCJEVCBwb3cuIGZvciBsZXZlbCAre3ZhbHVlfVwiLFxyXG4gICAgLy8gWW91IGNhbiBvbmx5IGdldCB0aGlzIGVmZmVjdCBvbiBsZXZlbCAyNTAwMCByZWFsaXR5IGdseXBocyBhbnl3YXksIG1pZ2h0IGFzIHdlbGwgbWFrZSBpdCBsb29rIG5pY2VcclxuICAgIGVmZmVjdDogKCkgPT4gMC4xLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdCh4LCAyLCAyKSxcclxuICAgIGNvbWJpbmU6IEdseXBoQ29tYmluZXIuYWRkLFxyXG4gIH0sXHJcbiAgY29tcGFuaW9uZGVzY3JpcHRpb246IHtcclxuICAgIGlkOiBcImNvbXBhbmlvbmRlc2NyaXB0aW9uXCIsXHJcbiAgICBiaXRtYXNrSW5kZXg6IDgsXHJcbiAgICBpc0dlbmVyYXRlZDogZmFsc2UsXHJcbiAgICBnbHlwaFR5cGVzOiBbXCJjb21wYW5pb25cIl0sXHJcbiAgICBzaW5nbGVEZXNjOiBcIkl0IGRvZXMgbm90aGluZyBidXQgc2l0IHRoZXJlIGFuZCBjdXRlbHkgc21pbGUgYXQgeW91LCB3aGlzcGVyIGludG8geW91ciBkcmVhbXMgcG9saXRlbHksIFwiICtcclxuICAgICAgXCJhbmQgcGxvdCB0aGUgZGVtaXNlIG9mIGFsbCB3aG8gc3RhbmQgYWdhaW5zdCB5b3UuIFRoaXMgb25lLW9mLWEta2luZCBHbHlwaCB3aWxsIG5ldmVyIGxlYXZlIHlvdS5cIixcclxuICAgIHRvdGFsRGVzYzogXCIre3ZhbHVlfSBoYXBwaW5lc3NcIixcclxuICAgIHNob3J0RGVzYzogXCJEb2Vzbid0IHdhbnQgdG8gaHVydCB5b3VcIixcclxuICAgIGVmZmVjdDogKCkgPT4ge1xyXG4gICAgICBpZiAoRW5zbGF2ZWQuaXNSdW5uaW5nKSByZXR1cm4gMDtcclxuICAgICAgY29uc3QgY3Vyc2VkQ291bnQgPSBHbHlwaHMuYWN0aXZlLmNvdW50V2hlcmUoZyA9PiBnPy50eXBlID09PSBcImN1cnNlZFwiKTtcclxuICAgICAgaWYgKGN1cnNlZENvdW50ID4gMCkgcmV0dXJuIE1hdGgucG93KDAuMiArIDAuMiAqIE1hdGgucmFuZG9tKCksIGN1cnNlZENvdW50KTtcclxuICAgICAgcmV0dXJuIDAuNCArIDAuNiAqIE1hdGgucmFuZG9tKCk7XHJcbiAgICB9LFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGZvcm1hdFBlcmNlbnRzKHgsIDIsIDIpLFxyXG4gICAgY29tYmluZTogR2x5cGhDb21iaW5lci5hZGQsXHJcbiAgICBlbmFibGVkSW5Eb29tZWQ6IHRydWUsXHJcbiAgfSxcclxuICBjb21wYW5pb25FUDoge1xyXG4gICAgaWQ6IFwiY29tcGFuaW9uRVBcIixcclxuICAgIGJpdG1hc2tJbmRleDogOSxcclxuICAgIGlzR2VuZXJhdGVkOiBmYWxzZSxcclxuICAgIGdseXBoVHlwZXM6IFtcImNvbXBhbmlvblwiXSxcclxuICAgIHNpbmdsZURlc2M6IFwiVGhhbmtzIGZvciB5b3VyIGRlZGljYXRpb24gZm9yIHRoZSBnYW1lISBZb3UgcmVhY2hlZCB7dmFsdWV9IEV0ZXJuaXR5IFBvaW50cyBvbiB5b3VyIGZpcnN0IFJlYWxpdHkuXCIsXHJcbiAgICBzaG9ydERlc2M6IFwiSXQgbG92ZXMgeW91IHZlcnksIHZlcnkgbXVjaFwiLFxyXG4gICAgdG90YWxEZXNjOiAoKSA9PiAoKEVuc2xhdmVkLmlzUnVubmluZyB8fCBHbHlwaHMuYWN0aXZlLmNvdW50V2hlcmUoZyA9PiBnPy50eXBlID09PSBcImN1cnNlZFwiKSkgPyBcIkhlbHAgbWVcIiA6IFwiWWF5IVwiKSxcclxuICAgIC8vIFRoZSBFUCB2YWx1ZSBmb3IgdGhpcyBpcyBlbnRpcmVseSBlbmNvZGVkIGluIHJhcml0eSwgYnV0IGxldmVsIG5lZWRzIHRvIGJlIHByZXNlbnQgdG9cclxuICAgIC8vIG1ha2Ugc3VyZSB0aGUgcHJvcGVyIHBhcmFtZXRlciBpcyBiZWluZyB1c2VkLiBUaGUgYWN0dWFsIGdseXBoIGxldmVsIHNob3VsZG4ndCBkbyBhbnl0aGluZy5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgZWZmZWN0OiAobGV2ZWwsIHN0cmVuZ3RoKSA9PiBEZWNpbWFsLnBvdzEwKDFlNiAqIHN0cmVuZ3RoVG9SYXJpdHkoc3RyZW5ndGgpKSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBmb3JtYXRQb3N0QnJlYWsoeCwgMiksXHJcbiAgICBjb21iaW5lOiBHbHlwaENvbWJpbmVyLm11bHRpcGx5RGVjaW1hbCxcclxuICAgIGVuYWJsZWRJbkRvb21lZDogdHJ1ZSxcclxuICB9XHJcbn07XHJcbiJdLCJuYW1lcyI6WyJEQyIsIkdseXBoQ29tYmluZXIiLCJPYmplY3QiLCJmcmVlemUiLCJhZGQiLCJ4IiwicmVkdWNlIiwiTnVtYmVyIiwic3VtUmVkdWNlciIsIm11bHRpcGx5IiwicHJvZFJlZHVjZXIiLCJhZGRFeHBvbmVudHMiLCJsZW5ndGgiLCJtdWx0aXBseURlY2ltYWwiLCJEZWNpbWFsIiwiRDEiLCJnbHlwaEVmZmVjdHMiLCJ0aW1lcG93IiwiaWQiLCJiaXRtYXNrSW5kZXgiLCJpc0dlbmVyYXRlZCIsImdseXBoVHlwZXMiLCJzaW5nbGVEZXNjIiwidG90YWxEZXNjIiwic2hvcnREZXNjIiwiZWZmZWN0IiwibGV2ZWwiLCJzdHJlbmd0aCIsIk1hdGgiLCJwb3ciLCJmb3JtYXRFZmZlY3QiLCJmb3JtYXQiLCJmb3JtYXRTaW5nbGVFZmZlY3QiLCJjb21iaW5lIiwiZW5hYmxlZEluRG9vbWVkIiwidGltZXNwZWVkIiwiZ2VuZXJpY0Rlc2MiLCJHbHlwaEFsdGVyYXRpb24iLCJpc0VtcG93ZXJlZCIsImFsdGVyZWRDb2xvciIsImdldEVtcG93ZXJtZW50Q29sb3IiLCJhbHRlcmF0aW9uVHlwZSIsIkFMVEVSQVRJT05fVFlQRSIsIkVNUE9XRVIiLCJ0aW1lZXRlcm11bHQiLCJzYWNyaWZpY2VCb29zdCIsImdldEJvb3N0Q29sb3IiLCJCT09TVCIsInRpbWVFUCIsImlzQWRkZWQiLCJjb252ZXJzaW9uIiwibG9nMTAiLCJmb3JtYXRTZWNvbmRhcnlFZmZlY3QiLCJnZXRBZGRpdGlvbkNvbG9yIiwiQURESVRJT04iLCJkaWxhdGlvbkRUIiwiRDFfMDA1IiwidGltZXMiLCJkaWxhdGlvbmdhbGF4eVRocmVzaG9sZCIsImVmZmVjdHMiLCJwcm9kIiwidmFsdWUiLCJjYXBwZWQiLCJkaWxhdGlvblRUZ2VuIiwiY2xhbXBNaW4iLCJkaWxhdGlvbnBvdyIsInJlcGxpY2F0aW9uc3BlZWQiLCJEMV8wMDciLCJyZXBsaWNhdGlvbnBvdyIsInJlcGxpY2F0aW9uZHRnYWluIiwiRTEwMDAwIiwiZm9ybWF0U2luZ2xlU2Vjb25kYXJ5RWZmZWN0IiwicmVwbGljYXRpb25nbHlwaGxldmVsIiwic3VtIiwiaW5maW5pdHlwb3ciLCJpbmZpbml0eXJhdGUiLCJmb3JtYXRJbnQiLCJpbmZpbml0eUlQIiwic29mdGNhcCIsIkVmZmFyaWciLCJldGVybml0eUNhcCIsInVuZGVmaW5lZCIsIm1pbiIsInRvTnVtYmVyIiwiaW5maW5pdHlpbmZtdWx0IiwiRDFfMDIiLCJwb3dlcnBvdyIsInBvd2VybXVsdCIsIkQxMTExMSIsImZvcm1hdFBvc3RCcmVhayIsInBvd2VyZGltYm9vc3QiLCJwb3dlcmJ1eTEwIiwiZWZmYXJpZ3JtIiwiZWZmYXJpZ2dseXBoIiwiZmxvb3IiLCJlZmZhcmlnYmxhY2tob2xlIiwiZWZmYXJpZ2FjaGlldmVtZW50IiwiZWZmYXJpZ2ZvcmdvdHRlbiIsImVmZmFyaWdkaW1lbnNpb25zIiwiZWZmYXJpZ2FudGltYXR0ZXIiLCJ0aW1lc2hhcmRwb3ciLCJjdXJzZWRnYWxheGllcyIsImZvcm1hdFBlcmNlbnRzIiwiY3Vyc2VkZGltZW5zaW9ucyIsImN1cnNlZHRpY2tzcGVlZCIsImN1cnNlZEVQIiwicG93MTAiLCJyZWNpcHJvY2FsIiwicmVhbGl0eWdseXBobGV2ZWwiLCJzcXJ0IiwicmVhbGl0eWdhbGF4aWVzIiwicmVhbGl0eXJvdzFwb3ciLCJyZWFsaXR5RFRnbHlwaCIsImNvbXBhbmlvbmRlc2NyaXB0aW9uIiwiRW5zbGF2ZWQiLCJpc1J1bm5pbmciLCJjdXJzZWRDb3VudCIsIkdseXBocyIsImFjdGl2ZSIsImNvdW50V2hlcmUiLCJnIiwidHlwZSIsInJhbmRvbSIsImNvbXBhbmlvbkVQIiwic3RyZW5ndGhUb1Jhcml0eSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/core/secret-formula/reality/glyph-effects.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/reality/glyph-sacrifices.js": +/*!*************************************************************!*\ + !*** ./src/core/secret-formula/reality/glyph-sacrifices.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"glyphSacrifice\": () => (/* binding */ glyphSacrifice)\n/* harmony export */ });\nconst glyphSacrifice = {\n \"power\": {\n id: \"power\",\n effect: added => {\n if (Pelle.isDisabled(\"glyphsac\")) return 0;\n const sac = player.reality.glyphs.sac.power + (added !== null && added !== void 0 ? added : 0);\n const capped = Math.clampMax(sac, GlyphSacrificeHandler.maxSacrificeForEffects);\n const base = Math.log10(capped + 1) / Math.log10(GlyphSacrificeHandler.maxSacrificeForEffects);\n return Math.floor(750 * Math.pow(base, 1.2));\n },\n description: amount => {\n const sacCap = GlyphSacrificeHandler.maxSacrificeForEffects;\n const nextDistantGalaxy = Math.pow(10, Math.pow((amount + 1) / 750, 1 / 1.2) * Math.log10(sacCap)) - 1;\n const nextGalaxyText = amount < 750 ? ` (next at ${format(nextDistantGalaxy, 2, 2)})` : \"\";\n return `Distant Galaxy scaling starts ${formatInt(amount)} later${nextGalaxyText}`;\n },\n cap: () => GlyphSacrificeHandler.maxSacrificeForEffects\n },\n \"infinity\": {\n id: \"infinity\",\n effect: added => {\n if (Pelle.isDisabled(\"glyphsac\")) return 1;\n const sac = player.reality.glyphs.sac.infinity + (added !== null && added !== void 0 ? added : 0);\n const capped = Math.clampMax(sac, GlyphSacrificeHandler.maxSacrificeForEffects);\n return 1 + Math.log10(1 + Math.pow(capped, 0.2) / 100);\n },\n description: amount => `${formatX(amount, 2, 2)} bigger multiplier when buying 8th Infinity Dimension`,\n cap: () => GlyphSacrificeHandler.maxSacrificeForEffects\n },\n \"time\": {\n id: \"time\",\n effect: added => {\n if (Pelle.isDisabled(\"glyphsac\")) return 1;\n const sac = player.reality.glyphs.sac.time + (added !== null && added !== void 0 ? added : 0);\n const capped = Math.clampMax(sac, GlyphSacrificeHandler.maxSacrificeForEffects);\n return Math.pow(1 + Math.pow(capped, 0.2) / 100, 2);\n },\n description: amount => `${formatX(amount, 2, 2)} bigger multiplier when buying 8th Time Dimension`,\n cap: () => GlyphSacrificeHandler.maxSacrificeForEffects\n },\n \"replication\": {\n id: \"replication\",\n effect: added => {\n if (Pelle.isDisabled(\"glyphsac\")) return 0;\n const sac = player.reality.glyphs.sac.replication + (added !== null && added !== void 0 ? added : 0);\n const capped = Math.clampMax(sac, GlyphSacrificeHandler.maxSacrificeForEffects);\n const base = Math.log10(capped + 1) / Math.log10(GlyphSacrificeHandler.maxSacrificeForEffects);\n return Math.floor(1500 * Math.pow(base, 1.2));\n },\n description: amount => {\n const sacCap = GlyphSacrificeHandler.maxSacrificeForEffects;\n const nextDistantGalaxy = Math.pow(10, Math.pow((amount + 1) / 1500, 1 / 1.2) * Math.log10(sacCap)) - 1;\n const nextGalaxyText = amount < 1500 ? ` (next at ${format(nextDistantGalaxy, 2, 2)})` : \"\";\n return `Replicanti Galaxy scaling starts ${formatInt(amount)} later${nextGalaxyText}`;\n },\n cap: () => GlyphSacrificeHandler.maxSacrificeForEffects\n },\n \"dilation\": {\n id: \"dilation\",\n effect: added => {\n if (Pelle.isDisabled(\"glyphsac\")) return 1;\n const sac = player.reality.glyphs.sac.dilation + (added !== null && added !== void 0 ? added : 0);\n const capped = Math.clampMax(sac, GlyphSacrificeHandler.maxSacrificeForEffects);\n const exponent = 0.32 * Math.pow(Math.log10(capped + 1) / Math.log10(GlyphSacrificeHandler.maxSacrificeForEffects), 0.1);\n return Math.pow(Math.clampMin(capped, 1), exponent);\n },\n description: amount => `Multiply Tachyon Particle gain by ${formatX(amount, 2, 2)}`,\n cap: () => GlyphSacrificeHandler.maxSacrificeForEffects\n },\n \"effarig\": {\n id: \"effarig\",\n effect: added => {\n if (Pelle.isDisabled(\"glyphsac\")) return 0;\n const sac = player.reality.glyphs.sac.effarig + (added !== null && added !== void 0 ? added : 0); // This doesn't use the GlyphSacrificeHandler cap because it hits its cap (+100%) earlier\n\n const capped = Math.clampMax(sac, 1e70);\n return 2 * Math.log10(capped / 1e20 + 1);\n },\n description: amount => `+${formatPercents(amount / 100, 2)} additional Glyph rarity`,\n cap: () => 1e70\n },\n \"reality\": {\n id: \"reality\",\n effect: added => {\n if (Pelle.isDisabled(\"glyphsac\")) return 0;\n const sac = player.reality.glyphs.sac.reality + (added !== null && added !== void 0 ? added : 0); // This cap is only feasibly reached with the imaginary upgrade, but we still want to cap it at a nice number\n\n return Math.clampMax(1 + Math.sqrt(sac) / 15, 100);\n },\n description: amount => `Multiply Memory Chunk gain by ${formatX(amount, 2, 3)}`,\n cap: () => GlyphSacrificeHandler.maxSacrificeForEffects\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L2dseXBoLXNhY3JpZmljZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFPLE1BQU1BLGNBQWMsR0FBRztBQUM1QixXQUFTO0FBQ1BDLElBQUFBLEVBQUUsRUFBRSxPQURHO0FBRVBDLElBQUFBLE1BQU0sRUFBRUMsS0FBSyxJQUFJO0FBQ2YsVUFBSUMsS0FBSyxDQUFDQyxVQUFOLENBQWlCLFVBQWpCLENBQUosRUFBa0MsT0FBTyxDQUFQO0FBQ2xDLFlBQU1DLEdBQUcsR0FBR0MsTUFBTSxDQUFDQyxPQUFQLENBQWVDLE1BQWYsQ0FBc0JILEdBQXRCLENBQTBCSSxLQUExQixJQUFtQ1AsS0FBbkMsYUFBbUNBLEtBQW5DLGNBQW1DQSxLQUFuQyxHQUE0QyxDQUE1QyxDQUFaO0FBQ0EsWUFBTVEsTUFBTSxHQUFHQyxJQUFJLENBQUNDLFFBQUwsQ0FBY1AsR0FBZCxFQUFtQlEscUJBQXFCLENBQUNDLHNCQUF6QyxDQUFmO0FBQ0EsWUFBTUMsSUFBSSxHQUFHSixJQUFJLENBQUNLLEtBQUwsQ0FBV04sTUFBTSxHQUFHLENBQXBCLElBQXlCQyxJQUFJLENBQUNLLEtBQUwsQ0FBV0gscUJBQXFCLENBQUNDLHNCQUFqQyxDQUF0QztBQUNBLGFBQU9ILElBQUksQ0FBQ00sS0FBTCxDQUFXLE1BQU1OLElBQUksQ0FBQ08sR0FBTCxDQUFTSCxJQUFULEVBQWUsR0FBZixDQUFqQixDQUFQO0FBQ0QsS0FSTTtBQVNQSSxJQUFBQSxXQUFXLEVBQUVDLE1BQU0sSUFBSTtBQUNyQixZQUFNQyxNQUFNLEdBQUdSLHFCQUFxQixDQUFDQyxzQkFBckM7QUFDQSxZQUFNUSxpQkFBaUIsR0FBR1gsSUFBSSxDQUFDTyxHQUFMLENBQVMsRUFBVCxFQUFhUCxJQUFJLENBQUNPLEdBQUwsQ0FBUyxDQUFDRSxNQUFNLEdBQUcsQ0FBVixJQUFlLEdBQXhCLEVBQTZCLElBQUksR0FBakMsSUFBd0NULElBQUksQ0FBQ0ssS0FBTCxDQUFX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SUFBbkIsQ0FBZjtBQUNBLGFBQU8sSUFBSU0sSUFBSSxDQUFDSyxLQUFMLENBQVdOLE1BQU0sR0FBRyxJQUFULEdBQWdCLENBQTNCLENBQVg7QUFDRCxLQVJRO0FBU1RTLElBQUFBLFdBQVcsRUFBRUMsTUFBTSxJQUFLLElBQUdlLGNBQWMsQ0FBQ2YsTUFBTSxHQUFHLEdBQVYsRUFBZSxDQUFmLENBQWtCLDBCQVRsRDtBQVVUTSxJQUFBQSxHQUFHLEVBQUUsTUFBTTtBQVZGLEdBMUVpQjtBQXNGNUIsYUFBVztBQUNUMUIsSUFBQUEsRUFBRSxFQUFFLFNBREs7QUFFVEMsSUFBQUEsTUFBTSxFQUFFQyxLQUFLLElBQUk7QUFDZixVQUFJQyxLQUFLLENBQUNDLFVBQU4sQ0FBaUIsVUFBakIsQ0FBSixFQUFrQyxPQUFPLENBQVA7QUFDbEMsWUFBTUMsR0FBRyxHQUFHQyxNQUFNLENBQUNDLE9BQVAsQ0FBZUMsTUFBZixDQUFzQkgsR0FBdEIsQ0FBMEJFLE9BQTFCLElBQXFDTCxLQUFyQyxhQUFxQ0EsS0FBckMsY0FBcUNBLEtBQXJDLEdBQThDLENBQTlDLENBQVosQ0FGZSxDQUdmOztBQUNBLGFBQU9TLElBQUksQ0FBQ0MsUUFBTCxDQUFjLElBQUlELElBQUksQ0FBQ3lCLElBQUwsQ0FBVS9CLEdBQVYsSUFBaUIsRUFBbkMsRUFBdUMsR0FBdkMsQ0FBUDtBQUNELEtBUFE7QUFRVGMsSUFBQUEsV0FBVyxFQUFFQyxNQUFNLElBQUssaUNBQWdDUSxPQUFPLENBQUNSLE1BQUQsRUFBUyxDQUFULEVBQVksQ0FBWixDQUFlLEVBUnJFO0FBU1RNLElBQUFBLEdBQUcsRUFBRSxNQUFNYixxQkFBcUIsQ0FBQ0M7QUFUeEI7QUF0RmlCLENBQXZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvcmUvc2VjcmV0LWZvcm11bGEvcmVhbGl0eS9nbHlwaC1zYWNyaWZpY2VzLmpzPzJhYTAiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGdseXBoU2FjcmlmaWNlID0ge1xyXG4gIFwicG93ZXJcIjoge1xyXG4gICAgaWQ6IFwicG93ZXJcIixcclxuICAgIGVmZmVjdDogYWRkZWQgPT4ge1xyXG4gICAgICBpZiAoUGVsbGUuaXNEaXNhYmxlZChcImdseXBoc2FjXCIpKSByZXR1cm4gMDtcclxuICAgICAgY29uc3Qgc2FjID0gcGxheWVyLnJlYWxpdHkuZ2x5cGhzLnNhYy5wb3dlciArIChhZGRlZCA/PyAwKTtcclxuICAgICAgY29uc3QgY2FwcGVkID0gTWF0aC5jbGFtcE1heChzYWMsIEdseXBoU2FjcmlmaWNlSGFuZGxlci5tYXhTYWNyaWZpY2VGb3JFZmZlY3RzKTtcclxuICAgICAgY29uc3QgYmFzZSA9IE1hdGgubG9nMTAoY2FwcGVkICsgMSkgLyBNYXRoLmxvZzEwKEdseXBoU2FjcmlmaWNlSGFuZGxlci5tYXhTYWNyaWZpY2VGb3JFZmZlY3RzKTtcclxuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoNzUwICogTWF0aC5wb3coYmFzZSwgMS4yKSk7XHJcbiAgICB9LFxyXG4gICAgZGVzY3JpcHRpb246IGFtb3VudCA9PiB7XHJcbiAgICAgIGNvbnN0IHNhY0NhcCA9IEdseXBoU2FjcmlmaWNlSGFuZGxlci5tYXhTYWNyaWZpY2VGb3JFZmZlY3RzO1xyXG4gICAgICBjb25zdCBuZXh0RGlzdGFudEdhbGF4eSA9IE1hdGgucG93KDEwLCBNYXRoLnBvdygoYW1vdW50ICsgMSkgLyA3NTAsIDEgLyAxLjIpICogTWF0aC5sb2cxMChzYWNDYXApKSAtIDE7XHJcbiAgICAgIGNvbnN0IG5leHRHYWxheHlUZXh0ID0gYW1vdW50IDwgNzUwXHJcbiAgICAgICAgPyBgIChuZXh0IGF0ICR7Zm9ybWF0KG5leHREaXN0YW50R2FsYXh5LCAyLCAyKX0pYFxyXG4gICAgICAgIDogXCJcIjtcclxuICAgICAgcmV0dXJuIGBEaXN0YW50IEdhbGF4eSBzY2FsaW5nIHN0YXJ0cyAke2Zvcm1hdEludChhbW91bnQpfSBsYXRlciR7bmV4dEdhbGF4eVRleHR9YDtcclxuICAgIH0sXHJcbiAgICBjYXA6ICgpID0+IEdseXBoU2FjcmlmaWNlSGFuZGxlci5tYXhTYWNyaWZpY2VGb3JFZmZlY3RzXHJcbiAgfSxcclxuICBcImluZmluaXR5XCI6IHtcclxuICAgIGlkOiBcImluZmluaXR5XCIsXHJcbiAgICBlZmZlY3Q6IGFkZGVkID0+IHtcclxuICAgICAgaWYgKFBlbGxlLmlzRGlzYWJsZWQoXCJnbHlwaHNhY1wiKSkgcmV0dXJuIDE7XHJcbiAgICAgIGNvbnN0IHNhYyA9IHBsYXllci5yZWFsaXR5LmdseXBocy5zYWMuaW5maW5pdHkgKyAoYWRkZWQgPz8gMCk7XHJcbiAgICAgIGNvbnN0IGNhcHBlZCA9IE1hdGguY2xhbXBNYXgoc2FjLCBHbHlwaFNhY3JpZmljZUhhbmRsZXIubWF4U2FjcmlmaWNlRm9yRWZmZWN0cyk7XHJcbiAgICAgIHJldHVybiAxICsgTWF0aC5sb2cxMCgxICsgTWF0aC5wb3coY2FwcGVkLCAwLjIpIC8gMTAwKTtcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjogYW1vdW50ID0+IGAke2Zvcm1hdFgoYW1vdW50LCAyLCAyKX0gYmlnZ2VyIG11bHRpcGxpZXIgd2hlbiBidXlpbmcgOHRoIEluZmluaXR5IERpbWVuc2lvbmAsXHJcbiAgICBjYXA6ICgpID0+IEdseXBoU2FjcmlmaWNlSGFuZGxlci5tYXhTYWNyaWZpY2VGb3JFZmZlY3RzXHJcbiAgfSxcclxuICBcInRpbWVcIjoge1xyXG4gICAgaWQ6IFwidGltZVwiLFxyXG4gICAgZWZmZWN0OiBhZGRlZCA9PiB7XHJcbiAgICAgIGlmIChQZWxsZS5pc0Rpc2FibGVkKFwiZ2x5cGhzYWNcIikpIHJldHVybiAxO1xyXG4gICAgICBjb25zdCBzYWMgPSBwbGF5ZXIucmVhbGl0eS5nbHlwaHMuc2FjLnRpbWUgKyAoYWRkZWQgPz8gMCk7XHJcbiAgICAgIGNvbnN0IGNhcHBlZCA9IE1hdGguY2xhbXBNYXgoc2FjLCBHbHlwaFNhY3JpZmljZUhhbmRsZXIubWF4U2FjcmlmaWNlRm9yRWZmZWN0cyk7XHJcbiAgICAgIHJldHVybiBNYXRoLnBvdygxICsgTWF0aC5wb3coY2FwcGVkLCAwLjIpIC8gMTAwLCAyKTtcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjogYW1vdW50ID0+IGAke2Zvcm1hdFgoYW1vdW50LCAyLCAyKX0gYmlnZ2VyIG11bHRpcGxpZXIgd2hlbiBidXlpbmcgOHRoIFRpbWUgRGltZW5zaW9uYCxcclxuICAgIGNhcDogKCkgPT4gR2x5cGhTYWNyaWZpY2VIYW5kbGVyLm1heFNhY3JpZmljZUZvckVmZmVjdHNcclxuICB9LFxyXG4gIFwicmVwbGljYXRpb25cIjoge1xyXG4gICAgaWQ6IFwicmVwbGljYXRpb25cIixcclxuICAgIGVmZmVjdDogYWRkZWQgPT4ge1xyXG4gICAgICBpZiAoUGVsbGUuaXNEaXNhYmxlZChcImdseXBoc2FjXCIpKSByZXR1cm4gMDtcclxuICAgICAgY29uc3Qgc2FjID0gcGxheWVyLnJlYWxpdHkuZ2x5cGhzLnNhYy5yZXBsaWNhdGlvbiArIChhZGRlZCA/PyAwKTtcclxuICAgICAgY29uc3QgY2FwcGVkID0gTWF0aC5jbGFtcE1heChzYWMsIEdseXBoU2FjcmlmaWNlSGFuZGxlci5tYXhTYWNyaWZpY2VGb3JFZmZlY3RzKTtcclxuICAgICAgY29uc3QgYmFzZSA9IE1hdGgubG9nMTAoY2FwcGVkICsgMSkgLyBNYXRoLmxvZzEwKEdseXBoU2FjcmlmaWNlSGFuZGxlci5tYXhTYWNyaWZpY2VGb3JFZmZlY3RzKTtcclxuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoMTUwMCAqIE1hdGgucG93KGJhc2UsIDEuMikpO1xyXG4gICAgfSxcclxuICAgIGRlc2NyaXB0aW9uOiBhbW91bnQgPT4ge1xyXG4gICAgICBjb25zdCBzYWNDYXAgPSBHbHlwaFNhY3JpZmljZUhhbmRsZXIubWF4U2FjcmlmaWNlRm9yRWZmZWN0cztcclxuICAgICAgY29uc3QgbmV4dERpc3RhbnRHYWxheHkgPSBNYXRoLnBvdygxMCwgTWF0aC5wb3coKGFtb3VudCArIDEpIC8gMTUwMCwgMSAvIDEuMikgKiBNYXRoLmxvZzEwKHNhY0NhcCkpIC0gMTtcclxuICAgICAgY29uc3QgbmV4dEdhbGF4eVRleHQgPSBhbW91bnQgPCAxNTAwXHJcbiAgICAgICAgPyBgIChuZXh0IGF0ICR7Zm9ybWF0KG5leHREaXN0YW50R2FsYXh5LCAyLCAyKX0pYFxyXG4gICAgICAgIDogXCJcIjtcclxuICAgICAgcmV0dXJuIGBSZXBsaWNhbnRpIEdhbGF4eSBzY2FsaW5nIHN0YXJ0cyAke2Zvcm1hdEludChhbW91bnQpfSBsYXRlciR7bmV4dEdhbGF4eVRleHR9YDtcclxuICAgIH0sXHJcbiAgICBjYXA6ICgpID0+IEdseXBoU2FjcmlmaWNlSGFuZGxlci5tYXhTYWNyaWZpY2VGb3JFZmZlY3RzXHJcbiAgfSxcclxuICBcImRpbGF0aW9uXCI6IHtcclxuICAgIGlkOiBcImRpbGF0aW9uXCIsXHJcbiAgICBlZmZlY3Q6IGFkZGVkID0+IHtcclxuICAgICAgaWYgKFBlbGxlLmlzRGlzYWJsZWQoXCJnbHlwaHNhY1wiKSkgcmV0dXJuIDE7XHJcbiAgICAgIGNvbnN0IHNhYyA9IHBsYXllci5yZWFsaXR5LmdseXBocy5zYWMuZGlsYXRpb24gKyAoYWRkZWQgPz8gMCk7XHJcbiAgICAgIGNvbnN0IGNhcHBlZCA9IE1hdGguY2xhbXBNYXgoc2FjLCBHbHlwaFNhY3JpZmljZUhhbmRsZXIubWF4U2FjcmlmaWNlRm9yRWZmZWN0cyk7XHJcbiAgICAgIGNvbnN0IGV4cG9uZW50ID0gMC4zMiAqIE1hdGgucG93KE1hdGgubG9nMTAoY2FwcGVkICsgMSkgL1xyXG4gICAgICAgIE1hdGgubG9nMTAoR2x5cGhTYWNyaWZpY2VIYW5kbGVyLm1heFNhY3JpZmljZUZvckVmZmVjdHMpLCAwLjEpO1xyXG4gICAgICByZXR1cm4gTWF0aC5wb3coTWF0aC5jbGFtcE1pbihjYXBwZWQsIDEpLCBleHBvbmVudCk7XHJcbiAgICB9LFxyXG4gICAgZGVzY3JpcHRpb246IGFtb3VudCA9PiBgTXVsdGlwbHkgVGFjaHlvbiBQYXJ0aWNsZSBnYWluIGJ5ICR7Zm9ybWF0WChhbW91bnQsIDIsIDIpfWAsXHJcbiAgICBjYXA6ICgpID0+IEdseXBoU2FjcmlmaWNlSGFuZGxlci5tYXhTYWNyaWZpY2VGb3JFZmZlY3RzXHJcbiAgfSxcclxuICBcImVmZmFyaWdcIjoge1xyXG4gICAgaWQ6IFwiZWZmYXJpZ1wiLFxyXG4gICAgZWZmZWN0OiBhZGRlZCA9PiB7XHJcbiAgICAgIGlmIChQZWxsZS5pc0Rpc2FibGVkKFwiZ2x5cGhzYWNcIikpIHJldHVybiAwO1xyXG4gICAgICBjb25zdCBzYWMgPSBwbGF5ZXIucmVhbGl0eS5nbHlwaHMuc2FjLmVmZmFyaWcgKyAoYWRkZWQgPz8gMCk7XHJcbiAgICAgIC8vIFRoaXMgZG9lc24ndCB1c2UgdGhlIEdseXBoU2FjcmlmaWNlSGFuZGxlciBjYXAgYmVjYXVzZSBpdCBoaXRzIGl0cyBjYXAgKCsxMDAlKSBlYXJsaWVyXHJcbiAgICAgIGNvbnN0IGNhcHBlZCA9IE1hdGguY2xhbXBNYXgoc2FjLCAxZTcwKTtcclxuICAgICAgcmV0dXJuIDIgKiBNYXRoLmxvZzEwKGNhcHBlZCAvIDFlMjAgKyAxKTtcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjogYW1vdW50ID0+IGArJHtmb3JtYXRQZXJjZW50cyhhbW91bnQgLyAxMDAsIDIpfSBhZGRpdGlvbmFsIEdseXBoIHJhcml0eWAsXHJcbiAgICBjYXA6ICgpID0+IDFlNzBcclxuICB9LFxyXG4gIFwicmVhbGl0eVwiOiB7XHJcbiAgICBpZDogXCJyZWFsaXR5XCIsXHJcbiAgICBlZmZlY3Q6IGFkZGVkID0+IHtcclxuICAgICAgaWYgKFBlbGxlLmlzRGlzYWJsZWQoXCJnbHlwaHNhY1wiKSkgcmV0dXJuIDA7XHJcbiAgICAgIGNvbnN0IHNhYyA9IHBsYXllci5yZWFsaXR5LmdseXBocy5zYWMucmVhbGl0eSArIChhZGRlZCA/PyAwKTtcclxuICAgICAgLy8gVGhpcyBjYXAgaXMgb25seSBmZWFzaWJseSByZWFjaGVkIHdpdGggdGhlIGltYWdpbmFyeSB1cGdyYWRlLCBidXQgd2Ugc3RpbGwgd2FudCB0byBjYXAgaXQgYXQgYSBuaWNlIG51bWJlclxyXG4gICAgICByZXR1cm4gTWF0aC5jbGFtcE1heCgxICsgTWF0aC5zcXJ0KHNhYykgLyAxNSwgMTAwKTtcclxuICAgIH0sXHJcbiAgICBkZXNjcmlwdGlvbjogYW1vdW50ID0+IGBNdWx0aXBseSBNZW1vcnkgQ2h1bmsgZ2FpbiBieSAke2Zvcm1hdFgoYW1vdW50LCAyLCAzKX1gLFxyXG4gICAgY2FwOiAoKSA9PiBHbHlwaFNhY3JpZmljZUhhbmRsZXIubWF4U2FjcmlmaWNlRm9yRWZmZWN0c1xyXG4gIH1cclxufTtcclxuIl0sIm5hbWVzIjpbImdseXBoU2FjcmlmaWNlIiwiaWQiLCJlZmZlY3QiLCJhZGRlZCIsIlBlbGxlIiwiaXNEaXNhYmxlZCIsInNhYyIsInBsYXllciIsInJlYWxpdHkiLCJnbHlwaHMiLCJwb3dlciIsImNhcHBlZCIsIk1hdGgiLCJjbGFtcE1heCIsIkdseXBoU2FjcmlmaWNlSGFuZGxlciIsIm1heFNhY3JpZmljZUZvckVmZmVjdHMiLCJiYXNlIiwibG9nMTAiLCJmbG9vciIsInBvdyIsImRlc2NyaXB0aW9uIiwiYW1vdW50Iiwic2FjQ2FwIiwibmV4dERpc3RhbnRHYWxheHkiLCJuZXh0R2FsYXh5VGV4dCIsImZvcm1hdCIsImZvcm1hdEludCIsImNhcCIsImluZmluaXR5IiwiZm9ybWF0WCIsInRpbWUiLCJyZXBsaWNhdGlvbiIsImRpbGF0aW9uIiwiZXhwb25lbnQiLCJjbGFtcE1pbiIsImVmZmFyaWciLCJmb3JtYXRQZXJjZW50cyIsInNxcnQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/core/secret-formula/reality/glyph-sacrifices.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/reality/glyph-types.js": +/*!********************************************************!*\ + !*** ./src/core/secret-formula/reality/glyph-types.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"glyphTypes\": () => (/* binding */ glyphTypes),\n/* harmony export */ \"cosmeticGlyphs\": () => (/* binding */ cosmeticGlyphs)\n/* harmony export */ });\n// The glyphTypes entry is used for both gameplay and cosmetics purposes, so we cannot modify isUnlocked for cosmetics.\n// For the purposes of cosmetics, the difference between isUnlocked and canCustomize is as follows:\n// - isUnlocked: Whether or not this type appears as a choice in glyph-specific customization for overriding their\n// normal display type; this is ignored for functional type entries\n// - canCustomize: Whether or not this type can have its color/symbol changed in the type-specific customization\nconst glyphTypes = {\n time: {\n id: \"time\",\n symbol: GLYPH_SYMBOLS.time,\n color: \"#b241e3\",\n primaryEffect: \"timepow\",\n alchemyResource: ALCHEMY_RESOURCE.TIME,\n hasRarity: true\n },\n dilation: {\n id: \"dilation\",\n symbol: GLYPH_SYMBOLS.dilation,\n color: \"#64dd17\",\n alchemyResource: ALCHEMY_RESOURCE.DILATION,\n hasRarity: true\n },\n replication: {\n id: \"replication\",\n symbol: GLYPH_SYMBOLS.replication,\n color: \"#03a9f4\",\n alchemyResource: ALCHEMY_RESOURCE.REPLICATION,\n hasRarity: true\n },\n infinity: {\n id: \"infinity\",\n symbol: GLYPH_SYMBOLS.infinity,\n color: \"#b67f33\",\n primaryEffect: \"infinitypow\",\n alchemyResource: ALCHEMY_RESOURCE.INFINITY,\n hasRarity: true\n },\n power: {\n id: \"power\",\n symbol: GLYPH_SYMBOLS.power,\n color: \"#22aa48\",\n primaryEffect: \"powerpow\",\n alchemyResource: ALCHEMY_RESOURCE.POWER,\n hasRarity: true\n },\n effarig: {\n id: \"effarig\",\n symbol: GLYPH_SYMBOLS.effarig,\n color: \"#e21717\",\n isUnlocked: () => EffarigUnlock.reality.isUnlocked,\n canCustomize: () => EffarigUnlock.reality.isUnlocked,\n alchemyResource: ALCHEMY_RESOURCE.EFFARIG,\n hasRarity: true // Effarig glyphs have no primary effect; all are equally likely\n\n },\n reality: {\n id: \"reality\",\n symbol: GLYPH_SYMBOLS.reality,\n fixedSymbolColor: true,\n isUnlocked: () => false,\n canCustomize: () => player.reality.glyphs.createdRealityGlyph,\n // Refining a reality glyph is pretty wasteful anyway, but might as well have this here\n alchemyResource: ALCHEMY_RESOURCE.REALITY\n },\n cursed: {\n id: \"cursed\",\n symbol: GLYPH_SYMBOLS.cursed,\n color: \"#000000\",\n fixedSymbolColor: true,\n isUnlocked: () => false,\n canCustomize: () => V.isFlipped\n },\n companion: {\n id: \"companion\",\n symbol: GLYPH_SYMBOLS.companion,\n color: \"#feaec9\",\n fixedSymbolColor: true,\n isUnlocked: () => false,\n canCustomize: () => false\n }\n};\nconst cosmeticGlyphs = {\n music: {\n id: \"music\",\n symbol: \"♫\",\n color: \"#FF80AB\",\n isUnlocked: () => TeresaUnlocks.shop.isUnlocked\n },\n blob: {\n id: \"blob\",\n symbol: \"\\uE010\",\n color: \"#E4B51A\",\n preventBlur: true,\n isUnlocked: () => Themes.available().map(t => t.name).includes(\"S11\"),\n canCustomize: () => false\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L2dseXBoLXR5cGVzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1BLFVBQVUsR0FBRztBQUN4QkMsRUFBQUEsSUFBSSxFQUFFO0FBQ0pDLElBQUFBLEVBQUUsRUFBRSxNQURBO0FBRUpDLElBQUFBLE1BQU0sRUFBRUMsYUFBYSxDQUFDSCxJQUZsQjtBQUdKSSxJQUFBQSxLQUFLLEVBQUUsU0FISDtBQUlKQyxJQUFBQSxhQUFhLEVBQUUsU0FKWDtBQUtKQyxJQUFBQSxlQUFlLEVBQUVDLGdCQUFnQixDQUFDQyxJQUw5QjtBQU1KQyxJQUFBQSxTQUFTLEVBQUU7QUFOUCxHQURrQjtBQVN4QkMsRUFBQUEsUUFBUSxFQUFFO0FBQ1JULElBQUFBLEVBQUUsRUFBRSxVQURJO0FBRVJDLElBQUFBLE1BQU0sRUFBRUMsYUFBYSxDQUFDTyxRQUZkO0FBR1JOLElBQUFBLEtBQUssRUFBRSxTQUhDO0FBSVJFLElBQUFBLGVBQWUsRUFBRUMsZ0JBQWdCLENBQUNJLFFBSjFCO0FBS1JGLElBQUFBLFNBQVMsRUFBRTtBQUxILEdBVGM7QUFnQnhCRyxFQUFBQSxXQUFXLEVBQUU7QUFDWFgsSUFBQUEsRUFBRSxFQUFFLGFBRE87QUFFWEMsSUFBQUEsTUFBTSxFQUFFQyxhQUFhLENBQUNTLFdBRlg7QUFHWFIsSUFBQUEsS0FBSyxFQUFFLFNBSEk7QUFJWEUsSUFBQUEsZUFBZSxFQUFFQyxnQkFBZ0IsQ0FBQ00sV0FKdkI7QUFLWEosSUFBQUEsU0FBUyxFQUFFO0FBTEEsR0FoQlc7QUF1QnhCSyxFQUFBQSxRQUFRLEVBQUU7QUFDUmIsSUFBQUEsRUFBRSxFQUFFLFVBREk7QUFFUkMsSUFBQUEsTUFBTSxFQUFFQyxhQUFhLENBQUNXLFFBRmQ7QUFHUlYsSUFBQUEsS0FBSyxFQUFFLFNBSEM7QUFJUkMsSUFBQUEsYUFBYSxFQUFFLGFBSlA7QUFLUkMsSUFBQUEsZUFBZSxF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QVksRUFBRSxNQUFNO0FBTmhCO0FBUHNCLENBQXZCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvcmUvc2VjcmV0LWZvcm11bGEvcmVhbGl0eS9nbHlwaC10eXBlcy5qcz83MDA2Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBnbHlwaFR5cGVzIGVudHJ5IGlzIHVzZWQgZm9yIGJvdGggZ2FtZXBsYXkgYW5kIGNvc21ldGljcyBwdXJwb3Nlcywgc28gd2UgY2Fubm90IG1vZGlmeSBpc1VubG9ja2VkIGZvciBjb3NtZXRpY3MuXHJcbi8vIEZvciB0aGUgcHVycG9zZXMgb2YgY29zbWV0aWNzLCB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGlzVW5sb2NrZWQgYW5kIGNhbkN1c3RvbWl6ZSBpcyBhcyBmb2xsb3dzOlxyXG4vLyAtIGlzVW5sb2NrZWQ6IFdoZXRoZXIgb3Igbm90IHRoaXMgdHlwZSBhcHBlYXJzIGFzIGEgY2hvaWNlIGluIGdseXBoLXNwZWNpZmljIGN1c3RvbWl6YXRpb24gZm9yIG92ZXJyaWRpbmcgdGhlaXJcclxuLy8gICAgbm9ybWFsIGRpc3BsYXkgdHlwZTsgdGhpcyBpcyBpZ25vcmVkIGZvciBmdW5jdGlvbmFsIHR5cGUgZW50cmllc1xyXG4vLyAtIGNhbkN1c3RvbWl6ZTogV2hldGhlciBvciBub3QgdGhpcyB0eXBlIGNhbiBoYXZlIGl0cyBjb2xvci9zeW1ib2wgY2hhbmdlZCBpbiB0aGUgdHlwZS1zcGVjaWZpYyBjdXN0b21pemF0aW9uXHJcbmV4cG9ydCBjb25zdCBnbHlwaFR5cGVzID0ge1xyXG4gIHRpbWU6IHtcclxuICAgIGlkOiBcInRpbWVcIixcclxuICAgIHN5bWJvbDogR0xZUEhfU1lNQk9MUy50aW1lLFxyXG4gICAgY29sb3I6IFwiI2IyNDFlM1wiLFxyXG4gICAgcHJpbWFyeUVmZmVjdDogXCJ0aW1lcG93XCIsXHJcbiAgICBhbGNoZW15UmVzb3VyY2U6IEFMQ0hFTVlfUkVTT1VSQ0UuVElNRSxcclxuICAgIGhhc1Jhcml0eTogdHJ1ZVxyXG4gIH0sXHJcbiAgZGlsYXRpb246IHtcclxuICAgIGlkOiBcImRpbGF0aW9uXCIsXHJcbiAgICBzeW1ib2w6IEdMWVBIX1NZTUJPTFMuZGlsYXRpb24sXHJcbiAgICBjb2xvcjogXCIjNjRkZDE3XCIsXHJcbiAgICBhbGNoZW15UmVzb3VyY2U6IEFMQ0hFTVlfUkVTT1VSQ0UuRElMQVRJT04sXHJcbiAgICBoYXNSYXJpdHk6IHRydWVcclxuICB9LFxyXG4gIHJlcGxpY2F0aW9uOiB7XHJcbiAgICBpZDogXCJyZXBsaWNhdGlvblwiLFxyXG4gICAgc3ltYm9sOiBHTFlQSF9TWU1CT0xTLnJlcGxpY2F0aW9uLFxyXG4gICAgY29sb3I6IFwiIzAzYTlmNFwiLFxyXG4gICAgYWxjaGVteVJlc291cmNlOiBBTENIRU1ZX1JFU09VUkNFLlJFUExJQ0FUSU9OLFxyXG4gICAgaGFzUmFyaXR5OiB0cnVlXHJcbiAgfSxcclxuICBpbmZpbml0eToge1xyXG4gICAgaWQ6IFwiaW5maW5pdHlcIixcclxuICAgIHN5bWJvbDogR0xZUEhfU1lNQk9MUy5pbmZpbml0eSxcclxuICAgIGNvbG9yOiBcIiNiNjdmMzNcIixcclxuICAgIHByaW1hcnlFZmZlY3Q6IFwiaW5maW5pdHlwb3dcIixcclxuICAgIGFsY2hlbXlSZXNvdXJjZTogQUxDSEVNWV9SRVNPVVJDRS5JTkZJTklUWSxcclxuICAgIGhhc1Jhcml0eTogdHJ1ZVxyXG4gIH0sXHJcbiAgcG93ZXI6IHtcclxuICAgIGlkOiBcInBvd2VyXCIsXHJcbiAgICBzeW1ib2w6IEdMWVBIX1NZTUJPTFMucG93ZXIsXHJcbiAgICBjb2xvcjogXCIjMjJhYTQ4XCIsXHJcbiAgICBwcmltYXJ5RWZmZWN0OiBcInBvd2VycG93XCIsXHJcbiAgICBhbGNoZW15UmVzb3VyY2U6IEFMQ0hFTVlfUkVTT1VSQ0UuUE9XRVIsXHJcbiAgICBoYXNSYXJpdHk6IHRydWVcclxuICB9LFxyXG4gIGVmZmFyaWc6IHtcclxuICAgIGlkOiBcImVmZmFyaWdcIixcclxuICAgIHN5bWJvbDogR0xZUEhfU1lNQk9MUy5lZmZhcmlnLFxyXG4gICAgY29sb3I6IFwiI2UyMTcxN1wiLFxyXG4gICAgaXNVbmxvY2tlZDogKCkgPT4gRWZmYXJpZ1VubG9jay5yZWFsaXR5LmlzVW5sb2NrZWQsXHJcbiAgICBjYW5DdXN0b21pemU6ICgpID0+IEVmZmFyaWdVbmxvY2sucmVhbGl0eS5pc1VubG9ja2VkLFxyXG4gICAgYWxjaGVteVJlc291cmNlOiBBTENIRU1ZX1JFU09VUkNFLkVGRkFSSUcsXHJcbiAgICBoYXNSYXJpdHk6IHRydWVcclxuICAgIC8vIEVmZmFyaWcgZ2x5cGhzIGhhdmUgbm8gcHJpbWFyeSBlZmZlY3Q7IGFsbCBhcmUgZXF1YWxseSBsaWtlbHlcclxuICB9LFxyXG4gIHJlYWxpdHk6IHtcclxuICAgIGlkOiBcInJlYWxpdHlcIixcclxuICAgIHN5bWJvbDogR0xZUEhfU1lNQk9MUy5yZWFsaXR5LFxyXG4gICAgZml4ZWRTeW1ib2xDb2xvcjogdHJ1ZSxcclxuICAgIGlzVW5sb2NrZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2FuQ3VzdG9taXplOiAoKSA9PiBwbGF5ZXIucmVhbGl0eS5nbHlwaHMuY3JlYXRlZFJlYWxpdHlHbHlwaCxcclxuICAgIC8vIFJlZmluaW5nIGEgcmVhbGl0eSBnbHlwaCBpcyBwcmV0dHkgd2FzdGVmdWwgYW55d2F5LCBidXQgbWlnaHQgYXMgd2VsbCBoYXZlIHRoaXMgaGVyZVxyXG4gICAgYWxjaGVteVJlc291cmNlOiBBTENIRU1ZX1JFU09VUkNFLlJFQUxJVFlcclxuICB9LFxyXG4gIGN1cnNlZDoge1xyXG4gICAgaWQ6IFwiY3Vyc2VkXCIsXHJcbiAgICBzeW1ib2w6IEdMWVBIX1NZTUJPTFMuY3Vyc2VkLFxyXG4gICAgY29sb3I6IFwiIzAwMDAwMFwiLFxyXG4gICAgZml4ZWRTeW1ib2xDb2xvcjogdHJ1ZSxcclxuICAgIGlzVW5sb2NrZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2FuQ3VzdG9taXplOiAoKSA9PiBWLmlzRmxpcHBlZCxcclxuICB9LFxyXG4gIGNvbXBhbmlvbjoge1xyXG4gICAgaWQ6IFwiY29tcGFuaW9uXCIsXHJcbiAgICBzeW1ib2w6IEdMWVBIX1NZTUJPTFMuY29tcGFuaW9uLFxyXG4gICAgY29sb3I6IFwiI2ZlYWVjOVwiLFxyXG4gICAgZml4ZWRTeW1ib2xDb2xvcjogdHJ1ZSxcclxuICAgIGlzVW5sb2NrZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2FuQ3VzdG9taXplOiAoKSA9PiBmYWxzZSxcclxuICB9LFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvc21ldGljR2x5cGhzID0ge1xyXG4gIG11c2ljOiB7XHJcbiAgICBpZDogXCJtdXNpY1wiLFxyXG4gICAgc3ltYm9sOiBcIuKZq1wiLFxyXG4gICAgY29sb3I6IFwiI0ZGODBBQlwiLFxyXG4gICAgaXNVbmxvY2tlZDogKCkgPT4gVGVyZXNhVW5sb2Nrcy5zaG9wLmlzVW5sb2NrZWQsXHJcbiAgfSxcclxuICBibG9iOiB7XHJcbiAgICBpZDogXCJibG9iXCIsXHJcbiAgICBzeW1ib2w6IFwiXFx1RTAxMFwiLFxyXG4gICAgY29sb3I6IFwiI0U0QjUxQVwiLFxyXG4gICAgcHJldmVudEJsdXI6IHRydWUsXHJcbiAgICBpc1VubG9ja2VkOiAoKSA9PiBUaGVtZXMuYXZhaWxhYmxlKCkubWFwKHQgPT4gdC5uYW1lKS5pbmNsdWRlcyhcIlMxMVwiKSxcclxuICAgIGNhbkN1c3RvbWl6ZTogKCkgPT4gZmFsc2UsXHJcbiAgfSxcclxufTtcclxuIl0sIm5hbWVzIjpbImdseXBoVHlwZXMiLCJ0aW1lIiwiaWQiLCJzeW1ib2wiLCJHTFlQSF9TWU1CT0xTIiwiY29sb3IiLCJwcmltYXJ5RWZmZWN0IiwiYWxjaGVteVJlc291cmNlIiwiQUxDSEVNWV9SRVNPVVJDRSIsIlRJTUUiLCJoYXNSYXJpdHkiLCJkaWxhdGlvbiIsIkRJTEFUSU9OIiwicmVwbGljYXRpb24iLCJSRVBMSUNBVElPTiIsImluZmluaXR5IiwiSU5GSU5JVFkiLCJwb3dlciIsIlBPV0VSIiwiZWZmYXJpZyIsImlzVW5sb2NrZWQiLCJFZmZhcmlnVW5sb2NrIiwicmVhbGl0eSIsImNhbkN1c3RvbWl6ZSIsIkVGRkFSSUciLCJmaXhlZFN5bWJvbENvbG9yIiwicGxheWVyIiwiZ2x5cGhzIiwiY3JlYXRlZFJlYWxpdHlHbHlwaCIsIlJFQUxJVFkiLCJjdXJzZWQiLCJWIiwiaXNGbGlwcGVkIiwiY29tcGFuaW9uIiwiY29zbWV0aWNHbHlwaHMiLCJtdXNpYyIsIlRlcmVzYVVubG9ja3MiLCJzaG9wIiwiYmxvYiIsInByZXZlbnRCbHVyIiwiVGhlbWVzIiwiYXZhaWxhYmxlIiwibWFwIiwidCIsIm5hbWUiLCJpbmNsdWRlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/core/secret-formula/reality/glyph-types.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/reality/imaginary-upgrades.js": +/*!***************************************************************!*\ + !*** ./src/core/secret-formula/reality/imaginary-upgrades.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"imaginaryUpgrades\": () => (/* binding */ imaginaryUpgrades)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants */ \"./src/core/constants.js\");\n\n\nconst rebuyable = props => {\n props.cost = () => props.initialCost * Math.pow(props.costMult, player.reality.imaginaryRebuyables[props.id]);\n\n const {\n effect\n } = props;\n if (props.isDecimal) props.effect = () => Decimal.pow(effect, player.reality.imaginaryRebuyables[props.id]);else props.effect = () => effect * player.reality.imaginaryRebuyables[props.id];\n if (!props.formatEffect) props.formatEffect = value => `+${format(value, 2, 2)}`;\n\n props.formatCost = value => format(value, 2, 0);\n\n return props;\n};\n\nconst imaginaryUpgrades = [rebuyable({\n name: \"Temporal Intensifier\",\n id: 1,\n initialCost: 3,\n costMult: 60,\n description: () => `Increase Temporal Amplifier multiplier by +${format(0.15, 2, 2)}`,\n effect: 0.15\n}), rebuyable({\n name: \"Replicative Intensifier\",\n id: 2,\n initialCost: 4,\n costMult: 60,\n description: () => `Increase Replicative Amplifier multiplier by +${format(0.15, 2, 2)}`,\n effect: 0.15\n}), rebuyable({\n name: \"Eternal Intensifier\",\n id: 3,\n initialCost: 1,\n costMult: 40,\n description: () => `Increase Eternal Amplifier multiplier by +${format(0.4, 2, 2)}`,\n effect: 0.4\n}), rebuyable({\n name: \"Superluminal Intensifier\",\n id: 4,\n initialCost: 5,\n costMult: 80,\n description: () => `Increase Superluminal Amplifier multiplier by +${format(0.15, 2, 2)}`,\n effect: 0.15\n}), rebuyable({\n name: \"Boundless Intensifier\",\n id: 5,\n initialCost: 1,\n costMult: 30,\n description: () => `Increase Boundless Amplifier multiplier by +${format(0.6, 2, 2)}`,\n effect: 0.6\n}), rebuyable({\n name: \"Elliptic Materiality\",\n id: 6,\n initialCost: 1e4,\n costMult: 500,\n description: () => `Increase the Reality Machine cap by ${formatX(1e100)}`,\n effect: 1e100,\n formatEffect: value => `${formatX(value)}`,\n isDecimal: true\n}), rebuyable({\n name: \"Runic Assurance\",\n id: 7,\n initialCost: 2e5,\n costMult: 500,\n description: () => `Delay Glyph Instability starting level by ${formatInt(200)}`,\n effect: 200,\n formatEffect: value => `+${formatInt(value)} levels`\n}), rebuyable({\n name: \"Hyperbolic Apeirogon\",\n id: 8,\n initialCost: 1e7,\n costMult: 800,\n description: () => `Multiply Infinity Dimensions by ${format(\"1e100000\")}`,\n effect: _constants__WEBPACK_IMPORTED_MODULE_0__.DC.E100000,\n formatEffect: value => `${formatX(value)}`,\n isDecimal: true\n}), rebuyable({\n name: \"Cosmic Filament\",\n id: 9,\n initialCost: 1e9,\n costMult: 1000,\n description: () => `Increase Galaxy strength`,\n effect: 0.03,\n formatEffect: value => `+${formatPercents(value)}`\n}), rebuyable({\n name: \"Entropic Condensing\",\n id: 10,\n initialCost: 8e9,\n costMult: 2000,\n description: () => `Increase Singularity gain`,\n effect: 1,\n formatEffect: value => `${formatX(1 + value, 2)}`\n}), {\n name: \"Suspicion of Interference\",\n id: 11,\n cost: 5e7,\n requirement: () => `${format(1e90)} total Relic Shards\n (You have ${format(player.celestials.effarig.relicShards, 2)})`,\n hasFailed: () => false,\n checkRequirement: () => player.celestials.effarig.relicShards >= 1e90,\n checkEvent: GAME_EVENT.REALITY_RESET_AFTER,\n description: \"Time Dimension power based on total antimatter\",\n effect: () => 1 + Math.log10(player.records.totalAntimatter.log10()) / 100,\n formatEffect: value => `${formatPow(value, 0, 4)}`,\n isDisabledInDoomed: true\n}, {\n name: \"Consequences of Illusions\",\n id: 12,\n cost: 5e7,\n requirement: () => `Make a level ${formatInt(9000)} Glyph with a single Glyph level factor weight at\n ${formatInt(100)}`,\n hasFailed: () => false,\n checkRequirement: () => Object.values(player.celestials.effarig.glyphWeights).some(w => w === 100) && gainedGlyphLevel().actualLevel >= 9000,\n checkEvent: GAME_EVENT.REALITY_RESET_BEFORE,\n description: \"Gain free Dimboosts based on Imaginary rebuyable count\",\n effect: () => 2e4 * ImaginaryUpgrades.totalRebuyables,\n formatEffect: value => `${format(value, 1)}`,\n isDisabledInDoomed: true\n}, {\n name: \"Transience of Information\",\n id: 13,\n cost: 5e7,\n requirement: () => `Reach ${format(Number.MAX_VALUE, 2)} projected Reality Machines within\n The Nameless Ones' Reality`,\n hasFailed: () => !Enslaved.isRunning,\n // This is for consistency with the UI, which displays an amplified \"projected RM\" value on the reality button\n checkRequirement: () => Enslaved.isRunning && MachineHandler.uncappedRM.times(simulatedRealityCount(false) + 1).gte(Number.MAX_VALUE),\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: \"Increase Imaginary Machine Cap based on Imaginary Upgrades purchased\",\n effect: () => 1 + ImaginaryUpgrades.totalRebuyables / 20 + ImaginaryUpgrades.totalSinglePurchase / 2,\n formatEffect: value => `${formatX(value, 2, 1)}`,\n isDisabledInDoomed: true\n}, {\n name: \"Recollection of Intrusion\",\n id: 14,\n cost: 3.5e8,\n formatCost: x => format(x, 1),\n requirement: () => `Reach a tickspeed of ${format(\"1e75000000000\")} / sec within Eternity Challenge 5`,\n hasFailed: () => false,\n checkRequirement: () => EternityChallenge(5).isRunning && Tickspeed.perSecond.exponent >= 7.5e10,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: () => `Raise all Dimension per-purchase multipliers to ${formatPow(1.5, 0, 1)}`,\n effect: 1.5,\n isDisabledInDoomed: true\n}, {\n name: \"Fabrication of Ideals\",\n id: 15,\n cost: 1e9,\n requirement: () => `Reach ${format(\"1e1500000000000\")} antimatter without\n ever having any 1st Infinity Dimensions`,\n hasFailed: () => player.requirementChecks.reality.maxID1.gt(0),\n checkRequirement: () => player.requirementChecks.reality.maxID1.eq(0) && player.antimatter.exponent >= 1.5e12,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n canLock: true,\n // This upgrade lock acts in multiple different conditions, but isn't 100% foolproof and also blocks a few edge\n // cases which technically should be allowed but would be hard to communicate in-game. Forbidden actions are:\n // - Purchasing any ID (edge case: this is acceptable for ID2-8 inside EC2 or EC10)\n // - Purchasing any TD with any amount of EC7 completions (edge case: acceptable within EC1 or EC10)\n // - Entering EC7 with any amount of purchased TD\n description: () => `${Pelle.isDoomed ? \"Unlock\" : \"Convert Antimatter Dimensions to Continuum and unlock\"} Lai'tela, Celestial of Dimensions`\n}, {\n name: \"Massless Momentum\",\n id: 16,\n cost: 3.5e9,\n formatCost: x => format(x, 1),\n requirement: () => `Destabilize Lai'tela's Reality in under ${formatInt(30)} seconds twice`,\n hasFailed: () => false,\n checkRequirement: () => Laitela.maxAllowedDimension <= 6,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: \"Unlock the 2nd Dark Matter Dimension\"\n}, {\n name: \"Chiral Oscillation\",\n id: 17,\n cost: 6e9,\n requirement: () => `Automatically condense at least ${formatInt(20)} Singularities at once`,\n hasFailed: () => false,\n checkRequirement: () => Singularity.singularitiesGained >= 20 && Currency.darkEnergy.gte(Singularity.cap * SingularityMilestone.autoCondense.effectOrDefault(Infinity)),\n checkEvent: GAME_EVENT.SINGULARITY_RESET_BEFORE,\n description: \"Unlock the 3rd Dark Matter Dimension\"\n}, {\n name: \"Dimensional Symmetry\",\n id: 18,\n cost: 1.5e10,\n formatCost: x => format(x, 1),\n requirement: () => `Have ${formatInt(80000)} total Galaxies`,\n hasFailed: () => false,\n checkRequirement: () => Replicanti.galaxies.total + player.galaxies + player.dilation.totalTachyonGalaxies >= 80000,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: \"Unlock the 4th Dark Matter Dimension\"\n}, {\n name: \"Deterministic Radiation\",\n id: 19,\n cost: 2.8e10,\n formatCost: x => format(x, 1),\n requirement: () => `Reach ${formatInt(3.85e6)} Tickspeed Continuum without ever having more than\n ${formatInt(8)} Time Studies in this Reality`,\n hasFailed: () => player.requirementChecks.reality.maxStudies > 8,\n checkRequirement: () => player.requirementChecks.reality.maxStudies <= 8 && Tickspeed.continuumValue >= 3.85e6,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n canLock: true,\n lockEvent: () => `purchase more than ${formatInt(8)} Time Studies`,\n description: \"Unlock Dark Matter Annihilation\"\n}, {\n name: \"Vacuum Acceleration\",\n id: 20,\n cost: 3e12,\n requirement: () => `Have a Continuum increase of at least ${formatPercents(1)}`,\n hasFailed: () => false,\n checkRequirement: () => Laitela.matterExtraPurchaseFactor >= 2,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: () => `Unlock Autobuyers for repeatable Imaginary Upgrades and generate Imaginary Machines\n ${formatInt(10)} times faster`,\n effect: 10,\n isDisabledInDoomed: true\n}, {\n name: \"Existential Elimination\",\n id: 21,\n cost: 1e13,\n requirement: () => `Reach ${format(\"1e7400000000000\")} antimatter with Continuum disabled for the entire Reality`,\n hasFailed: () => !player.requirementChecks.reality.noContinuum,\n checkRequirement: () => player.requirementChecks.reality.noContinuum && Currency.antimatter.value.log10() >= 7.4e12,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n canLock: true,\n lockEvent: \"enable Continuum\",\n description: \"Annihilation multiplier gain is improved based on Imaginary Machines\",\n effect: () => Math.clampMin(Math.pow(Math.log10(Currency.imaginaryMachines.value) - 10, 3), 1),\n formatEffect: value => `${formatX(value, 2, 1)}`,\n isDisabledInDoomed: true\n}, {\n name: \"Total Termination\",\n id: 22,\n cost: 1.5e14,\n formatCost: x => format(x, 1),\n requirement: () => `Reach ${format(\"1e150000000000\")} antimatter in Effarig's Reality with\n at least ${formatInt(4)} Cursed Glyphs equipped`,\n // Note: 4 cursed glyphs is -12 glyph count, but equipping a positive glyph in the last slot is allowed\n hasFailed: () => !Effarig.isRunning || player.requirementChecks.reality.maxGlyphs > -10,\n checkRequirement: () => Effarig.isRunning && player.requirementChecks.reality.maxGlyphs < -10 && Currency.antimatter.value.exponent >= 1.5e11,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: () => `All Glyph Sacrifice totals are increased to ${format(1e100)}`,\n effect: 1e100,\n isDisabledInDoomed: true\n}, {\n name: \"Planar Purification\",\n id: 23,\n cost: 6e14,\n requirement: () => `Reach Glyph level ${formatInt(20000)} in Ra's Reality with\n at most ${formatInt(0)} Glyphs equipped`,\n hasFailed: () => !Ra.isRunning || player.requirementChecks.reality.maxGlyphs > 0,\n checkRequirement: () => Ra.isRunning && player.requirementChecks.reality.maxGlyphs <= 0 && gainedGlyphLevel().actualLevel >= 20000,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: \"Increase free Dimboost count based on Tesseract count\",\n effect: () => Math.floor(0.25 * Math.pow(Tesseracts.effectiveCount, 2)),\n formatEffect: value => `${formatX(value)}`,\n isDisabledInDoomed: true\n}, {\n name: \"Absolute Annulment\",\n id: 24,\n cost: 6e14,\n // We unfortunately don't have the UI space to be more descriptive on this button without causing text overflow,\n // so hopefully the additional modals (from the upgrade lock) will mostly communicate the idea that this is under\n // the same conditions as hard V's Post-destination\n requirement: () => `Have ${formatInt(13000)} Antimatter Galaxies in Ra's Reality\n with a fully inverted Black Hole`,\n hasFailed: () => !Ra.isRunning || player.requirementChecks.reality.slowestBH > 1e-300,\n checkRequirement: () => Ra.isRunning && player.requirementChecks.reality.slowestBH <= 1e-300 && player.galaxies >= 13000,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n canLock: true,\n // Three locking events: uninvert, discharge, and entering (but not auto-completing) EC12\n description: \"Increase free Dimboost strength based on Singularity count\",\n effect: () => Decimal.pow(player.celestials.laitela.singularities, 300),\n formatEffect: value => `${formatX(value, 2, 1)}`,\n isDisabledInDoomed: true\n}, {\n name: \"Omnipresent Obliteration\",\n id: 25,\n cost: 1.6e15,\n formatCost: x => format(x, 1),\n requirement: () => `Reach Reality in Lai'tela's Reality with all Dimensions disabled and\n at least ${formatInt(4)} empty Glyph slots`,\n hasFailed: () => !Laitela.isRunning || Laitela.maxAllowedDimension !== 0 || Glyphs.activeWithoutCompanion.length > 1,\n checkRequirement: () => Laitela.isRunning && Laitela.maxAllowedDimension === 0 && Glyphs.activeWithoutCompanion.length <= 1 && TimeStudy.reality.isBought,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n canLock: true,\n lockEvent: \"equip another non-Companion Glyph\",\n description: \"Unlock Pelle, Celestial of Antimatter\"\n}];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L2ltYWdpbmFyeS11cGdyYWRlcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBOztBQUVBLE1BQU1DLFNBQVMsR0FBR0MsS0FBSyxJQUFJO0FBQ3pCQSxFQUFBQSxLQUFLLENBQUNDLElBQU4sR0FBYSxNQUFNRCxLQUFLLENBQUNFLFdBQU4sR0FBb0JDLElBQUksQ0FBQ0MsR0FBTCxDQUFTSixLQUFLLENBQUNLLFFBQWYsRUFBeUJDLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlQyxtQkFBZixDQUFtQ1IsS0FBSyxDQUFDUyxFQUF6QyxDQUF6QixDQUF2Qzs7QUFDQSxRQUFNO0FBQUVDLElBQUFBO0FBQUYsTUFBYVYsS0FBbkI7QUFDQSxNQUFJQSxLQUFLLENBQUNXLFNBQVYsRUFBcUJYLEtBQUssQ0FBQ1UsTUFBTixHQUFlLE1BQU1FLE9BQU8sQ0FBQ1IsR0FBUixDQUFZTSxNQUFaLEVBQW9CSixNQUFNLENBQUNDLE9BQVAsQ0FBZUMsbUJBQWYsQ0FBbUNSLEtBQUssQ0FBQ1MsRUFBekMsQ0FBcEIsQ0FBckIsQ0FBckIsS0FDS1QsS0FBSyxDQUFDVSxNQUFOLEdBQWUsTUFBTUEsTUFBTSxHQUFHSixNQUFNLENBQUNDLE9BQVAsQ0FBZUMsbUJBQWYsQ0FBbUNSLEtBQUssQ0FBQ1MsRUFBekMsQ0FBOUI7QUFDTCxNQUFJLENBQUNULEtBQUssQ0FBQ2EsWUFBWCxFQUF5QmIsS0FBSyxDQUFDYSxZQUFOLEdBQXFCQyxLQUFLLElBQUssSUFBR0MsTUFBTSxDQUFDRCxLQUFELEVBQVEsQ0FBUixFQUFXLENBQVgsQ0FBYyxFQUF0RDs7QUFDekJkLEVBQUFBLEtBQUssQ0FBQ2dCLFVBQU4sR0FBbUJGLEtBQUssSUFBSUMsTUFBTSxDQUFDRCxLQUFELEVBQVEsQ0FBUixFQUFXLENBQVgsQ0FBbEM7O0FBQ0EsU0FBT2QsS0FBUDtBQUNELENBUkQ7O0FBVU8sTUFBTWlCLGlCQUFpQixHQUFHLENBQy9CbEIsU0FBUyxDQUFD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MkMsT0FBTyxDQUFDckIsU0FBUixJQUFxQnFCLE9BQU8sQ0FBQ0MsbUJBQVIsS0FBZ0MsQ0FBckQsSUFDdEJnQyxNQUFNLENBQUNDLHNCQUFQLENBQThCQyxNQUE5QixJQUF3QyxDQURsQixJQUN1QkMsU0FBUyxDQUFDckcsT0FBVixDQUFrQnNHLFFBVm5FO0FBV0UvRSxFQUFBQSxVQUFVLEVBQUVDLFVBQVUsQ0FBQzBCLGVBWHpCO0FBWUVZLEVBQUFBLE9BQU8sRUFBRSxJQVpYO0FBYUVzQixFQUFBQSxTQUFTLEVBQUUsbUNBYmI7QUFjRXhFLEVBQUFBLFdBQVcsRUFBRTtBQWRmLENBdFMrQixDQUExQiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jb3JlL3NlY3JldC1mb3JtdWxhL3JlYWxpdHkvaW1hZ2luYXJ5LXVwZ3JhZGVzLmpzPzQxZjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREMgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XHJcblxyXG5jb25zdCByZWJ1eWFibGUgPSBwcm9wcyA9PiB7XHJcbiAgcHJvcHMuY29zdCA9ICgpID0+IHByb3BzLmluaXRpYWxDb3N0ICogTWF0aC5wb3cocHJvcHMuY29zdE11bHQsIHBsYXllci5yZWFsaXR5LmltYWdpbmFyeVJlYnV5YWJsZXNbcHJvcHMuaWRdKTtcclxuICBjb25zdCB7IGVmZmVjdCB9ID0gcHJvcHM7XHJcbiAgaWYgKHByb3BzLmlzRGVjaW1hbCkgcHJvcHMuZWZmZWN0ID0gKCkgPT4gRGVjaW1hbC5wb3coZWZmZWN0LCBwbGF5ZXIucmVhbGl0eS5pbWFnaW5hcnlSZWJ1eWFibGVzW3Byb3BzLmlkXSk7XHJcbiAgZWxzZSBwcm9wcy5lZmZlY3QgPSAoKSA9PiBlZmZlY3QgKiBwbGF5ZXIucmVhbGl0eS5pbWFnaW5hcnlSZWJ1eWFibGVzW3Byb3BzLmlkXTtcclxuICBpZiAoIXByb3BzLmZvcm1hdEVmZmVjdCkgcHJvcHMuZm9ybWF0RWZmZWN0ID0gdmFsdWUgPT4gYCske2Zvcm1hdCh2YWx1ZSwgMiwgMil9YDtcclxuICBwcm9wcy5mb3JtYXRDb3N0ID0gdmFsdWUgPT4gZm9ybWF0KHZhbHVlLCAyLCAwKTtcclxuICByZXR1cm4gcHJvcHM7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgaW1hZ2luYXJ5VXBncmFkZXMgPSBbXHJcbiAgcmVidXlhYmxlKHtcclxuICAgIG5hbWU6IFwiVGVtcG9yYWwgSW50ZW5zaWZpZXJcIixcclxuICAgIGlkOiAxLFxyXG4gICAgaW5pdGlhbENvc3Q6IDMsXHJcbiAgICBjb3N0TXVsdDogNjAsXHJcbiAgICBkZXNjcmlwdGlvbjogKCkgPT4gYEluY3JlYXNlIFRlbXBvcmFsIEFtcGxpZmllciBtdWx0aXBsaWVyIGJ5ICske2Zvcm1hdCgwLjE1LCAyLCAyKX1gLFxyXG4gICAgZWZmZWN0OiAwLjE1XHJcbiAgfSksXHJcbiAgcmVidXlhYmxlKHtcclxuICAgIG5hbWU6IFwiUmVwbGljYXRpdmUgSW50ZW5zaWZpZXJcIixcclxuICAgIGlkOiAyLFxyXG4gICAgaW5pdGlhbENvc3Q6IDQsXHJcbiAgICBjb3N0TXVsdDogNjAsXHJcbiAgICBkZXNjcmlwdGlvbjogKCkgPT4gYEluY3JlYXNlIFJlcGxpY2F0aXZlIEFtcGxpZmllciBtdWx0aXBsaWVyIGJ5ICske2Zvcm1hdCgwLjE1LCAyLCAyKX1gLFxyXG4gICAgZWZmZWN0OiAwLjE1XHJcbiAgfSksXHJcbiAgcmVidXlhYmxlKHtcclxuICAgIG5hbWU6IFwiRXRlcm5hbCBJbnRlbnNpZmllclwiLFxyXG4gICAgaWQ6IDMsXHJcbiAgICBpbml0aWFsQ29zdDogMSxcclxuICAgIGNvc3RNdWx0OiA0MCxcclxuICAgIGRlc2NyaXB0aW9uOiAoKSA9PiBgSW5jcmVhc2UgRXRlcm5hbCBBbXBsaWZpZXIgbXVsdGlwbGllciBieSArJHtmb3JtYXQoMC40LCAyLCAyKX1gLFxyXG4gICAgZWZmZWN0OiAwLjRcclxuICB9KSxcclxuICByZWJ1eWFibGUoe1xyXG4gICAgbmFtZTogXCJTdXBlcmx1bWluYWwgSW50ZW5zaWZpZXJcIixcclxuICAgIGlkOiA0LFxyXG4gICAgaW5pdGlhbENvc3Q6IDUsXHJcbiAgICBjb3N0TXVsdDogODAsXHJcbiAgICBkZXNjcmlwdGlvbjogKCkgPT4gYEluY3JlYXNlIFN1cGVybHVtaW5hbCBBbXBsaWZpZXIgbXVsdGlwbGllciBieSArJHtmb3JtYXQoMC4xNSwgMiwgMil9YCxcclxuICAgIGVmZmVjdDogMC4xNVxyXG4gIH0pLFxyXG4gIHJlYnV5YWJsZSh7XHJcbiAgICBuYW1lOiBcIkJvdW5kbGVzcyBJbnRlbnNpZmllclwiLFxyXG4gICAgaWQ6IDUsXHJcbiAgICBpbml0aWFsQ29zdDogMSxcclxuICAgIGNvc3RNdWx0OiAzMCxcclxuICAgIGRlc2NyaXB0aW9uOiAoKSA9PiBgSW5jcmVhc2UgQm91bmRsZXNzIEFtcGxpZmllciBtdWx0aXBsaWVyIGJ5ICske2Zvcm1hdCgwLjYsIDIsIDIpfWAsXHJcbiAgICBlZmZlY3Q6IDAuNlxyXG4gIH0pLFxyXG4gIHJlYnV5YWJsZSh7XHJcbiAgICBuYW1lOiBcIkVsbGlwdGljIE1hdGVyaWFsaXR5XCIsXHJcbiAgICBpZDogNixcclxuICAgIGluaXRpYWxDb3N0OiAxZTQsXHJcbiAgICBjb3N0TXVsdDogNTAwLFxyXG4gICAgZGVzY3JpcHRpb246ICgpID0+IGBJbmNyZWFzZSB0aGUgUmVhbGl0eSBNYWNoaW5lIGNhcCBieSAke2Zvcm1hdFgoMWUxMDApfWAsXHJcbiAgICBlZmZlY3Q6IDFlMTAwLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB2YWx1ZSA9PiBgJHtmb3JtYXRYKHZhbHVlKX1gLFxyXG4gICAgaXNEZWNpbWFsOiB0cnVlXHJcbiAgfSksXHJcbiAgcmVidXlhYmxlKHtcclxuICAgIG5hbWU6IFwiUnVuaWMgQXNzdXJhbmNlXCIsXHJcbiAgICBpZDogNyxcclxuICAgIGluaXRpYWxDb3N0OiAyZTUsXHJcbiAgICBjb3N0TXVsdDogNTAwLFxyXG4gICAgZGVzY3JpcHRpb246ICgpID0+IGBEZWxheSBHbHlwaCBJbnN0YWJpbGl0eSBzdGFydGluZyBsZXZlbCBieSAke2Zvcm1hdEludCgyMDApfWAsXHJcbiAgICBlZmZlY3Q6IDIwMCxcclxuICAgIGZvcm1hdEVmZmVjdDogdmFsdWUgPT4gYCske2Zvcm1hdEludCh2YWx1ZSl9IGxldmVsc2BcclxuICB9KSxcclxuICByZWJ1eWFibGUoe1xyXG4gICAgbmFtZTogXCJIeXBlcmJvbGljIEFwZWlyb2dvblwiLFxyXG4gICAgaWQ6IDgsXHJcbiAgICBpbml0aWFsQ29zdDogMWU3LFxyXG4gICAgY29zdE11bHQ6IDgwMCxcclxuICAgIGRlc2NyaXB0aW9uOiAoKSA9PiBgTXVsdGlwbHkgSW5maW5pdHkgRGltZW5zaW9ucyBieSAke2Zvcm1hdChcIjFlMTAwMDAwXCIpfWAsXHJcbiAgICBlZmZlY3Q6IERDLkUxMDAwMDAsXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHZhbHVlID0+IGAke2Zvcm1hdFgodmFsdWUpfWAsXHJcbiAgICBpc0RlY2ltYWw6IHRydWVcclxuICB9KSxcclxuICByZWJ1eWFibGUoe1xyXG4gICAgbmFtZTogXCJDb3NtaWMgRmlsYW1lbnRcIixcclxuICAgIGlkOiA5LFxyXG4gICAgaW5pdGlhbENvc3Q6IDFlOSxcclxuICAgIGNvc3RNdWx0OiAxMDAwLFxyXG4gICAgZGVzY3JpcHRpb246ICgpID0+IGBJbmNyZWFzZSBHYWxheHkgc3RyZW5ndGhgLFxyXG4gICAgZWZmZWN0OiAwLjAzLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB2YWx1ZSA9PiBgKyR7Zm9ybWF0UGVyY2VudHModmFsdWUpfWAsXHJcbiAgfSksXHJcbiAgcmVidXlhYmxlKHtcclxuICAgIG5hbWU6IFwiRW50cm9waWMgQ29uZGVuc2luZ1wiLFxyXG4gICAgaWQ6IDEwLFxyXG4gICAgaW5pdGlhbENvc3Q6IDhlOSxcclxuICAgIGNvc3RNdWx0OiAyMDAwLFxyXG4gICAgZGVzY3JpcHRpb246ICgpID0+IGBJbmNyZWFzZSBTaW5ndWxhcml0eSBnYWluYCxcclxuICAgIGVmZmVjdDogMSxcclxuICAgIGZvcm1hdEVmZmVjdDogdmFsdWUgPT4gYCR7Zm9ybWF0WCgxICsgdmFsdWUsIDIpfWBcclxuICB9KSxcclxuICB7XHJcbiAgICBuYW1lOiBcIlN1c3BpY2lvbiBvZiBJbnRlcmZlcmVuY2VcIixcclxuICAgIGlkOiAxMSxcclxuICAgIGNvc3Q6IDVlNyxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgJHtmb3JtYXQoMWU5MCl9IHRvdGFsIFJlbGljIFNoYXJkc1xyXG4gICAgICAoWW91IGhhdmUgJHtmb3JtYXQocGxheWVyLmNlbGVzdGlhbHMuZWZmYXJpZy5yZWxpY1NoYXJkcywgMil9KWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gcGxheWVyLmNlbGVzdGlhbHMuZWZmYXJpZy5yZWxpY1NoYXJkcyA+PSAxZTkwLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5SRUFMSVRZX1JFU0VUX0FGVEVSLFxyXG4gICAgZGVzY3JpcHRpb246IFwiVGltZSBEaW1lbnNpb24gcG93ZXIgYmFzZWQgb24gdG90YWwgYW50aW1hdHRlclwiLFxyXG4gICAgZWZmZWN0OiAoKSA9PiAxICsgTWF0aC5sb2cxMChwbGF5ZXIucmVjb3Jkcy50b3RhbEFudGltYXR0ZXIubG9nMTAoKSkgLyAxMDAsXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHZhbHVlID0+IGAke2Zvcm1hdFBvdyh2YWx1ZSwgMCwgNCl9YCxcclxuICAgIGlzRGlzYWJsZWRJbkRvb21lZDogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJDb25zZXF1ZW5jZXMgb2YgSWxsdXNpb25zXCIsXHJcbiAgICBpZDogMTIsXHJcbiAgICBjb3N0OiA1ZTcsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYE1ha2UgYSBsZXZlbCAke2Zvcm1hdEludCg5MDAwKX0gR2x5cGggd2l0aCBhIHNpbmdsZSBHbHlwaCBsZXZlbCBmYWN0b3Igd2VpZ2h0IGF0XHJcbiAgICAke2Zvcm1hdEludCgxMDApfWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gT2JqZWN0LnZhbHVlcyhwbGF5ZXIuY2VsZXN0aWFscy5lZmZhcmlnLmdseXBoV2VpZ2h0cykuc29tZSh3ID0+IHcgPT09IDEwMCkgJiZcclxuICAgICAgZ2FpbmVkR2x5cGhMZXZlbCgpLmFjdHVhbExldmVsID49IDkwMDAsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULlJFQUxJVFlfUkVTRVRfQkVGT1JFLFxyXG4gICAgZGVzY3JpcHRpb246IFwiR2FpbiBmcmVlIERpbWJvb3N0cyBiYXNlZCBvbiBJbWFnaW5hcnkgcmVidXlhYmxlIGNvdW50XCIsXHJcbiAgICBlZmZlY3Q6ICgpID0+IDJlNCAqIEltYWdpbmFyeVVwZ3JhZGVzLnRvdGFsUmVidXlhYmxlcyxcclxuICAgIGZvcm1hdEVmZmVjdDogdmFsdWUgPT4gYCR7Zm9ybWF0KHZhbHVlLCAxKX1gLFxyXG4gICAgaXNEaXNhYmxlZEluRG9vbWVkOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIlRyYW5zaWVuY2Ugb2YgSW5mb3JtYXRpb25cIixcclxuICAgIGlkOiAxMyxcclxuICAgIGNvc3Q6IDVlNyxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgUmVhY2ggJHtmb3JtYXQoTnVtYmVyLk1BWF9WQUxVRSwgMil9IHByb2plY3RlZCBSZWFsaXR5IE1hY2hpbmVzIHdpdGhpblxyXG4gICAgICBUaGUgTmFtZWxlc3MgT25lcycgUmVhbGl0eWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+ICFFbnNsYXZlZC5pc1J1bm5pbmcsXHJcbiAgICAvLyBUaGlzIGlzIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSSwgd2hpY2ggZGlzcGxheXMgYW4gYW1wbGlmaWVkIFwicHJvamVjdGVkIFJNXCIgdmFsdWUgb24gdGhlIHJlYWxpdHkgYnV0dG9uXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBFbnNsYXZlZC5pc1J1bm5pbmcgJiZcclxuICAgICAgTWFjaGluZUhhbmRsZXIudW5jYXBwZWRSTS50aW1lcyhzaW11bGF0ZWRSZWFsaXR5Q291bnQoZmFsc2UpICsgMSkuZ3RlKE51bWJlci5NQVhfVkFMVUUpLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5HQU1FX1RJQ0tfQUZURVIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJJbmNyZWFzZSBJbWFnaW5hcnkgTWFjaGluZSBDYXAgYmFzZWQgb24gSW1hZ2luYXJ5IFVwZ3JhZGVzIHB1cmNoYXNlZFwiLFxyXG4gICAgZWZmZWN0OiAoKSA9PiAxICsgSW1hZ2luYXJ5VXBncmFkZXMudG90YWxSZWJ1eWFibGVzIC8gMjAgKyBJbWFnaW5hcnlVcGdyYWRlcy50b3RhbFNpbmdsZVB1cmNoYXNlIC8gMixcclxuICAgIGZvcm1hdEVmZmVjdDogdmFsdWUgPT4gYCR7Zm9ybWF0WCh2YWx1ZSwgMiwgMSl9YCxcclxuICAgIGlzRGlzYWJsZWRJbkRvb21lZDogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJSZWNvbGxlY3Rpb24gb2YgSW50cnVzaW9uXCIsXHJcbiAgICBpZDogMTQsXHJcbiAgICBjb3N0OiAzLjVlOCxcclxuICAgIGZvcm1hdENvc3Q6IHggPT4gZm9ybWF0KHgsIDEpLFxyXG4gICAgcmVxdWlyZW1lbnQ6ICgpID0+IGBSZWFjaCBhIHRpY2tzcGVlZCBvZiAke2Zvcm1hdChcIjFlNzUwMDAwMDAwMDBcIil9IC8gc2VjIHdpdGhpbiBFdGVybml0eSBDaGFsbGVuZ2UgNWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gRXRlcm5pdHlDaGFsbGVuZ2UoNSkuaXNSdW5uaW5nICYmIFRpY2tzcGVlZC5wZXJTZWNvbmQuZXhwb25lbnQgPj0gNy41ZTEwLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5HQU1FX1RJQ0tfQUZURVIsXHJcbiAgICBkZXNjcmlwdGlvbjogKCkgPT4gYFJhaXNlIGFsbCBEaW1lbnNpb24gcGVyLXB1cmNoYXNlIG11bHRpcGxpZXJzIHRvICR7Zm9ybWF0UG93KDEuNSwgMCwgMSl9YCxcclxuICAgIGVmZmVjdDogMS41LFxyXG4gICAgaXNEaXNhYmxlZEluRG9vbWVkOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIkZhYnJpY2F0aW9uIG9mIElkZWFsc1wiLFxyXG4gICAgaWQ6IDE1LFxyXG4gICAgY29zdDogMWU5LFxyXG4gICAgcmVxdWlyZW1lbnQ6ICgpID0+IGBSZWFjaCAke2Zvcm1hdChcIjFlMTUwMDAwMDAwMDAwMFwiKX0gYW50aW1hdHRlciB3aXRob3V0XHJcbiAgICAgIGV2ZXIgaGF2aW5nIGFueSAxc3QgSW5maW5pdHkgRGltZW5zaW9uc2AsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IHBsYXllci5yZXF1aXJlbWVudENoZWNrcy5yZWFsaXR5Lm1heElEMS5ndCgwKSxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IHBsYXllci5yZXF1aXJlbWVudENoZWNrcy5yZWFsaXR5Lm1heElEMS5lcSgwKSAmJiBwbGF5ZXIuYW50aW1hdHRlci5leHBvbmVudCA+PSAxLjVlMTIsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkdBTUVfVElDS19BRlRFUixcclxuICAgIGNhbkxvY2s6IHRydWUsXHJcbiAgICAvLyBUaGlzIHVwZ3JhZGUgbG9jayBhY3RzIGluIG11bHRpcGxlIGRpZmZlcmVudCBjb25kaXRpb25zLCBidXQgaXNuJ3QgMTAwJSBmb29scHJvb2YgYW5kIGFsc28gYmxvY2tzIGEgZmV3IGVkZ2VcclxuICAgIC8vIGNhc2VzIHdoaWNoIHRlY2huaWNhbGx5IHNob3VsZCBiZSBhbGxvd2VkIGJ1dCB3b3VsZCBiZSBoYXJkIHRvIGNvbW11bmljYXRlIGluLWdhbWUuIEZvcmJpZGRlbiBhY3Rpb25zIGFyZTpcclxuICAgIC8vIC0gUHVyY2hhc2luZyBhbnkgSUQgKGVkZ2UgY2FzZTogdGhpcyBpcyBhY2NlcHRhYmxlIGZvciBJRDItOCBpbnNpZGUgRUMyIG9yIEVDMTApXHJcbiAgICAvLyAtIFB1cmNoYXNpbmcgYW55IFREIHdpdGggYW55IGFtb3VudCBvZiBFQzcgY29tcGxldGlvbnMgKGVkZ2UgY2FzZTogYWNjZXB0YWJsZSB3aXRoaW4gRUMxIG9yIEVDMTApXHJcbiAgICAvLyAtIEVudGVyaW5nIEVDNyB3aXRoIGFueSBhbW91bnQgb2YgcHVyY2hhc2VkIFREXHJcbiAgICBkZXNjcmlwdGlvbjogKCkgPT4gYCR7XHJcbiAgICAgIFBlbGxlLmlzRG9vbWVkID8gXCJVbmxvY2tcIiA6IFwiQ29udmVydCBBbnRpbWF0dGVyIERpbWVuc2lvbnMgdG8gQ29udGludXVtIGFuZCB1bmxvY2tcIlxyXG4gICAgfSBMYWkndGVsYSwgQ2VsZXN0aWFsIG9mIERpbWVuc2lvbnNgLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJNYXNzbGVzcyBNb21lbnR1bVwiLFxyXG4gICAgaWQ6IDE2LFxyXG4gICAgY29zdDogMy41ZTksXHJcbiAgICBmb3JtYXRDb3N0OiB4ID0+IGZvcm1hdCh4LCAxKSxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgRGVzdGFiaWxpemUgTGFpJ3RlbGEncyBSZWFsaXR5IGluIHVuZGVyICR7Zm9ybWF0SW50KDMwKX0gc2Vjb25kcyB0d2ljZWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gTGFpdGVsYS5tYXhBbGxvd2VkRGltZW5zaW9uIDw9IDYsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkdBTUVfVElDS19BRlRFUixcclxuICAgIGRlc2NyaXB0aW9uOiBcIlVubG9jayB0aGUgMm5kIERhcmsgTWF0dGVyIERpbWVuc2lvblwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJDaGlyYWwgT3NjaWxsYXRpb25cIixcclxuICAgIGlkOiAxNyxcclxuICAgIGNvc3Q6IDZlOSxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgQXV0b21hdGljYWxseSBjb25kZW5zZSBhdCBsZWFzdCAke2Zvcm1hdEludCgyMCl9IFNpbmd1bGFyaXRpZXMgYXQgb25jZWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gU2luZ3VsYXJpdHkuc2luZ3VsYXJpdGllc0dhaW5lZCA+PSAyMCAmJlxyXG4gICAgICBDdXJyZW5jeS5kYXJrRW5lcmd5Lmd0ZShTaW5ndWxhcml0eS5jYXAgKiBTaW5ndWxhcml0eU1pbGVzdG9uZS5hdXRvQ29uZGVuc2UuZWZmZWN0T3JEZWZhdWx0KEluZmluaXR5KSksXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULlNJTkdVTEFSSVRZX1JFU0VUX0JFRk9SRSxcclxuICAgIGRlc2NyaXB0aW9uOiBcIlVubG9jayB0aGUgM3JkIERhcmsgTWF0dGVyIERpbWVuc2lvblwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJEaW1lbnNpb25hbCBTeW1tZXRyeVwiLFxyXG4gICAgaWQ6IDE4LFxyXG4gICAgY29zdDogMS41ZTEwLFxyXG4gICAgZm9ybWF0Q29zdDogeCA9PiBmb3JtYXQoeCwgMSksXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYEhhdmUgJHtmb3JtYXRJbnQoODAwMDApfSB0b3RhbCBHYWxheGllc2AsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gUmVwbGljYW50aS5nYWxheGllcy50b3RhbCArIHBsYXllci5nYWxheGllcyArXHJcbiAgICAgIHBsYXllci5kaWxhdGlvbi50b3RhbFRhY2h5b25HYWxheGllcyA+PSA4MDAwMCxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuR0FNRV9USUNLX0FGVEVSLFxyXG4gICAgZGVzY3JpcHRpb246IFwiVW5sb2NrIHRoZSA0dGggRGFyayBNYXR0ZXIgRGltZW5zaW9uXCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIkRldGVybWluaXN0aWMgUmFkaWF0aW9uXCIsXHJcbiAgICBpZDogMTksXHJcbiAgICBjb3N0OiAyLjhlMTAsXHJcbiAgICBmb3JtYXRDb3N0OiB4ID0+IGZvcm1hdCh4LCAxKSxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgUmVhY2ggJHtmb3JtYXRJbnQoMy44NWU2KX0gVGlja3NwZWVkIENvbnRpbnV1bSB3aXRob3V0IGV2ZXIgaGF2aW5nIG1vcmUgdGhhblxyXG4gICAgICAke2Zvcm1hdEludCg4KX0gVGltZSBTdHVkaWVzIGluIHRoaXMgUmVhbGl0eWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IHBsYXllci5yZXF1aXJlbWVudENoZWNrcy5yZWFsaXR5Lm1heFN0dWRpZXMgPiA4LFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gcGxheWVyLnJlcXVpcmVtZW50Q2hlY2tzLnJlYWxpdHkubWF4U3R1ZGllcyA8PSA4ICYmXHJcbiAgICAgIFRpY2tzcGVlZC5jb250aW51dW1WYWx1ZSA+PSAzLjg1ZTYsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkdBTUVfVElDS19BRlRFUixcclxuICAgIGNhbkxvY2s6IHRydWUsXHJcbiAgICBsb2NrRXZlbnQ6ICgpID0+IGBwdXJjaGFzZSBtb3JlIHRoYW4gJHtmb3JtYXRJbnQoOCl9IFRpbWUgU3R1ZGllc2AsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJVbmxvY2sgRGFyayBNYXR0ZXIgQW5uaWhpbGF0aW9uXCJcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6IFwiVmFjdXVtIEFjY2VsZXJhdGlvblwiLFxyXG4gICAgaWQ6IDIwLFxyXG4gICAgY29zdDogM2UxMixcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgSGF2ZSBhIENvbnRpbnV1bSBpbmNyZWFzZSBvZiBhdCBsZWFzdCAke2Zvcm1hdFBlcmNlbnRzKDEpfWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IGZhbHNlLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gTGFpdGVsYS5tYXR0ZXJFeHRyYVB1cmNoYXNlRmFjdG9yID49IDIsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkdBTUVfVElDS19BRlRFUixcclxuICAgIGRlc2NyaXB0aW9uOiAoKSA9PiBgVW5sb2NrIEF1dG9idXllcnMgZm9yIHJlcGVhdGFibGUgSW1hZ2luYXJ5IFVwZ3JhZGVzIGFuZCBnZW5lcmF0ZSBJbWFnaW5hcnkgTWFjaGluZXNcclxuICAgICAgJHtmb3JtYXRJbnQoMTApfSB0aW1lcyBmYXN0ZXJgLFxyXG4gICAgZWZmZWN0OiAxMCxcclxuICAgIGlzRGlzYWJsZWRJbkRvb21lZDogdHJ1ZVxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJFeGlzdGVudGlhbCBFbGltaW5hdGlvblwiLFxyXG4gICAgaWQ6IDIxLFxyXG4gICAgY29zdDogMWUxMyxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgUmVhY2ggJHtmb3JtYXQoXCIxZTc0MDAwMDAwMDAwMDBcIil9IGFudGltYXR0ZXIgd2l0aCBDb250aW51dW0gZGlzYWJsZWQgZm9yIHRoZSBlbnRpcmUgUmVhbGl0eWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+ICFwbGF5ZXIucmVxdWlyZW1lbnRDaGVja3MucmVhbGl0eS5ub0NvbnRpbnV1bSxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IHBsYXllci5yZXF1aXJlbWVudENoZWNrcy5yZWFsaXR5Lm5vQ29udGludXVtICYmXHJcbiAgICAgIEN1cnJlbmN5LmFudGltYXR0ZXIudmFsdWUubG9nMTAoKSA+PSA3LjRlMTIsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkdBTUVfVElDS19BRlRFUixcclxuICAgIGNhbkxvY2s6IHRydWUsXHJcbiAgICBsb2NrRXZlbnQ6IFwiZW5hYmxlIENvbnRpbnV1bVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQW5uaWhpbGF0aW9uIG11bHRpcGxpZXIgZ2FpbiBpcyBpbXByb3ZlZCBiYXNlZCBvbiBJbWFnaW5hcnkgTWFjaGluZXNcIixcclxuICAgIGVmZmVjdDogKCkgPT4gTWF0aC5jbGFtcE1pbihNYXRoLnBvdyhNYXRoLmxvZzEwKEN1cnJlbmN5LmltYWdpbmFyeU1hY2hpbmVzLnZhbHVlKSAtIDEwLCAzKSwgMSksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHZhbHVlID0+IGAke2Zvcm1hdFgodmFsdWUsIDIsIDEpfWAsXHJcbiAgICBpc0Rpc2FibGVkSW5Eb29tZWQ6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6IFwiVG90YWwgVGVybWluYXRpb25cIixcclxuICAgIGlkOiAyMixcclxuICAgIGNvc3Q6IDEuNWUxNCxcclxuICAgIGZvcm1hdENvc3Q6IHggPT4gZm9ybWF0KHgsIDEpLFxyXG4gICAgcmVxdWlyZW1lbnQ6ICgpID0+IGBSZWFjaCAke2Zvcm1hdChcIjFlMTUwMDAwMDAwMDAwXCIpfSBhbnRpbWF0dGVyIGluIEVmZmFyaWcncyBSZWFsaXR5IHdpdGhcclxuICAgICAgYXQgbGVhc3QgJHtmb3JtYXRJbnQoNCl9IEN1cnNlZCBHbHlwaHMgZXF1aXBwZWRgLFxyXG4gICAgLy8gTm90ZTogNCBjdXJzZWQgZ2x5cGhzIGlzIC0xMiBnbHlwaCBjb3VudCwgYnV0IGVxdWlwcGluZyBhIHBvc2l0aXZlIGdseXBoIGluIHRoZSBsYXN0IHNsb3QgaXMgYWxsb3dlZFxyXG4gICAgaGFzRmFpbGVkOiAoKSA9PiAhRWZmYXJpZy5pc1J1bm5pbmcgfHwgcGxheWVyLnJlcXVpcmVtZW50Q2hlY2tzLnJlYWxpdHkubWF4R2x5cGhzID4gLTEwLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gRWZmYXJpZy5pc1J1bm5pbmcgJiYgcGxheWVyLnJlcXVpcmVtZW50Q2hlY2tzLnJlYWxpdHkubWF4R2x5cGhzIDwgLTEwICYmXHJcbiAgICAgIEN1cnJlbmN5LmFudGltYXR0ZXIudmFsdWUuZXhwb25lbnQgPj0gMS41ZTExLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5HQU1FX1RJQ0tfQUZURVIsXHJcbiAgICBkZXNjcmlwdGlvbjogKCkgPT4gYEFsbCBHbHlwaCBTYWNyaWZpY2UgdG90YWxzIGFyZSBpbmNyZWFzZWQgdG8gJHtmb3JtYXQoMWUxMDApfWAsXHJcbiAgICBlZmZlY3Q6IDFlMTAwLFxyXG4gICAgaXNEaXNhYmxlZEluRG9vbWVkOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIlBsYW5hciBQdXJpZmljYXRpb25cIixcclxuICAgIGlkOiAyMyxcclxuICAgIGNvc3Q6IDZlMTQsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYFJlYWNoIEdseXBoIGxldmVsICR7Zm9ybWF0SW50KDIwMDAwKX0gaW4gUmEncyBSZWFsaXR5IHdpdGhcclxuICAgICAgYXQgbW9zdCAke2Zvcm1hdEludCgwKX0gR2x5cGhzIGVxdWlwcGVkYCxcclxuICAgIGhhc0ZhaWxlZDogKCkgPT4gIVJhLmlzUnVubmluZyB8fCBwbGF5ZXIucmVxdWlyZW1lbnRDaGVja3MucmVhbGl0eS5tYXhHbHlwaHMgPiAwLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gUmEuaXNSdW5uaW5nICYmIHBsYXllci5yZXF1aXJlbWVudENoZWNrcy5yZWFsaXR5Lm1heEdseXBocyA8PSAwICYmXHJcbiAgICAgIGdhaW5lZEdseXBoTGV2ZWwoKS5hY3R1YWxMZXZlbCA+PSAyMDAwMCxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuR0FNRV9USUNLX0FGVEVSLFxyXG4gICAgZGVzY3JpcHRpb246IFwiSW5jcmVhc2UgZnJlZSBEaW1ib29zdCBjb3VudCBiYXNlZCBvbiBUZXNzZXJhY3QgY291bnRcIixcclxuICAgIGVmZmVjdDogKCkgPT4gTWF0aC5mbG9vcigwLjI1ICogTWF0aC5wb3coVGVzc2VyYWN0cy5lZmZlY3RpdmVDb3VudCwgMikpLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB2YWx1ZSA9PiBgJHtmb3JtYXRYKHZhbHVlKX1gLFxyXG4gICAgaXNEaXNhYmxlZEluRG9vbWVkOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIkFic29sdXRlIEFubnVsbWVudFwiLFxyXG4gICAgaWQ6IDI0LFxyXG4gICAgY29zdDogNmUxNCxcclxuICAgIC8vIFdlIHVuZm9ydHVuYXRlbHkgZG9uJ3QgaGF2ZSB0aGUgVUkgc3BhY2UgdG8gYmUgbW9yZSBkZXNjcmlwdGl2ZSBvbiB0aGlzIGJ1dHRvbiB3aXRob3V0IGNhdXNpbmcgdGV4dCBvdmVyZmxvdyxcclxuICAgIC8vIHNvIGhvcGVmdWxseSB0aGUgYWRkaXRpb25hbCBtb2RhbHMgKGZyb20gdGhlIHVwZ3JhZGUgbG9jaykgd2lsbCBtb3N0bHkgY29tbXVuaWNhdGUgdGhlIGlkZWEgdGhhdCB0aGlzIGlzIHVuZGVyXHJcbiAgICAvLyB0aGUgc2FtZSBjb25kaXRpb25zIGFzIGhhcmQgVidzIFBvc3QtZGVzdGluYXRpb25cclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgSGF2ZSAke2Zvcm1hdEludCgxMzAwMCl9IEFudGltYXR0ZXIgR2FsYXhpZXMgaW4gUmEncyBSZWFsaXR5XHJcbiAgICAgIHdpdGggYSBmdWxseSBpbnZlcnRlZCBCbGFjayBIb2xlYCxcclxuICAgIGhhc0ZhaWxlZDogKCkgPT4gIVJhLmlzUnVubmluZyB8fCBwbGF5ZXIucmVxdWlyZW1lbnRDaGVja3MucmVhbGl0eS5zbG93ZXN0QkggPiAxZS0zMDAsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBSYS5pc1J1bm5pbmcgJiYgcGxheWVyLnJlcXVpcmVtZW50Q2hlY2tzLnJlYWxpdHkuc2xvd2VzdEJIIDw9IDFlLTMwMCAmJlxyXG4gICAgICBwbGF5ZXIuZ2FsYXhpZXMgPj0gMTMwMDAsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkdBTUVfVElDS19BRlRFUixcclxuICAgIGNhbkxvY2s6IHRydWUsXHJcbiAgICAvLyBUaHJlZSBsb2NraW5nIGV2ZW50czogdW5pbnZlcnQsIGRpc2NoYXJnZSwgYW5kIGVudGVyaW5nIChidXQgbm90IGF1dG8tY29tcGxldGluZykgRUMxMlxyXG4gICAgZGVzY3JpcHRpb246IFwiSW5jcmVhc2UgZnJlZSBEaW1ib29zdCBzdHJlbmd0aCBiYXNlZCBvbiBTaW5ndWxhcml0eSBjb3VudFwiLFxyXG4gICAgZWZmZWN0OiAoKSA9PiBEZWNpbWFsLnBvdyhwbGF5ZXIuY2VsZXN0aWFscy5sYWl0ZWxhLnNpbmd1bGFyaXRpZXMsIDMwMCksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHZhbHVlID0+IGAke2Zvcm1hdFgodmFsdWUsIDIsIDEpfWAsXHJcbiAgICBpc0Rpc2FibGVkSW5Eb29tZWQ6IHRydWVcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6IFwiT21uaXByZXNlbnQgT2JsaXRlcmF0aW9uXCIsXHJcbiAgICBpZDogMjUsXHJcbiAgICBjb3N0OiAxLjZlMTUsXHJcbiAgICBmb3JtYXRDb3N0OiB4ID0+IGZvcm1hdCh4LCAxKSxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgUmVhY2ggUmVhbGl0eSBpbiBMYWkndGVsYSdzIFJlYWxpdHkgd2l0aCBhbGwgRGltZW5zaW9ucyBkaXNhYmxlZCBhbmRcclxuICAgICAgYXQgbGVhc3QgJHtmb3JtYXRJbnQoNCl9IGVtcHR5IEdseXBoIHNsb3RzYCxcclxuICAgIGhhc0ZhaWxlZDogKCkgPT4gIUxhaXRlbGEuaXNSdW5uaW5nIHx8IExhaXRlbGEubWF4QWxsb3dlZERpbWVuc2lvbiAhPT0gMCB8fFxyXG4gICAgICBHbHlwaHMuYWN0aXZlV2l0aG91dENvbXBhbmlvbi5sZW5ndGggPiAxLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gTGFpdGVsYS5pc1J1bm5pbmcgJiYgTGFpdGVsYS5tYXhBbGxvd2VkRGltZW5zaW9uID09PSAwICYmXHJcbiAgICAgIEdseXBocy5hY3RpdmVXaXRob3V0Q29tcGFuaW9uLmxlbmd0aCA8PSAxICYmIFRpbWVTdHVkeS5yZWFsaXR5LmlzQm91Z2h0LFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5HQU1FX1RJQ0tfQUZURVIsXHJcbiAgICBjYW5Mb2NrOiB0cnVlLFxyXG4gICAgbG9ja0V2ZW50OiBcImVxdWlwIGFub3RoZXIgbm9uLUNvbXBhbmlvbiBHbHlwaFwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiVW5sb2NrIFBlbGxlLCBDZWxlc3RpYWwgb2YgQW50aW1hdHRlclwiLFxyXG4gIH0sXHJcbl07XHJcbiJdLCJuYW1lcyI6WyJEQyIsInJlYnV5YWJsZSIsInByb3BzIiwiY29zdCIsImluaXRpYWxDb3N0IiwiTWF0aCIsInBvdyIsImNvc3RNdWx0IiwicGxheWVyIiwicmVhbGl0eSIsImltYWdpbmFyeVJlYnV5YWJsZXMiLCJpZCIsImVmZmVjdCIsImlzRGVjaW1hbCIsIkRlY2ltYWwiLCJmb3JtYXRFZmZlY3QiLCJ2YWx1ZSIsImZvcm1hdCIsImZvcm1hdENvc3QiLCJpbWFnaW5hcnlVcGdyYWRlcyIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImZvcm1hdFgiLCJmb3JtYXRJbnQiLCJFMTAwMDAwIiwiZm9ybWF0UGVyY2VudHMiLCJyZXF1aXJlbWVudCIsImNlbGVzdGlhbHMiLCJlZmZhcmlnIiwicmVsaWNTaGFyZHMiLCJoYXNGYWlsZWQiLCJjaGVja1JlcXVpcmVtZW50IiwiY2hlY2tFdmVudCIsIkdBTUVfRVZFTlQiLCJSRUFMSVRZX1JFU0VUX0FGVEVSIiwibG9nMTAiLCJyZWNvcmRzIiwidG90YWxBbnRpbWF0dGVyIiwiZm9ybWF0UG93IiwiaXNEaXNhYmxlZEluRG9vbWVkIiwiT2JqZWN0IiwidmFsdWVzIiwiZ2x5cGhXZWlnaHRzIiwic29tZSIsInciLCJnYWluZWRHbHlwaExldmVsIiwiYWN0dWFsTGV2ZWwiLCJSRUFMSVRZX1JFU0VUX0JFRk9SRSIsIkltYWdpbmFyeVVwZ3JhZGVzIiwidG90YWxSZWJ1eWFibGVzIiwiTnVtYmVyIiwiTUFYX1ZBTFVFIiwiRW5zbGF2ZWQiLCJpc1J1bm5pbmciLCJNYWNoaW5lSGFuZGxlciIsInVuY2FwcGVkUk0iLCJ0aW1lcyIsInNpbXVsYXRlZFJlYWxpdHlDb3VudCIsImd0ZSIsIkdBTUVfVElDS19BRlRFUiIsInRvdGFsU2luZ2xlUHVyY2hhc2UiLCJ4IiwiRXRlcm5pdHlDaGFsbGVuZ2UiLCJUaWNrc3BlZWQiLCJwZXJTZWNvbmQiLCJleHBvbmVudCIsInJlcXVpcmVtZW50Q2hlY2tzIiwibWF4SUQxIiwiZ3QiLCJlcSIsImFudGltYXR0ZXIiLCJjYW5Mb2NrIiwiUGVsbGUiLCJpc0Rvb21lZCIsIkxhaXRlbGEiLCJtYXhBbGxvd2VkRGltZW5zaW9uIiwiU2luZ3VsYXJpdHkiLCJzaW5ndWxhcml0aWVzR2FpbmVkIiwiQ3VycmVuY3kiLCJkYXJrRW5lcmd5IiwiY2FwIiwiU2luZ3VsYXJpdHlNaWxlc3RvbmUiLCJhdXRvQ29uZGVuc2UiLCJlZmZlY3RPckRlZmF1bHQiLCJJbmZpbml0eSIsIlNJTkdVTEFSSVRZX1JFU0VUX0JFRk9SRSIsIlJlcGxpY2FudGkiLCJnYWxheGllcyIsInRvdGFsIiwiZGlsYXRpb24iLCJ0b3RhbFRhY2h5b25HYWxheGllcyIsIm1heFN0dWRpZXMiLCJjb250aW51dW1WYWx1ZSIsImxvY2tFdmVudCIsIm1hdHRlckV4dHJhUHVyY2hhc2VGYWN0b3IiLCJub0NvbnRpbnV1bSIsImNsYW1wTWluIiwiaW1hZ2luYXJ5TWFjaGluZXMiLCJFZmZhcmlnIiwibWF4R2x5cGhzIiwiUmEiLCJmbG9vciIsIlRlc3NlcmFjdHMiLCJlZmZlY3RpdmVDb3VudCIsInNsb3dlc3RCSCIsImxhaXRlbGEiLCJzaW5ndWxhcml0aWVzIiwiR2x5cGhzIiwiYWN0aXZlV2l0aG91dENvbXBhbmlvbiIsImxlbmd0aCIsIlRpbWVTdHVkeSIsImlzQm91Z2h0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/core/secret-formula/reality/imaginary-upgrades.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/reality/index.js": +/*!**************************************************!*\ + !*** ./src/core/secret-formula/reality/index.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"reality\": () => (/* binding */ reality)\n/* harmony export */ });\n/* harmony import */ var _glyph_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./glyph-types */ \"./src/core/secret-formula/reality/glyph-types.js\");\n/* harmony import */ var _perks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./perks */ \"./src/core/secret-formula/reality/perks.js\");\n/* harmony import */ var _automator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./automator */ \"./src/core/secret-formula/reality/automator.js\");\n/* harmony import */ var _glyph_cosmetics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./glyph-cosmetics */ \"./src/core/secret-formula/reality/glyph-cosmetics.js\");\n/* harmony import */ var _glyph_effects__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./glyph-effects */ \"./src/core/secret-formula/reality/glyph-effects.js\");\n/* harmony import */ var _glyph_sacrifices__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./glyph-sacrifices */ \"./src/core/secret-formula/reality/glyph-sacrifices.js\");\n/* harmony import */ var _imaginary_upgrades__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./imaginary-upgrades */ \"./src/core/secret-formula/reality/imaginary-upgrades.js\");\n/* harmony import */ var _reality_upgrades__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./reality-upgrades */ \"./src/core/secret-formula/reality/reality-upgrades.js\");\n\n\n\n\n\n\n\n\nconst reality = {\n automator: _automator__WEBPACK_IMPORTED_MODULE_2__.automator,\n cosmeticGlyphs: _glyph_types__WEBPACK_IMPORTED_MODULE_0__.cosmeticGlyphs,\n glyphCosmeticSets: _glyph_cosmetics__WEBPACK_IMPORTED_MODULE_3__.glyphCosmeticSets,\n glyphEffects: _glyph_effects__WEBPACK_IMPORTED_MODULE_4__.glyphEffects,\n glyphSacrifice: _glyph_sacrifices__WEBPACK_IMPORTED_MODULE_5__.glyphSacrifice,\n glyphTypes: _glyph_types__WEBPACK_IMPORTED_MODULE_0__.glyphTypes,\n imaginaryUpgrades: _imaginary_upgrades__WEBPACK_IMPORTED_MODULE_6__.imaginaryUpgrades,\n perks: _perks__WEBPACK_IMPORTED_MODULE_1__.perks,\n perkConnections: _perks__WEBPACK_IMPORTED_MODULE_1__.perkConnections,\n upgrades: _reality_upgrades__WEBPACK_IMPORTED_MODULE_7__.realityUpgrades\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L2luZGV4LmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFTyxNQUFNVSxPQUFPLEdBQUc7QUFDckJOLEVBQUFBLFNBRHFCO0FBRXJCSixFQUFBQSxjQUZxQjtBQUdyQkssRUFBQUEsaUJBSHFCO0FBSXJCQyxFQUFBQSxZQUpxQjtBQUtyQkMsRUFBQUEsY0FMcUI7QUFNckJOLEVBQUFBLFVBTnFCO0FBT3JCTyxFQUFBQSxpQkFQcUI7QUFRckJMLEVBQUFBLEtBUnFCO0FBU3JCRCxFQUFBQSxlQVRxQjtBQVVyQlMsRUFBQUEsUUFBUSxFQUFFRiw4REFBZUE7QUFWSixDQUFoQiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jb3JlL3NlY3JldC1mb3JtdWxhL3JlYWxpdHkvaW5kZXguanM/OTcwNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb3NtZXRpY0dseXBocywgZ2x5cGhUeXBlcyB9IGZyb20gXCIuL2dseXBoLXR5cGVzXCI7XHJcbmltcG9ydCB7IHBlcmtDb25uZWN0aW9ucywgcGVya3MgfSBmcm9tIFwiLi9wZXJrc1wiO1xyXG5cclxuaW1wb3J0IHsgYXV0b21hdG9yIH0gZnJvbSBcIi4vYXV0b21hdG9yXCI7XHJcbmltcG9ydCB7IGdseXBoQ29zbWV0aWNTZXRzIH0gZnJvbSBcIi4vZ2x5cGgtY29zbWV0aWNzXCI7XHJcbmltcG9ydCB7IGdseXBoRWZmZWN0cyB9IGZyb20gXCIuL2dseXBoLWVmZmVjdHNcIjtcclxuaW1wb3J0IHsgZ2x5cGhTYWNyaWZpY2UgfSBmcm9tIFwiLi9nbHlwaC1zYWNyaWZpY2VzXCI7XHJcbmltcG9ydCB7IGltYWdpbmFyeVVwZ3JhZGVzIH0gZnJvbSBcIi4vaW1hZ2luYXJ5LXVwZ3JhZGVzXCI7XHJcbmltcG9ydCB7IHJlYWxpdHlVcGdyYWRlcyB9IGZyb20gXCIuL3JlYWxpdHktdXBncmFkZXNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCByZWFsaXR5ID0ge1xyXG4gIGF1dG9tYXRvcixcclxuICBjb3NtZXRpY0dseXBocyxcclxuICBnbHlwaENvc21ldGljU2V0cyxcclxuICBnbHlwaEVmZmVjdHMsXHJcbiAgZ2x5cGhTYWNyaWZpY2UsXHJcbiAgZ2x5cGhUeXBlcyxcclxuICBpbWFnaW5hcnlVcGdyYWRlcyxcclxuICBwZXJrcyxcclxuICBwZXJrQ29ubmVjdGlvbnMsXHJcbiAgdXBncmFkZXM6IHJlYWxpdHlVcGdyYWRlc1xyXG59O1xyXG4iXSwibmFtZXMiOlsiY29zbWV0aWNHbHlwaHMiLCJnbHlwaFR5cGVzIiwicGVya0Nvbm5lY3Rpb25zIiwicGVya3MiLCJhdXRvbWF0b3IiLCJnbHlwaENvc21ldGljU2V0cyIsImdseXBoRWZmZWN0cyIsImdseXBoU2FjcmlmaWNlIiwiaW1hZ2luYXJ5VXBncmFkZXMiLCJyZWFsaXR5VXBncmFkZXMiLCJyZWFsaXR5IiwidXBncmFkZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/core/secret-formula/reality/index.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/reality/perks.js": +/*!**************************************************!*\ + !*** ./src/core/secret-formula/reality/perks.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"PERK_FAMILY\": () => (/* binding */ PERK_FAMILY),\n/* harmony export */ \"perks\": () => (/* binding */ perks),\n/* harmony export */ \"perkConnections\": () => (/* binding */ perkConnections)\n/* harmony export */ });\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../constants */ \"./src/core/constants.js\");\n\n\nconst PERK_FAMILY = {\n ANTIMATTER: \"ANTIMATTER\",\n INFINITY: \"INFINITY\",\n ETERNITY: \"ETERNITY\",\n DILATION: \"DILATION\",\n REALITY: \"REALITY\",\n AUTOMATION: \"AUTOMATION\",\n ACHIEVEMENT: \"ACHIEVEMENT\"\n}; // This function isn't used in-game, see note below for its intended usage\n// eslint-disable-next-line no-unused-vars\n\nfunction vectorToNum(v) {\n return Math.floor(v.x / 5) + 400 * Math.floor(v.y / 5) + 80200;\n}\n/**\r\n * In order to reduce boilerplate code and excessive Vector object declarations, the node positions in fixed layouts\r\n * are specified as numbers which are decoded on-the-fly using positionNumToVector in PerksTab.vue. The function\r\n * vectorToNum above is the inverse of that function.\r\n *\r\n * To make a new preset layout, define vectorToNum in the console, move all the nodes around in-game and then run\r\n * Object.values(PerkNetwork.network.body.nodes).filter(n => n.edges.length !== 0).map(v => vectorToNum(v))\r\n * in the console to get all the current node positions. Then, append the resulting numbers to each layoutPosList\r\n * array below and make the appripriate entry in PerkLayouts.\r\n *\r\n * Note: This encoding/decoding only works properly for coordinates with values between -1000 and 1000, and will\r\n * be slightly off for vectors whose coordinates aren't divisible by 5\r\n */\n\n\nconst perks = {\n firstPerk: {\n id: 0,\n label: \"START\",\n family: PERK_FAMILY.REALITY,\n\n get description() {\n return `Remove the achievement requirement from the Reality Study\n and allow you to choose from ${formatInt(4)} different Glyphs on Reality.`;\n },\n\n effect: 4,\n layoutPosList: [76596, 80200, 80600, 80200, 80188, 67769]\n },\n startAM: {\n id: 10,\n label: \"SAM\",\n family: PERK_FAMILY.ANTIMATTER,\n\n get description() {\n return `Start every reset with ${format(5e130)} antimatter.`;\n },\n\n bumpCurrency: () => Currency.antimatter.bumpTo(5e130),\n effect: 5e130,\n layoutPosList: [76559, 80600, 80199, 80600, 82191, 75745]\n },\n startIP1: {\n id: 12,\n label: \"SIP1\",\n family: PERK_FAMILY.INFINITY,\n\n get description() {\n return `Start every Eternity and Reality with ${format(5e15)} Infinity Points.`;\n },\n\n bumpCurrency: () => Currency.infinityPoints.bumpTo(5e15),\n effect: 5e15,\n layoutPosList: [74523, 80599, 79798, 80599, 82594, 91322]\n },\n startIP2: {\n id: 13,\n label: \"SIP2\",\n family: PERK_FAMILY.INFINITY,\n\n get description() {\n return `Start every Eternity and Reality with ${format(5e130)} Infinity Points.`;\n },\n\n bumpCurrency: () => Currency.infinityPoints.bumpTo(5e130),\n effect: 5e130,\n layoutPosList: [62111, 80598, 79797, 80998, 82597, 91690]\n },\n startEP1: {\n id: 14,\n label: \"SEP1\",\n family: PERK_FAMILY.ETERNITY,\n\n get description() {\n return `Start every Reality with ${formatInt(10)} Eternity Points.`;\n },\n\n bumpCurrency: () => Currency.eternityPoints.bumpTo(10),\n effect: 10,\n automatorPoints: 5,\n shortDescription: () => `Start with ${formatInt(10)} EP`,\n layoutPosList: [88915, 80999, 79398, 80598, 82197, 103734]\n },\n startEP2: {\n id: 15,\n label: \"SEP2\",\n family: PERK_FAMILY.ETERNITY,\n\n get description() {\n return `Start every Reality with ${format(5000)} Eternity Points.`;\n },\n\n bumpCurrency: () => Currency.eternityPoints.bumpTo(5000),\n effect: 5000,\n layoutPosList: [92484, 81398, 78998, 80597, 82200, 102193]\n },\n startEP3: {\n id: 16,\n label: \"SEP3\",\n family: PERK_FAMILY.ETERNITY,\n\n get description() {\n return `Start every Reality with ${format(5e9)} Eternity Points.`;\n },\n\n bumpCurrency: () => Currency.eternityPoints.bumpTo(5e9),\n effect: 5e9,\n automatorPoints: 10,\n shortDescription: () => `Start with ${format(5e9)} EP`,\n layoutPosList: [96459, 81798, 78997, 80596, 82203, 106224]\n },\n startTP: {\n id: 17,\n label: \"STP\",\n family: PERK_FAMILY.DILATION,\n\n get description() {\n return `After unlocking Dilation, gain ${formatInt(10)} Tachyon Particles.`;\n },\n\n effect: () => Enslaved.isRunning ? 1 : 10,\n automatorPoints: 5,\n shortDescription: () => `Start with ${formatInt(10)} TP`,\n layoutPosList: [102120, 81399, 79399, 80197, 81800, 109376]\n },\n antimatterNoReset: {\n id: 30,\n label: \"ANR\",\n family: PERK_FAMILY.ANTIMATTER,\n description: `Dimension Boosts and Antimatter Galaxies no longer reset\n Antimatter, Antimatter Dimensions, Tickspeed, or Dimensional Sacrifice.`,\n layoutPosList: [85343, 81000, 79799, 80199, 82194, 92553]\n },\n studyPassive: {\n id: 31,\n label: \"PASS\",\n family: PERK_FAMILY.ETERNITY,\n\n get description() {\n return `Improve Time Study 122 to ${formatX(50)} Eternity Points and\n Time Study 142 to ${formatX(_constants__WEBPACK_IMPORTED_MODULE_1__.DC.E50)} Infinity Points.\n ${Pelle.isDoomed ? \"\" : `In addition, Time Study 132 also makes Replicanti ${format(3)} times faster.`}`;\n },\n\n layoutPosList: [67054, 79400, 80999, 80202, 78594, 52589]\n },\n autounlockEU1: {\n id: 40,\n label: \"EU1\",\n family: PERK_FAMILY.ETERNITY,\n description: `Automatically unlock the first row of Eternity Upgrades for free once you have Eternities.`,\n layoutPosList: [89407, 80601, 80201, 79800, 80591, 73007]\n },\n autounlockEU2: {\n id: 41,\n label: \"EU2\",\n family: PERK_FAMILY.ETERNITY,\n\n get description() {\n return `The second row of Eternity Upgrades is automatically purchased\n at ${formatX(1e10)} times less than their original price.`;\n },\n\n layoutPosList: [103008, 81001, 80202, 79400, 80594, 81867]\n },\n autounlockDilation1: {\n id: 42,\n label: \"DU1\",\n family: PERK_FAMILY.DILATION,\n description: \"After unlocking Dilation, automatically unlock the second row of Dilation Upgrades for free.\",\n layoutPosList: [119833, 81801, 79403, 79398, 80200, 97510]\n },\n autounlockDilation2: {\n id: 43,\n label: \"DU2\",\n family: PERK_FAMILY.DILATION,\n description: \"After unlocking Dilation, automatically unlock the third row of Dilation Upgrades for free.\",\n layoutPosList: [124260, 82201, 79003, 79397, 80203, 85513]\n },\n autounlockDilation3: {\n id: 44,\n label: \"ATT\",\n family: PERK_FAMILY.DILATION,\n description: \"Automatically purchase the passive Time Theorem generation Dilation Upgrade once you can afford it.\",\n automatorPoints: 5,\n shortDescription: () => \"Auto-purchase TT generation\",\n layoutPosList: [124289, 82601, 79002, 79396, 80206, 72282]\n },\n autounlockTD: {\n id: 45,\n label: \"ATD\",\n family: PERK_FAMILY.DILATION,\n description: \"Auto-unlock Time Dimensions 5-8 once you can afford them.\",\n automatorPoints: 5,\n shortDescription: () => \"Auto-unlock TD 5-8\",\n layoutPosList: [127117, 82600, 79001, 79796, 80209, 61869]\n },\n autounlockReality: {\n id: 46,\n label: \"REAL\",\n family: PERK_FAMILY.REALITY,\n\n get description() {\n return `Auto-unlocks Reality once you have ${format(_constants__WEBPACK_IMPORTED_MODULE_1__.DC.E4000)} Eternity Points\n and have unlocked Time Dimension 8.`;\n },\n\n automatorPoints: 10,\n shortDescription: () => \"Auto-unlock Reality\",\n layoutPosList: [124343, 83000, 79000, 79795, 80212, 71046]\n },\n bypassIDAntimatter: {\n id: 51,\n label: \"IDR\",\n family: PERK_FAMILY.INFINITY,\n description: \"Infinity Dimensions no longer have antimatter requirements.\",\n layoutPosList: [51317, 80998, 79397, 80997, 82600, 104489]\n },\n bypassTGReset: {\n id: 52,\n label: \"TGR\",\n family: PERK_FAMILY.DILATION,\n description: \"The 2nd rebuyable Dilation Upgrade no longer resets your Dilated Time.\",\n layoutPosList: [116568, 81800, 79801, 79798, 81400, 112677]\n },\n bypassECDilation: {\n id: 53,\n label: \"DILR\",\n family: PERK_FAMILY.DILATION,\n description: \"Remove the Eternity Challenge 11, Eternity Challenge 12, and total Time Theorem \" + \"requirements from Time Dilation unlock.\",\n automatorPoints: 5,\n shortDescription: () => `Unlocking Dilation only requires TT`,\n layoutPosList: [129011, 81802, 80203, 80198, 80600, 109116]\n },\n bypassEC1Lock: {\n id: 54,\n label: \"EC1R\",\n family: PERK_FAMILY.ETERNITY,\n description: \"Remove the Eternity Challenge 1 requirement from Time Study 181.\",\n layoutPosList: [64284, 79000, 81399, 80603, 78597, 44167]\n },\n bypassEC2Lock: {\n id: 55,\n label: \"EC2R\",\n family: PERK_FAMILY.ETERNITY,\n description: \"Remove the Eternity Challenge 2 requirement from Time Study 181.\",\n layoutPosList: [55463, 78999, 80998, 80602, 78197, 48944]\n },\n bypassEC3Lock: {\n id: 56,\n label: \"EC3R\",\n family: PERK_FAMILY.ETERNITY,\n description: \"Remove the Eternity Challenge 3 requirement from Time Study 181.\",\n layoutPosList: [75475, 79001, 81400, 80203, 78997, 47822]\n },\n bypassEC5Lock: {\n id: 57,\n label: \"EC5R\",\n family: PERK_FAMILY.ETERNITY,\n description: \"Remove the Eternity Challenge 5 requirement from Time Study 62.\",\n layoutPosList: [70626, 79800, 81000, 80201, 78591, 62607]\n },\n autocompleteEC1: {\n id: 60,\n label: \"PEC1\",\n family: PERK_FAMILY.AUTOMATION,\n\n get description() {\n return `Auto-complete one Eternity Challenge every ${formatInt(60)} minutes (real-time).\n ECs will be completed sequentially, requiring all previous\n ECs to be fully completed before progressing to the next EC.`;\n },\n\n effect: 60,\n automatorPoints: 5,\n shortDescription: () => `Auto-complete ECs every ${formatInt(60)} minutes`,\n layoutPosList: [90660, 79402, 81002, 79803, 79397, 46664]\n },\n autocompleteEC2: {\n id: 61,\n label: \"PEC2\",\n family: PERK_FAMILY.AUTOMATION,\n\n get description() {\n return `Auto-complete one Eternity Challenge every ${formatInt(40)} minutes (real-time).\n (${formatInt(20)} minute decrease)`;\n },\n\n effect: 40,\n layoutPosList: [95485, 79002, 81402, 79804, 79400, 53486]\n },\n autocompleteEC3: {\n id: 62,\n label: \"PEC3\",\n family: PERK_FAMILY.AUTOMATION,\n\n get description() {\n return `Auto-complete one Eternity Challenge every ${formatInt(20)} minutes (real-time).\n (${formatInt(20)} minute decrease)`;\n },\n\n effect: 20,\n automatorPoints: 10,\n shortDescription: () => `Auto-complete ECs every ${formatInt(20)} minutes`,\n layoutPosList: [96311, 78602, 81401, 80204, 79403, 61903]\n },\n studyActiveEP: {\n id: 70,\n label: \"ACT\",\n family: PERK_FAMILY.ETERNITY,\n description: \"Active path multipliers are always maximized.\",\n layoutPosList: [56633, 79399, 80599, 80601, 78194, 58565]\n },\n studyIdleEP: {\n id: 71,\n label: \"IDL\",\n family: PERK_FAMILY.ETERNITY,\n\n get description() {\n return `Idle path multipliers start as if you have spent ${formatInt(15)} minutes in this Infinity/Eternity.`;\n },\n\n effect: 15,\n layoutPosList: [80248, 79401, 81001, 79802, 78994, 56239]\n },\n studyECRequirement: {\n id: 72,\n label: \"ECR\",\n family: PERK_FAMILY.ETERNITY,\n description: \"Remove non-Time Theorem requirements for unlocking Eternity Challenges.\",\n automatorPoints: 10,\n shortDescription: () => \"Remove EC secondary requirements\",\n layoutPosList: [62714, 78600, 81398, 80604, 78600, 40599]\n },\n studyECBulk: {\n id: 73,\n label: \"ECB\",\n family: PERK_FAMILY.ETERNITY,\n description: `You can complete multiple tiers of Eternity Challenges at once if\n you reach the goal for a higher completion of that challenge.`,\n automatorPoints: 15,\n shortDescription: () => \"Bulk EC Completion\",\n layoutPosList: [62741, 78200, 81397, 81004, 78603, 41435]\n },\n retroactiveTP1: {\n id: 80,\n label: \"TP1\",\n family: PERK_FAMILY.DILATION,\n\n get description() {\n return `When buying the 3rd rebuyable Dilation Upgrade,\n multiply your current Tachyon Particle amount by ${formatFloat(1.5, 1)}.`;\n },\n\n effect: 1.5,\n layoutPosList: [111739, 81799, 79800, 79797, 81403, 115434]\n },\n retroactiveTP2: {\n id: 81,\n label: \"TP2\",\n family: PERK_FAMILY.DILATION,\n\n get description() {\n return `When buying the 3rd rebuyable Dilation Upgrade,\n multiply your current Tachyon Particle amount by ${formatInt(2)}.`;\n },\n\n effect: 2,\n layoutPosList: [103757, 82199, 79401, 80196, 81406, 117382]\n },\n retroactiveTP3: {\n id: 82,\n label: \"TP3\",\n family: PERK_FAMILY.DILATION,\n\n get description() {\n return `When buying the 3rd rebuyable Dilation Upgrade,\n multiply your current Tachyon Particle amount by ${formatFloat(2.5, 1)}.`;\n },\n\n effect: 2.5,\n layoutPosList: [96175, 82599, 79400, 80195, 81409, 116540]\n },\n retroactiveTP4: {\n id: 83,\n label: \"TP4\",\n family: PERK_FAMILY.DILATION,\n\n get description() {\n return `When buying the 3rd rebuyable Dilation Upgrade,\n multiply your current Tachyon Particle amount by ${formatInt(3)}.`;\n },\n\n effect: 3,\n automatorPoints: 10,\n shortDescription: () => `${formatX(3)} TP upgrade applies retroactively`,\n layoutPosList: [86984, 82598, 78999, 80595, 81412, 114103]\n },\n autobuyerDilation: {\n id: 100,\n label: \"DAU\",\n family: PERK_FAMILY.AUTOMATION,\n description: \"Unlock autobuyers for the repeatable Dilation Upgrades.\",\n automatorPoints: 5,\n shortDescription: () => \"Dilation Upgrade Autobuyers\",\n layoutPosList: [117401, 81401, 79802, 79799, 80597, 96672]\n },\n autobuyerFasterID: {\n id: 101,\n label: \"IDAS\",\n family: PERK_FAMILY.AUTOMATION,\n\n get description() {\n return `Infinity Dimension autobuyers work ${formatX(3)} faster.`;\n },\n\n effect: 1 / 3,\n automatorPoints: 5,\n shortDescription: () => \"Faster ID Autobuyers\",\n layoutPosList: [74095, 80199, 80198, 81000, 82997, 77720]\n },\n autobuyerFasterReplicanti: {\n id: 102,\n label: \"REPAS\",\n family: PERK_FAMILY.AUTOMATION,\n\n get description() {\n return `Replicanti autobuyers work ${formatX(3)} faster.`;\n },\n\n effect: 1 / 3,\n automatorPoints: 5,\n shortDescription: () => \"Faster Replicanti Autobuyers\",\n layoutPosList: [57685, 80198, 80197, 80999, 83000, 79297]\n },\n autobuyerFasterDilation: {\n id: 103,\n label: \"DAS\",\n family: PERK_FAMILY.AUTOMATION,\n\n get description() {\n return `Dilation Upgrade autobuyers work ${formatX(3)} faster.`;\n },\n\n effect: 1 / 3,\n automatorPoints: 5,\n shortDescription: () => \"Faster Dilation Autobuyers\",\n layoutPosList: [113895, 82602, 79402, 79395, 80609, 72715]\n },\n ttBuySingle: {\n id: 104,\n label: \"TTS\",\n family: PERK_FAMILY.AUTOMATION,\n description: \"Unlock a Time Theorem Autobuyer which buys single Time Theorems every tick.\",\n automatorPoints: 5,\n shortDescription: () => \"Single TT Autobuyer\",\n layoutPosList: [44631, 79398, 80598, 81001, 77797, 57325]\n },\n ttFree: {\n id: 105,\n label: \"TTF\",\n family: PERK_FAMILY.AUTOMATION,\n\n get description() {\n return `Purchasing Time Theorems no longer spends your Antimatter, Infinity Points, or Eternity Points.`;\n },\n\n layoutPosList: [33840, 78998, 80597, 81002, 77800, 67309]\n },\n ttBuyMax: {\n id: 106,\n label: \"TTM\",\n family: PERK_FAMILY.AUTOMATION,\n\n get description() {\n return `Upgrade the Time Theorem Autobuyer to buy max Time Theorems.`;\n },\n\n automatorPoints: 10,\n shortDescription: () => \"Max TT Autobuyer\",\n layoutPosList: [25055, 78598, 80997, 81003, 77803, 65739]\n },\n dilationAutobuyerBulk: {\n id: 107,\n label: \"DAB\",\n family: PERK_FAMILY.AUTOMATION,\n\n get description() {\n return `Dilation Upgrade autobuyers buy three times as many Dilation Upgrades at once.`;\n },\n\n effect: 3,\n automatorPoints: 5,\n shortDescription: () => \"Dilation Autobuyer bulk\",\n layoutPosList: [127384, 81400, 79803, 79399, 81000, 103048]\n },\n achievementGroup1: {\n id: 201,\n label: \"ACH1\",\n family: PERK_FAMILY.ACHIEVEMENT,\n\n get description() {\n return `Reduce the Achievement timer to ${formatInt(20)} minutes per\n Achievement (${formatInt(10)} minute decrease).`;\n },\n\n effect: 10,\n automatorPoints: 5,\n shortDescription: () => `Faster Achievements: every ${formatInt(20)} minutes`,\n layoutPosList: [65386, 80201, 80601, 79801, 79791, 81371]\n },\n achievementGroup2: {\n id: 202,\n label: \"ACH2\",\n family: PERK_FAMILY.ACHIEVEMENT,\n\n get description() {\n return `Reduce the Achievement timer to ${formatInt(12)} minutes per\n Achievement (${formatInt(8)} minute decrease).`;\n },\n\n effect: 8,\n layoutPosList: [54976, 80202, 80602, 79401, 79794, 93780]\n },\n achievementGroup3: {\n id: 203,\n label: \"ACH3\",\n family: PERK_FAMILY.ACHIEVEMENT,\n\n get description() {\n return `Reduce the Achievement timer to ${formatInt(6)} minutes per\n Achievement (${formatInt(6)} minute decrease).`;\n },\n\n effect: 6,\n layoutPosList: [44168, 80602, 80603, 79402, 79797, 83005]\n },\n achievementGroup4: {\n id: 204,\n label: \"ACH4\",\n family: PERK_FAMILY.ACHIEVEMENT,\n\n get description() {\n return `Reduce the Achievement timer to ${formatInt(2)} minutes per\n Achievement (${formatInt(4)} minute decrease).`;\n },\n\n effect: 4,\n layoutPosList: [33760, 81002, 81003, 79403, 79800, 95422]\n },\n achievementGroup5: {\n id: 205,\n label: \"ACHNR\",\n family: PERK_FAMILY.ACHIEVEMENT,\n\n get description() {\n return `Immediately unlock the first ${formatInt(13)} rows of Achievements\n and Reality no longer resets them.`;\n },\n\n automatorPoints: 10,\n shortDescription: () => \"Keep Achievements on Reality\",\n layoutPosList: [23353, 81402, 81403, 79404, 79803, 84639]\n }\n};\nconst perkConnections = function () {\n const p = perks; // First item is the start, other items are the ends\n\n const groups = [[p.firstPerk, p.achievementGroup1, p.startAM, p.autounlockEU1, p.bypassEC5Lock], [p.startAM, p.antimatterNoReset, p.startIP1], [p.antimatterNoReset, p.startEP1], [p.startIP1, p.startIP2, p.startEP1, p.autobuyerFasterID], [p.startIP2, p.bypassIDAntimatter, p.autobuyerFasterReplicanti], [p.startEP1, p.startEP2, p.startTP], [p.startEP2, p.startEP3], [p.startTP, p.startEP1, p.retroactiveTP1], [p.autounlockEU1, p.autounlockEU2], [p.autounlockEU2, p.autounlockEU1, p.autobuyerDilation], [p.autounlockDilation1, p.autounlockDilation2], [p.autounlockDilation2, p.autounlockDilation3], [p.autounlockDilation3, p.autobuyerFasterDilation, p.autounlockTD], [p.autounlockTD, p.autounlockReality], [p.bypassTGReset, p.autobuyerDilation, p.retroactiveTP1], [p.bypassEC1Lock, p.bypassEC2Lock, p.bypassEC3Lock, p.studyECRequirement], [p.bypassEC2Lock, p.studyActiveEP, p.bypassEC1Lock], [p.bypassEC3Lock, p.studyIdleEP, p.bypassEC1Lock], [p.bypassEC5Lock, p.studyActiveEP, p.studyIdleEP, p.studyPassive], [p.studyPassive, p.bypassEC1Lock], [p.autocompleteEC1, p.autocompleteEC2], [p.autocompleteEC2, p.autocompleteEC3], [p.studyActiveEP, p.bypassEC2Lock, p.ttBuySingle], [p.studyIdleEP, p.bypassEC3Lock, p.autocompleteEC1], [p.studyECRequirement, p.studyECBulk], [p.retroactiveTP1, p.bypassTGReset, p.startTP, p.retroactiveTP2], [p.retroactiveTP2, p.retroactiveTP3], [p.retroactiveTP3, p.retroactiveTP4], [p.autobuyerDilation, p.autounlockEU2, p.autounlockDilation1, p.bypassECDilation, p.bypassTGReset, p.dilationAutobuyerBulk], [p.autobuyerFasterID], [p.ttBuySingle, p.ttFree], [p.ttFree, p.ttBuyMax], [p.achievementGroup1, p.achievementGroup2], [p.achievementGroup2, p.achievementGroup3], [p.achievementGroup3, p.achievementGroup4], [p.achievementGroup4, p.achievementGroup5]];\n const connections = {};\n\n for (const perk of Object.values(perks)) {\n const connectedPerks = [];\n const directConnections = groups.find(g => g[0] === perk);\n\n if (directConnections !== undefined) {\n connectedPerks.push(...directConnections.slice(1));\n }\n\n const indirectConnections = groups.filter(g => g.slice(1).some(groupPerk => groupPerk === perk)).map(g => g[0]);\n connectedPerks.push(...indirectConnections);\n connections[perk.id] = [...new Set(connectedPerks.map(connectedPerk => connectedPerk.id))];\n }\n\n return connections;\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L3BlcmtzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUVPLE1BQU1DLFdBQVcsR0FBRztBQUN6QkMsRUFBQUEsVUFBVSxFQUFFLFlBRGE7QUFFekJDLEVBQUFBLFFBQVEsRUFBRSxVQUZlO0FBR3pCQyxFQUFBQSxRQUFRLEVBQUUsVUFIZTtBQUl6QkMsRUFBQUEsUUFBUSxFQUFFLFVBSmU7QUFLekJDLEVBQUFBLE9BQU8sRUFBRSxTQUxnQjtBQU16QkMsRUFBQUEsVUFBVSxFQUFFLFlBTmE7QUFPekJDLEVBQUFBLFdBQVcsRUFBRTtBQVBZLENBQXBCLEVBVVA7QUFDQTs7QUFDQSxTQUFTQyxXQUFULENBQXFCQyxDQUFyQixFQUF3QjtBQUN0QixTQUFPQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0YsQ0FBQyxDQUFDRyxDQUFGLEdBQU0sQ0FBakIsSUFBc0IsTUFBTUYsSUFBSSxDQUFDQyxLQUFMLENBQVdGLENBQUMsQ0FBQ0ksQ0FBRixHQUFNLENBQWpCLENBQTVCLEdBQWtELEtBQXpEO0FBQ0Q7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sTUFBTUMsS0FBSyxHQUFHO0FBQ25CQyxFQUFBQSxTQUFTLEVBQUU7QUFDVEMsSUFBQUEsRUFBRSxFQUFFLENBREs7QUFFVEMsSUFBQUEsS0FBSyxFQUFFLE9BRkU7QUFHVEMsSUFBQUEsTUFBTSxFQUFFbEIsV0FBVyxDQUFDSyxPQUhYOztBQUlULFFBQUljLFdBQUosR0FBa0I7QUFDaEIsYUFBUTtBQUNkLHFDQUFxQ0MsU0FBUyxDQUFDLENBQUQsQ0FBSSwrQkFENUM7QUFFRCxLQVBROztBQVFUQyxJQUFBQSxNQUFNLEVBQUUsQ0FSQztBQVNUQyxJQUFBQSxhQUFhLEVBQUUsQ0FBQyxLQUFELEVBQVEsS0FBUixFQUFlLEtBQWYsRUFBc0IsS0FBdEIsRUFBNkIsS0FB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QSxXQUFXLENBQUNDLElBQUksQ0FBQzNFLEVBQU4sQ0FBWCxHQUF1QixDQUFDLEdBQUcsSUFBSTBGLEdBQUosQ0FBUVosY0FBYyxDQUFDVyxHQUFmLENBQW1CRSxhQUFhLElBQUlBLGFBQWEsQ0FBQzNGLEVBQWxELENBQVIsQ0FBSixDQUF2QjtBQUNEOztBQUNELFNBQU8wRSxXQUFQO0FBQ0QsQ0F4RCtCLEVBQXpCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvcmUvc2VjcmV0LWZvcm11bGEvcmVhbGl0eS9wZXJrcy5qcz80ZTllIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERDIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBFUktfRkFNSUxZID0ge1xyXG4gIEFOVElNQVRURVI6IFwiQU5USU1BVFRFUlwiLFxyXG4gIElORklOSVRZOiBcIklORklOSVRZXCIsXHJcbiAgRVRFUk5JVFk6IFwiRVRFUk5JVFlcIixcclxuICBESUxBVElPTjogXCJESUxBVElPTlwiLFxyXG4gIFJFQUxJVFk6IFwiUkVBTElUWVwiLFxyXG4gIEFVVE9NQVRJT046IFwiQVVUT01BVElPTlwiLFxyXG4gIEFDSElFVkVNRU5UOiBcIkFDSElFVkVNRU5UXCIsXHJcbn07XHJcblxyXG4vLyBUaGlzIGZ1bmN0aW9uIGlzbid0IHVzZWQgaW4tZ2FtZSwgc2VlIG5vdGUgYmVsb3cgZm9yIGl0cyBpbnRlbmRlZCB1c2FnZVxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuZnVuY3Rpb24gdmVjdG9yVG9OdW0odikge1xyXG4gIHJldHVybiBNYXRoLmZsb29yKHYueCAvIDUpICsgNDAwICogTWF0aC5mbG9vcih2LnkgLyA1KSArIDgwMjAwO1xyXG59XHJcblxyXG4vKipcclxuICogSW4gb3JkZXIgdG8gcmVkdWNlIGJvaWxlcnBsYXRlIGNvZGUgYW5kIGV4Y2Vzc2l2ZSBWZWN0b3Igb2JqZWN0IGRlY2xhcmF0aW9ucywgdGhlIG5vZGUgcG9zaXRpb25zIGluIGZpeGVkIGxheW91dHNcclxuICogYXJlIHNwZWNpZmllZCBhcyBudW1iZXJzIHdoaWNoIGFyZSBkZWNvZGVkIG9uLXRoZS1mbHkgdXNpbmcgcG9zaXRpb25OdW1Ub1ZlY3RvciBpbiBQZXJrc1RhYi52dWUuIFRoZSBmdW5jdGlvblxyXG4gKiB2ZWN0b3JUb051bSBhYm92ZSBpcyB0aGUgaW52ZXJzZSBvZiB0aGF0IGZ1bmN0aW9uLlxyXG4gKlxyXG4gKiBUbyBtYWtlIGEgbmV3IHByZXNldCBsYXlvdXQsIGRlZmluZSB2ZWN0b3JUb051bSBpbiB0aGUgY29uc29sZSwgbW92ZSBhbGwgdGhlIG5vZGVzIGFyb3VuZCBpbi1nYW1lIGFuZCB0aGVuIHJ1blxyXG4gKiAgICBPYmplY3QudmFsdWVzKFBlcmtOZXR3b3JrLm5ldHdvcmsuYm9keS5ub2RlcykuZmlsdGVyKG4gPT4gbi5lZGdlcy5sZW5ndGggIT09IDApLm1hcCh2ID0+IHZlY3RvclRvTnVtKHYpKVxyXG4gKiBpbiB0aGUgY29uc29sZSB0byBnZXQgYWxsIHRoZSBjdXJyZW50IG5vZGUgcG9zaXRpb25zLiBUaGVuLCBhcHBlbmQgdGhlIHJlc3VsdGluZyBudW1iZXJzIHRvIGVhY2ggbGF5b3V0UG9zTGlzdFxyXG4gKiBhcnJheSBiZWxvdyBhbmQgbWFrZSB0aGUgYXBwcmlwcmlhdGUgZW50cnkgaW4gUGVya0xheW91dHMuXHJcbiAqXHJcbiAqIE5vdGU6IFRoaXMgZW5jb2RpbmcvZGVjb2Rpbmcgb25seSB3b3JrcyBwcm9wZXJseSBmb3IgY29vcmRpbmF0ZXMgd2l0aCB2YWx1ZXMgYmV0d2VlbiAtMTAwMCBhbmQgMTAwMCwgYW5kIHdpbGxcclxuICogYmUgc2xpZ2h0bHkgb2ZmIGZvciB2ZWN0b3JzIHdob3NlIGNvb3JkaW5hdGVzIGFyZW4ndCBkaXZpc2libGUgYnkgNVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHBlcmtzID0ge1xyXG4gIGZpcnN0UGVyazoge1xyXG4gICAgaWQ6IDAsXHJcbiAgICBsYWJlbDogXCJTVEFSVFwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5SRUFMSVRZLFxyXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgICByZXR1cm4gYFJlbW92ZSB0aGUgYWNoaWV2ZW1lbnQgcmVxdWlyZW1lbnQgZnJvbSB0aGUgUmVhbGl0eSBTdHVkeVxyXG4gICAgICBhbmQgYWxsb3cgeW91IHRvIGNob29zZSBmcm9tICR7Zm9ybWF0SW50KDQpfSBkaWZmZXJlbnQgR2x5cGhzIG9uIFJlYWxpdHkuYDtcclxuICAgIH0sXHJcbiAgICBlZmZlY3Q6IDQsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNzY1OTYsIDgwMjAwLCA4MDYwMCwgODAyMDAsIDgwMTg4LCA2Nzc2OV0sXHJcbiAgfSxcclxuICBzdGFydEFNOiB7XHJcbiAgICBpZDogMTAsXHJcbiAgICBsYWJlbDogXCJTQU1cIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQU5USU1BVFRFUixcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBTdGFydCBldmVyeSByZXNldCB3aXRoICR7Zm9ybWF0KDVlMTMwKX0gYW50aW1hdHRlci5gO1xyXG4gICAgfSxcclxuICAgIGJ1bXBDdXJyZW5jeTogKCkgPT4gQ3VycmVuY3kuYW50aW1hdHRlci5idW1wVG8oNWUxMzApLFxyXG4gICAgZWZmZWN0OiA1ZTEzMCxcclxuICAgIGxheW91dFBvc0xpc3Q6IFs3NjU1OSwgODA2MDAsIDgwMTk5LCA4MDYwMCwgODIxOTEsIDc1NzQ1XSxcclxuICB9LFxyXG4gIHN0YXJ0SVAxOiB7XHJcbiAgICBpZDogMTIsXHJcbiAgICBsYWJlbDogXCJTSVAxXCIsXHJcbiAgICBmYW1pbHk6IFBFUktfRkFNSUxZLklORklOSVRZLFxyXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgICByZXR1cm4gYFN0YXJ0IGV2ZXJ5IEV0ZXJuaXR5IGFuZCBSZWFsaXR5IHdpdGggJHtmb3JtYXQoNWUxNSl9IEluZmluaXR5IFBvaW50cy5gO1xyXG4gICAgfSxcclxuICAgIGJ1bXBDdXJyZW5jeTogKCkgPT4gQ3VycmVuY3kuaW5maW5pdHlQb2ludHMuYnVtcFRvKDVlMTUpLFxyXG4gICAgZWZmZWN0OiA1ZTE1LFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzc0NTIzLCA4MDU5OSwgNzk3OTgsIDgwNTk5LCA4MjU5NCwgOTEzMjJdLFxyXG4gIH0sXHJcbiAgc3RhcnRJUDI6IHtcclxuICAgIGlkOiAxMyxcclxuICAgIGxhYmVsOiBcIlNJUDJcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuSU5GSU5JVFksXHJcbiAgICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICAgIHJldHVybiBgU3RhcnQgZXZlcnkgRXRlcm5pdHkgYW5kIFJlYWxpdHkgd2l0aCAke2Zvcm1hdCg1ZTEzMCl9IEluZmluaXR5IFBvaW50cy5gO1xyXG4gICAgfSxcclxuICAgIGJ1bXBDdXJyZW5jeTogKCkgPT4gQ3VycmVuY3kuaW5maW5pdHlQb2ludHMuYnVtcFRvKDVlMTMwKSxcclxuICAgIGVmZmVjdDogNWUxMzAsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNjIxMTEsIDgwNTk4LCA3OTc5NywgODA5OTgsIDgyNTk3LCA5MTY5MF0sXHJcbiAgfSxcclxuICBzdGFydEVQMToge1xyXG4gICAgaWQ6IDE0LFxyXG4gICAgbGFiZWw6IFwiU0VQMVwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5FVEVSTklUWSxcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBTdGFydCBldmVyeSBSZWFsaXR5IHdpdGggJHtmb3JtYXRJbnQoMTApfSBFdGVybml0eSBQb2ludHMuYDtcclxuICAgIH0sXHJcbiAgICBidW1wQ3VycmVuY3k6ICgpID0+IEN1cnJlbmN5LmV0ZXJuaXR5UG9pbnRzLmJ1bXBUbygxMCksXHJcbiAgICBlZmZlY3Q6IDEwLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiA1LFxyXG4gICAgc2hvcnREZXNjcmlwdGlvbjogKCkgPT4gYFN0YXJ0IHdpdGggJHtmb3JtYXRJbnQoMTApfSBFUGAsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbODg5MTUsIDgwOTk5LCA3OTM5OCwgODA1OTgsIDgyMTk3LCAxMDM3MzRdLFxyXG4gIH0sXHJcbiAgc3RhcnRFUDI6IHtcclxuICAgIGlkOiAxNSxcclxuICAgIGxhYmVsOiBcIlNFUDJcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRVRFUk5JVFksXHJcbiAgICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICAgIHJldHVybiBgU3RhcnQgZXZlcnkgUmVhbGl0eSB3aXRoICR7Zm9ybWF0KDUwMDApfSBFdGVybml0eSBQb2ludHMuYDtcclxuICAgIH0sXHJcbiAgICBidW1wQ3VycmVuY3k6ICgpID0+IEN1cnJlbmN5LmV0ZXJuaXR5UG9pbnRzLmJ1bXBUbyg1MDAwKSxcclxuICAgIGVmZmVjdDogNTAwMCxcclxuICAgIGxheW91dFBvc0xpc3Q6IFs5MjQ4NCwgODEzOTgsIDc4OTk4LCA4MDU5NywgODIyMDAsIDEwMjE5M10sXHJcbiAgfSxcclxuICBzdGFydEVQMzoge1xyXG4gICAgaWQ6IDE2LFxyXG4gICAgbGFiZWw6IFwiU0VQM1wiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5FVEVSTklUWSxcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBTdGFydCBldmVyeSBSZWFsaXR5IHdpdGggJHtmb3JtYXQoNWU5KX0gRXRlcm5pdHkgUG9pbnRzLmA7XHJcbiAgICB9LFxyXG4gICAgYnVtcEN1cnJlbmN5OiAoKSA9PiBDdXJyZW5jeS5ldGVybml0eVBvaW50cy5idW1wVG8oNWU5KSxcclxuICAgIGVmZmVjdDogNWU5LFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiAxMCxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IGBTdGFydCB3aXRoICR7Zm9ybWF0KDVlOSl9IEVQYCxcclxuICAgIGxheW91dFBvc0xpc3Q6IFs5NjQ1OSwgODE3OTgsIDc4OTk3LCA4MDU5NiwgODIyMDMsIDEwNjIyNF0sXHJcbiAgfSxcclxuICBzdGFydFRQOiB7XHJcbiAgICBpZDogMTcsXHJcbiAgICBsYWJlbDogXCJTVFBcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRElMQVRJT04sXHJcbiAgICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICAgIHJldHVybiBgQWZ0ZXIgdW5sb2NraW5nIERpbGF0aW9uLCBnYWluICR7Zm9ybWF0SW50KDEwKX0gVGFjaHlvbiBQYXJ0aWNsZXMuYDtcclxuICAgIH0sXHJcbiAgICBlZmZlY3Q6ICgpID0+IChFbnNsYXZlZC5pc1J1bm5pbmcgPyAxIDogMTApLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiA1LFxyXG4gICAgc2hvcnREZXNjcmlwdGlvbjogKCkgPT4gYFN0YXJ0IHdpdGggJHtmb3JtYXRJbnQoMTApfSBUUGAsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbMTAyMTIwLCA4MTM5OSwgNzkzOTksIDgwMTk3LCA4MTgwMCwgMTA5Mzc2XSxcclxuICB9LFxyXG4gIGFudGltYXR0ZXJOb1Jlc2V0OiB7XHJcbiAgICBpZDogMzAsXHJcbiAgICBsYWJlbDogXCJBTlJcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQU5USU1BVFRFUixcclxuICAgIGRlc2NyaXB0aW9uOiBgRGltZW5zaW9uIEJvb3N0cyBhbmQgQW50aW1hdHRlciBHYWxheGllcyBubyBsb25nZXIgcmVzZXRcclxuICAgICAgQW50aW1hdHRlciwgQW50aW1hdHRlciBEaW1lbnNpb25zLCBUaWNrc3BlZWQsIG9yIERpbWVuc2lvbmFsIFNhY3JpZmljZS5gLFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzg1MzQzLCA4MTAwMCwgNzk3OTksIDgwMTk5LCA4MjE5NCwgOTI1NTNdLFxyXG4gIH0sXHJcbiAgc3R1ZHlQYXNzaXZlOiB7XHJcbiAgICBpZDogMzEsXHJcbiAgICBsYWJlbDogXCJQQVNTXCIsXHJcbiAgICBmYW1pbHk6IFBFUktfRkFNSUxZLkVURVJOSVRZLFxyXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgICByZXR1cm4gYEltcHJvdmUgVGltZSBTdHVkeSAxMjIgdG8gJHtmb3JtYXRYKDUwKX0gRXRlcm5pdHkgUG9pbnRzIGFuZFxyXG4gICAgICAgIFRpbWUgU3R1ZHkgMTQyIHRvICR7Zm9ybWF0WChEQy5FNTApfSBJbmZpbml0eSBQb2ludHMuXHJcbiAgICAgICAgJHtQZWxsZS5pc0Rvb21lZCA/IFwiXCIgOiBgSW4gYWRkaXRpb24sIFRpbWUgU3R1ZHkgMTMyIGFsc28gbWFrZXMgUmVwbGljYW50aSAke2Zvcm1hdCgzKX0gdGltZXMgZmFzdGVyLmB9YDtcclxuICAgIH0sXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNjcwNTQsIDc5NDAwLCA4MDk5OSwgODAyMDIsIDc4NTk0LCA1MjU4OV0sXHJcbiAgfSxcclxuICBhdXRvdW5sb2NrRVUxOiB7XHJcbiAgICBpZDogNDAsXHJcbiAgICBsYWJlbDogXCJFVTFcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRVRFUk5JVFksXHJcbiAgICBkZXNjcmlwdGlvbjogYEF1dG9tYXRpY2FsbHkgdW5sb2NrIHRoZSBmaXJzdCByb3cgb2YgRXRlcm5pdHkgVXBncmFkZXMgZm9yIGZyZWUgb25jZSB5b3UgaGF2ZSBFdGVybml0aWVzLmAsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbODk0MDcsIDgwNjAxLCA4MDIwMSwgNzk4MDAsIDgwNTkxLCA3MzAwN10sXHJcbiAgfSxcclxuICBhdXRvdW5sb2NrRVUyOiB7XHJcbiAgICBpZDogNDEsXHJcbiAgICBsYWJlbDogXCJFVTJcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRVRFUk5JVFksXHJcbiAgICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICAgIHJldHVybiBgVGhlIHNlY29uZCByb3cgb2YgRXRlcm5pdHkgVXBncmFkZXMgaXMgYXV0b21hdGljYWxseSBwdXJjaGFzZWRcclxuICAgICAgICBhdCAke2Zvcm1hdFgoMWUxMCl9IHRpbWVzIGxlc3MgdGhhbiB0aGVpciBvcmlnaW5hbCBwcmljZS5gO1xyXG4gICAgfSxcclxuICAgIGxheW91dFBvc0xpc3Q6IFsxMDMwMDgsIDgxMDAxLCA4MDIwMiwgNzk0MDAsIDgwNTk0LCA4MTg2N10sXHJcbiAgfSxcclxuICBhdXRvdW5sb2NrRGlsYXRpb24xOiB7XHJcbiAgICBpZDogNDIsXHJcbiAgICBsYWJlbDogXCJEVTFcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRElMQVRJT04sXHJcbiAgICBkZXNjcmlwdGlvbjogXCJBZnRlciB1bmxvY2tpbmcgRGlsYXRpb24sIGF1dG9tYXRpY2FsbHkgdW5sb2NrIHRoZSBzZWNvbmQgcm93IG9mIERpbGF0aW9uIFVwZ3JhZGVzIGZvciBmcmVlLlwiLFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzExOTgzMywgODE4MDEsIDc5NDAzLCA3OTM5OCwgODAyMDAsIDk3NTEwXSxcclxuICB9LFxyXG4gIGF1dG91bmxvY2tEaWxhdGlvbjI6IHtcclxuICAgIGlkOiA0MyxcclxuICAgIGxhYmVsOiBcIkRVMlwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5ESUxBVElPTixcclxuICAgIGRlc2NyaXB0aW9uOiBcIkFmdGVyIHVubG9ja2luZyBEaWxhdGlvbiwgYXV0b21hdGljYWxseSB1bmxvY2sgdGhlIHRoaXJkIHJvdyBvZiBEaWxhdGlvbiBVcGdyYWRlcyBmb3IgZnJlZS5cIixcclxuICAgIGxheW91dFBvc0xpc3Q6IFsxMjQyNjAsIDgyMjAxLCA3OTAwMywgNzkzOTcsIDgwMjAzLCA4NTUxM10sXHJcbiAgfSxcclxuICBhdXRvdW5sb2NrRGlsYXRpb24zOiB7XHJcbiAgICBpZDogNDQsXHJcbiAgICBsYWJlbDogXCJBVFRcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRElMQVRJT04sXHJcbiAgICBkZXNjcmlwdGlvbjogXCJBdXRvbWF0aWNhbGx5IHB1cmNoYXNlIHRoZSBwYXNzaXZlIFRpbWUgVGhlb3JlbSBnZW5lcmF0aW9uIERpbGF0aW9uIFVwZ3JhZGUgb25jZSB5b3UgY2FuIGFmZm9yZCBpdC5cIixcclxuICAgIGF1dG9tYXRvclBvaW50czogNSxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IFwiQXV0by1wdXJjaGFzZSBUVCBnZW5lcmF0aW9uXCIsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbMTI0Mjg5LCA4MjYwMSwgNzkwMDIsIDc5Mzk2LCA4MDIwNiwgNzIyODJdLFxyXG4gIH0sXHJcbiAgYXV0b3VubG9ja1REOiB7XHJcbiAgICBpZDogNDUsXHJcbiAgICBsYWJlbDogXCJBVERcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRElMQVRJT04sXHJcbiAgICBkZXNjcmlwdGlvbjogXCJBdXRvLXVubG9jayBUaW1lIERpbWVuc2lvbnMgNS04IG9uY2UgeW91IGNhbiBhZmZvcmQgdGhlbS5cIixcclxuICAgIGF1dG9tYXRvclBvaW50czogNSxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IFwiQXV0by11bmxvY2sgVEQgNS04XCIsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbMTI3MTE3LCA4MjYwMCwgNzkwMDEsIDc5Nzk2LCA4MDIwOSwgNjE4NjldLFxyXG4gIH0sXHJcbiAgYXV0b3VubG9ja1JlYWxpdHk6IHtcclxuICAgIGlkOiA0NixcclxuICAgIGxhYmVsOiBcIlJFQUxcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuUkVBTElUWSxcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBBdXRvLXVubG9ja3MgUmVhbGl0eSBvbmNlIHlvdSBoYXZlICR7Zm9ybWF0KERDLkU0MDAwKX0gRXRlcm5pdHkgUG9pbnRzXHJcbiAgICAgICAgYW5kIGhhdmUgdW5sb2NrZWQgVGltZSBEaW1lbnNpb24gOC5gO1xyXG4gICAgfSxcclxuICAgIGF1dG9tYXRvclBvaW50czogMTAsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBcIkF1dG8tdW5sb2NrIFJlYWxpdHlcIixcclxuICAgIGxheW91dFBvc0xpc3Q6IFsxMjQzNDMsIDgzMDAwLCA3OTAwMCwgNzk3OTUsIDgwMjEyLCA3MTA0Nl0sXHJcbiAgfSxcclxuICBieXBhc3NJREFudGltYXR0ZXI6IHtcclxuICAgIGlkOiA1MSxcclxuICAgIGxhYmVsOiBcIklEUlwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5JTkZJTklUWSxcclxuICAgIGRlc2NyaXB0aW9uOiBcIkluZmluaXR5IERpbWVuc2lvbnMgbm8gbG9uZ2VyIGhhdmUgYW50aW1hdHRlciByZXF1aXJlbWVudHMuXCIsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNTEzMTcsIDgwOTk4LCA3OTM5NywgODA5OTcsIDgyNjAwLCAxMDQ0ODldLFxyXG4gIH0sXHJcbiAgYnlwYXNzVEdSZXNldDoge1xyXG4gICAgaWQ6IDUyLFxyXG4gICAgbGFiZWw6IFwiVEdSXCIsXHJcbiAgICBmYW1pbHk6IFBFUktfRkFNSUxZLkRJTEFUSU9OLFxyXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIDJuZCByZWJ1eWFibGUgRGlsYXRpb24gVXBncmFkZSBubyBsb25nZXIgcmVzZXRzIHlvdXIgRGlsYXRlZCBUaW1lLlwiLFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzExNjU2OCwgODE4MDAsIDc5ODAxLCA3OTc5OCwgODE0MDAsIDExMjY3N10sXHJcbiAgfSxcclxuICBieXBhc3NFQ0RpbGF0aW9uOiB7XHJcbiAgICBpZDogNTMsXHJcbiAgICBsYWJlbDogXCJESUxSXCIsXHJcbiAgICBmYW1pbHk6IFBFUktfRkFNSUxZLkRJTEFUSU9OLFxyXG4gICAgZGVzY3JpcHRpb246IFwiUmVtb3ZlIHRoZSBFdGVybml0eSBDaGFsbGVuZ2UgMTEsIEV0ZXJuaXR5IENoYWxsZW5nZSAxMiwgYW5kIHRvdGFsIFRpbWUgVGhlb3JlbSBcIiArXHJcbiAgICAgIFwicmVxdWlyZW1lbnRzIGZyb20gVGltZSBEaWxhdGlvbiB1bmxvY2suXCIsXHJcbiAgICBhdXRvbWF0b3JQb2ludHM6IDUsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBgVW5sb2NraW5nIERpbGF0aW9uIG9ubHkgcmVxdWlyZXMgVFRgLFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzEyOTAxMSwgODE4MDIsIDgwMjAzLCA4MDE5OCwgODA2MDAsIDEwOTExNl0sXHJcbiAgfSxcclxuICBieXBhc3NFQzFMb2NrOiB7XHJcbiAgICBpZDogNTQsXHJcbiAgICBsYWJlbDogXCJFQzFSXCIsXHJcbiAgICBmYW1pbHk6IFBFUktfRkFNSUxZLkVURVJOSVRZLFxyXG4gICAgZGVzY3JpcHRpb246IFwiUmVtb3ZlIHRoZSBFdGVybml0eSBDaGFsbGVuZ2UgMSByZXF1aXJlbWVudCBmcm9tIFRpbWUgU3R1ZHkgMTgxLlwiLFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzY0Mjg0LCA3OTAwMCwgODEzOTksIDgwNjAzLCA3ODU5NywgNDQxNjddLFxyXG4gIH0sXHJcbiAgYnlwYXNzRUMyTG9jazoge1xyXG4gICAgaWQ6IDU1LFxyXG4gICAgbGFiZWw6IFwiRUMyUlwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5FVEVSTklUWSxcclxuICAgIGRlc2NyaXB0aW9uOiBcIlJlbW92ZSB0aGUgRXRlcm5pdHkgQ2hhbGxlbmdlIDIgcmVxdWlyZW1lbnQgZnJvbSBUaW1lIFN0dWR5IDE4MS5cIixcclxuICAgIGxheW91dFBvc0xpc3Q6IFs1NTQ2MywgNzg5OTksIDgwOTk4LCA4MDYwMiwgNzgxOTcsIDQ4OTQ0XSxcclxuICB9LFxyXG4gIGJ5cGFzc0VDM0xvY2s6IHtcclxuICAgIGlkOiA1NixcclxuICAgIGxhYmVsOiBcIkVDM1JcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRVRFUk5JVFksXHJcbiAgICBkZXNjcmlwdGlvbjogXCJSZW1vdmUgdGhlIEV0ZXJuaXR5IENoYWxsZW5nZSAzIHJlcXVpcmVtZW50IGZyb20gVGltZSBTdHVkeSAxODEuXCIsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNzU0NzUsIDc5MDAxLCA4MTQwMCwgODAyMDMsIDc4OTk3LCA0NzgyMl0sXHJcbiAgfSxcclxuICBieXBhc3NFQzVMb2NrOiB7XHJcbiAgICBpZDogNTcsXHJcbiAgICBsYWJlbDogXCJFQzVSXCIsXHJcbiAgICBmYW1pbHk6IFBFUktfRkFNSUxZLkVURVJOSVRZLFxyXG4gICAgZGVzY3JpcHRpb246IFwiUmVtb3ZlIHRoZSBFdGVybml0eSBDaGFsbGVuZ2UgNSByZXF1aXJlbWVudCBmcm9tIFRpbWUgU3R1ZHkgNjIuXCIsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNzA2MjYsIDc5ODAwLCA4MTAwMCwgODAyMDEsIDc4NTkxLCA2MjYwN10sXHJcbiAgfSxcclxuICBhdXRvY29tcGxldGVFQzE6IHtcclxuICAgIGlkOiA2MCxcclxuICAgIGxhYmVsOiBcIlBFQzFcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQVVUT01BVElPTixcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBBdXRvLWNvbXBsZXRlIG9uZSBFdGVybml0eSBDaGFsbGVuZ2UgZXZlcnkgJHtmb3JtYXRJbnQoNjApfSBtaW51dGVzIChyZWFsLXRpbWUpLlxyXG4gICAgICAgICAgICAgIEVDcyB3aWxsIGJlIGNvbXBsZXRlZCBzZXF1ZW50aWFsbHksIHJlcXVpcmluZyBhbGwgcHJldmlvdXNcclxuICAgICAgICAgICAgICBFQ3MgdG8gYmUgZnVsbHkgY29tcGxldGVkIGJlZm9yZSBwcm9ncmVzc2luZyB0byB0aGUgbmV4dCBFQy5gO1xyXG4gICAgfSxcclxuICAgIGVmZmVjdDogNjAsXHJcbiAgICBhdXRvbWF0b3JQb2ludHM6IDUsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBgQXV0by1jb21wbGV0ZSBFQ3MgZXZlcnkgJHtmb3JtYXRJbnQoNjApfSBtaW51dGVzYCxcclxuICAgIGxheW91dFBvc0xpc3Q6IFs5MDY2MCwgNzk0MDIsIDgxMDAyLCA3OTgwMywgNzkzOTcsIDQ2NjY0XSxcclxuICB9LFxyXG4gIGF1dG9jb21wbGV0ZUVDMjoge1xyXG4gICAgaWQ6IDYxLFxyXG4gICAgbGFiZWw6IFwiUEVDMlwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5BVVRPTUFUSU9OLFxyXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgICByZXR1cm4gYEF1dG8tY29tcGxldGUgb25lIEV0ZXJuaXR5IENoYWxsZW5nZSBldmVyeSAke2Zvcm1hdEludCg0MCl9IG1pbnV0ZXMgKHJlYWwtdGltZSkuXHJcbiAgICAgICAgKCR7Zm9ybWF0SW50KDIwKX0gbWludXRlIGRlY3JlYXNlKWA7XHJcbiAgICB9LFxyXG4gICAgZWZmZWN0OiA0MCxcclxuICAgIGxheW91dFBvc0xpc3Q6IFs5NTQ4NSwgNzkwMDIsIDgxNDAyLCA3OTgwNCwgNzk0MDAsIDUzNDg2XSxcclxuICB9LFxyXG4gIGF1dG9jb21wbGV0ZUVDMzoge1xyXG4gICAgaWQ6IDYyLFxyXG4gICAgbGFiZWw6IFwiUEVDM1wiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5BVVRPTUFUSU9OLFxyXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgICByZXR1cm4gYEF1dG8tY29tcGxldGUgb25lIEV0ZXJuaXR5IENoYWxsZW5nZSBldmVyeSAke2Zvcm1hdEludCgyMCl9IG1pbnV0ZXMgKHJlYWwtdGltZSkuXHJcbiAgICAgICAgKCR7Zm9ybWF0SW50KDIwKX0gbWludXRlIGRlY3JlYXNlKWA7XHJcbiAgICB9LFxyXG4gICAgZWZmZWN0OiAyMCxcclxuICAgIGF1dG9tYXRvclBvaW50czogMTAsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBgQXV0by1jb21wbGV0ZSBFQ3MgZXZlcnkgJHtmb3JtYXRJbnQoMjApfSBtaW51dGVzYCxcclxuICAgIGxheW91dFBvc0xpc3Q6IFs5NjMxMSwgNzg2MDIsIDgxNDAxLCA4MDIwNCwgNzk0MDMsIDYxOTAzXSxcclxuICB9LFxyXG4gIHN0dWR5QWN0aXZlRVA6IHtcclxuICAgIGlkOiA3MCxcclxuICAgIGxhYmVsOiBcIkFDVFwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5FVEVSTklUWSxcclxuICAgIGRlc2NyaXB0aW9uOiBcIkFjdGl2ZSBwYXRoIG11bHRpcGxpZXJzIGFyZSBhbHdheXMgbWF4aW1pemVkLlwiLFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzU2NjMzLCA3OTM5OSwgODA1OTksIDgwNjAxLCA3ODE5NCwgNTg1NjVdLFxyXG4gIH0sXHJcbiAgc3R1ZHlJZGxlRVA6IHtcclxuICAgIGlkOiA3MSxcclxuICAgIGxhYmVsOiBcIklETFwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5FVEVSTklUWSxcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBJZGxlIHBhdGggbXVsdGlwbGllcnMgc3RhcnQgYXMgaWYgeW91IGhhdmUgc3BlbnQgJHtmb3JtYXRJbnQoMTUpfSBtaW51dGVzIGluIHRoaXMgSW5maW5pdHkvRXRlcm5pdHkuYDtcclxuICAgIH0sXHJcbiAgICBlZmZlY3Q6IDE1LFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzgwMjQ4LCA3OTQwMSwgODEwMDEsIDc5ODAyLCA3ODk5NCwgNTYyMzldLFxyXG4gIH0sXHJcbiAgc3R1ZHlFQ1JlcXVpcmVtZW50OiB7XHJcbiAgICBpZDogNzIsXHJcbiAgICBsYWJlbDogXCJFQ1JcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRVRFUk5JVFksXHJcbiAgICBkZXNjcmlwdGlvbjogXCJSZW1vdmUgbm9uLVRpbWUgVGhlb3JlbSByZXF1aXJlbWVudHMgZm9yIHVubG9ja2luZyBFdGVybml0eSBDaGFsbGVuZ2VzLlwiLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiAxMCxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IFwiUmVtb3ZlIEVDIHNlY29uZGFyeSByZXF1aXJlbWVudHNcIixcclxuICAgIGxheW91dFBvc0xpc3Q6IFs2MjcxNCwgNzg2MDAsIDgxMzk4LCA4MDYwNCwgNzg2MDAsIDQwNTk5XSxcclxuICB9LFxyXG4gIHN0dWR5RUNCdWxrOiB7XHJcbiAgICBpZDogNzMsXHJcbiAgICBsYWJlbDogXCJFQ0JcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRVRFUk5JVFksXHJcbiAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgYFlvdSBjYW4gY29tcGxldGUgbXVsdGlwbGUgdGllcnMgb2YgRXRlcm5pdHkgQ2hhbGxlbmdlcyBhdCBvbmNlIGlmXHJcbiAgICAgIHlvdSByZWFjaCB0aGUgZ29hbCBmb3IgYSBoaWdoZXIgY29tcGxldGlvbiBvZiB0aGF0IGNoYWxsZW5nZS5gLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiAxNSxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IFwiQnVsayBFQyBDb21wbGV0aW9uXCIsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNjI3NDEsIDc4MjAwLCA4MTM5NywgODEwMDQsIDc4NjAzLCA0MTQzNV0sXHJcbiAgfSxcclxuICByZXRyb2FjdGl2ZVRQMToge1xyXG4gICAgaWQ6IDgwLFxyXG4gICAgbGFiZWw6IFwiVFAxXCIsXHJcbiAgICBmYW1pbHk6IFBFUktfRkFNSUxZLkRJTEFUSU9OLFxyXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgICByZXR1cm4gYFdoZW4gYnV5aW5nIHRoZSAzcmQgcmVidXlhYmxlIERpbGF0aW9uIFVwZ3JhZGUsXHJcbiAgICAgICAgbXVsdGlwbHkgeW91ciBjdXJyZW50IFRhY2h5b24gUGFydGljbGUgYW1vdW50IGJ5ICR7Zm9ybWF0RmxvYXQoMS41LCAxKX0uYDtcclxuICAgIH0sXHJcbiAgICBlZmZlY3Q6IDEuNSxcclxuICAgIGxheW91dFBvc0xpc3Q6IFsxMTE3MzksIDgxNzk5LCA3OTgwMCwgNzk3OTcsIDgxNDAzLCAxMTU0MzRdLFxyXG4gIH0sXHJcbiAgcmV0cm9hY3RpdmVUUDI6IHtcclxuICAgIGlkOiA4MSxcclxuICAgIGxhYmVsOiBcIlRQMlwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5ESUxBVElPTixcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBXaGVuIGJ1eWluZyB0aGUgM3JkIHJlYnV5YWJsZSBEaWxhdGlvbiBVcGdyYWRlLFxyXG4gICAgICAgIG11bHRpcGx5IHlvdXIgY3VycmVudCBUYWNoeW9uIFBhcnRpY2xlIGFtb3VudCBieSAke2Zvcm1hdEludCgyKX0uYDtcclxuICAgIH0sXHJcbiAgICBlZmZlY3Q6IDIsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbMTAzNzU3LCA4MjE5OSwgNzk0MDEsIDgwMTk2LCA4MTQwNiwgMTE3MzgyXSxcclxuICB9LFxyXG4gIHJldHJvYWN0aXZlVFAzOiB7XHJcbiAgICBpZDogODIsXHJcbiAgICBsYWJlbDogXCJUUDNcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRElMQVRJT04sXHJcbiAgICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICAgIHJldHVybiBgV2hlbiBidXlpbmcgdGhlIDNyZCByZWJ1eWFibGUgRGlsYXRpb24gVXBncmFkZSxcclxuICAgICAgICBtdWx0aXBseSB5b3VyIGN1cnJlbnQgVGFjaHlvbiBQYXJ0aWNsZSBhbW91bnQgYnkgJHtmb3JtYXRGbG9hdCgyLjUsIDEpfS5gO1xyXG4gICAgfSxcclxuICAgIGVmZmVjdDogMi41LFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzk2MTc1LCA4MjU5OSwgNzk0MDAsIDgwMTk1LCA4MTQwOSwgMTE2NTQwXSxcclxuICB9LFxyXG4gIHJldHJvYWN0aXZlVFA0OiB7XHJcbiAgICBpZDogODMsXHJcbiAgICBsYWJlbDogXCJUUDRcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuRElMQVRJT04sXHJcbiAgICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICAgIHJldHVybiBgV2hlbiBidXlpbmcgdGhlIDNyZCByZWJ1eWFibGUgRGlsYXRpb24gVXBncmFkZSxcclxuICAgICAgICBtdWx0aXBseSB5b3VyIGN1cnJlbnQgVGFjaHlvbiBQYXJ0aWNsZSBhbW91bnQgYnkgJHtmb3JtYXRJbnQoMyl9LmA7XHJcbiAgICB9LFxyXG4gICAgZWZmZWN0OiAzLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiAxMCxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IGAke2Zvcm1hdFgoMyl9IFRQIHVwZ3JhZGUgYXBwbGllcyByZXRyb2FjdGl2ZWx5YCxcclxuICAgIGxheW91dFBvc0xpc3Q6IFs4Njk4NCwgODI1OTgsIDc4OTk5LCA4MDU5NSwgODE0MTIsIDExNDEwM10sXHJcbiAgfSxcclxuICBhdXRvYnV5ZXJEaWxhdGlvbjoge1xyXG4gICAgaWQ6IDEwMCxcclxuICAgIGxhYmVsOiBcIkRBVVwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5BVVRPTUFUSU9OLFxyXG4gICAgZGVzY3JpcHRpb246IFwiVW5sb2NrIGF1dG9idXllcnMgZm9yIHRoZSByZXBlYXRhYmxlIERpbGF0aW9uIFVwZ3JhZGVzLlwiLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiA1LFxyXG4gICAgc2hvcnREZXNjcmlwdGlvbjogKCkgPT4gXCJEaWxhdGlvbiBVcGdyYWRlIEF1dG9idXllcnNcIixcclxuICAgIGxheW91dFBvc0xpc3Q6IFsxMTc0MDEsIDgxNDAxLCA3OTgwMiwgNzk3OTksIDgwNTk3LCA5NjY3Ml0sXHJcbiAgfSxcclxuICBhdXRvYnV5ZXJGYXN0ZXJJRDoge1xyXG4gICAgaWQ6IDEwMSxcclxuICAgIGxhYmVsOiBcIklEQVNcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQVVUT01BVElPTixcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBJbmZpbml0eSBEaW1lbnNpb24gYXV0b2J1eWVycyB3b3JrICR7Zm9ybWF0WCgzKX0gZmFzdGVyLmA7XHJcbiAgICB9LFxyXG4gICAgZWZmZWN0OiAxIC8gMyxcclxuICAgIGF1dG9tYXRvclBvaW50czogNSxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IFwiRmFzdGVyIElEIEF1dG9idXllcnNcIixcclxuICAgIGxheW91dFBvc0xpc3Q6IFs3NDA5NSwgODAxOTksIDgwMTk4LCA4MTAwMCwgODI5OTcsIDc3NzIwXSxcclxuICB9LFxyXG4gIGF1dG9idXllckZhc3RlclJlcGxpY2FudGk6IHtcclxuICAgIGlkOiAxMDIsXHJcbiAgICBsYWJlbDogXCJSRVBBU1wiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5BVVRPTUFUSU9OLFxyXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgICByZXR1cm4gYFJlcGxpY2FudGkgYXV0b2J1eWVycyB3b3JrICR7Zm9ybWF0WCgzKX0gZmFzdGVyLmA7XHJcbiAgICB9LFxyXG4gICAgZWZmZWN0OiAxIC8gMyxcclxuICAgIGF1dG9tYXRvclBvaW50czogNSxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IFwiRmFzdGVyIFJlcGxpY2FudGkgQXV0b2J1eWVyc1wiLFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzU3Njg1LCA4MDE5OCwgODAxOTcsIDgwOTk5LCA4MzAwMCwgNzkyOTddLFxyXG4gIH0sXHJcbiAgYXV0b2J1eWVyRmFzdGVyRGlsYXRpb246IHtcclxuICAgIGlkOiAxMDMsXHJcbiAgICBsYWJlbDogXCJEQVNcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQVVUT01BVElPTixcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBEaWxhdGlvbiBVcGdyYWRlIGF1dG9idXllcnMgd29yayAke2Zvcm1hdFgoMyl9IGZhc3Rlci5gO1xyXG4gICAgfSxcclxuICAgIGVmZmVjdDogMSAvIDMsXHJcbiAgICBhdXRvbWF0b3JQb2ludHM6IDUsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBcIkZhc3RlciBEaWxhdGlvbiBBdXRvYnV5ZXJzXCIsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbMTEzODk1LCA4MjYwMiwgNzk0MDIsIDc5Mzk1LCA4MDYwOSwgNzI3MTVdLFxyXG4gIH0sXHJcbiAgdHRCdXlTaW5nbGU6IHtcclxuICAgIGlkOiAxMDQsXHJcbiAgICBsYWJlbDogXCJUVFNcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQVVUT01BVElPTixcclxuICAgIGRlc2NyaXB0aW9uOiBcIlVubG9jayBhIFRpbWUgVGhlb3JlbSBBdXRvYnV5ZXIgd2hpY2ggYnV5cyBzaW5nbGUgVGltZSBUaGVvcmVtcyBldmVyeSB0aWNrLlwiLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiA1LFxyXG4gICAgc2hvcnREZXNjcmlwdGlvbjogKCkgPT4gXCJTaW5nbGUgVFQgQXV0b2J1eWVyXCIsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNDQ2MzEsIDc5Mzk4LCA4MDU5OCwgODEwMDEsIDc3Nzk3LCA1NzMyNV0sXHJcbiAgfSxcclxuICB0dEZyZWU6IHtcclxuICAgIGlkOiAxMDUsXHJcbiAgICBsYWJlbDogXCJUVEZcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQVVUT01BVElPTixcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBQdXJjaGFzaW5nIFRpbWUgVGhlb3JlbXMgbm8gbG9uZ2VyIHNwZW5kcyB5b3VyIEFudGltYXR0ZXIsIEluZmluaXR5IFBvaW50cywgb3IgRXRlcm5pdHkgUG9pbnRzLmA7XHJcbiAgICB9LFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzMzODQwLCA3ODk5OCwgODA1OTcsIDgxMDAyLCA3NzgwMCwgNjczMDldLFxyXG4gIH0sXHJcbiAgdHRCdXlNYXg6IHtcclxuICAgIGlkOiAxMDYsXHJcbiAgICBsYWJlbDogXCJUVE1cIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQVVUT01BVElPTixcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBVcGdyYWRlIHRoZSBUaW1lIFRoZW9yZW0gQXV0b2J1eWVyIHRvIGJ1eSBtYXggVGltZSBUaGVvcmVtcy5gO1xyXG4gICAgfSxcclxuICAgIGF1dG9tYXRvclBvaW50czogMTAsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBcIk1heCBUVCBBdXRvYnV5ZXJcIixcclxuICAgIGxheW91dFBvc0xpc3Q6IFsyNTA1NSwgNzg1OTgsIDgwOTk3LCA4MTAwMywgNzc4MDMsIDY1NzM5XSxcclxuICB9LFxyXG4gIGRpbGF0aW9uQXV0b2J1eWVyQnVsazoge1xyXG4gICAgaWQ6IDEwNyxcclxuICAgIGxhYmVsOiBcIkRBQlwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5BVVRPTUFUSU9OLFxyXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgICByZXR1cm4gYERpbGF0aW9uIFVwZ3JhZGUgYXV0b2J1eWVycyBidXkgdGhyZWUgdGltZXMgYXMgbWFueSBEaWxhdGlvbiBVcGdyYWRlcyBhdCBvbmNlLmA7XHJcbiAgICB9LFxyXG4gICAgZWZmZWN0OiAzLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiA1LFxyXG4gICAgc2hvcnREZXNjcmlwdGlvbjogKCkgPT4gXCJEaWxhdGlvbiBBdXRvYnV5ZXIgYnVsa1wiLFxyXG4gICAgbGF5b3V0UG9zTGlzdDogWzEyNzM4NCwgODE0MDAsIDc5ODAzLCA3OTM5OSwgODEwMDAsIDEwMzA0OF0sXHJcbiAgfSxcclxuICBhY2hpZXZlbWVudEdyb3VwMToge1xyXG4gICAgaWQ6IDIwMSxcclxuICAgIGxhYmVsOiBcIkFDSDFcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQUNISUVWRU1FTlQsXHJcbiAgICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICAgIHJldHVybiBgUmVkdWNlIHRoZSBBY2hpZXZlbWVudCB0aW1lciB0byAke2Zvcm1hdEludCgyMCl9IG1pbnV0ZXMgcGVyXHJcbiAgICAgICAgQWNoaWV2ZW1lbnQgKCR7Zm9ybWF0SW50KDEwKX0gbWludXRlIGRlY3JlYXNlKS5gO1xyXG4gICAgfSxcclxuICAgIGVmZmVjdDogMTAsXHJcbiAgICBhdXRvbWF0b3JQb2ludHM6IDUsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBgRmFzdGVyIEFjaGlldmVtZW50czogZXZlcnkgJHtmb3JtYXRJbnQoMjApfSBtaW51dGVzYCxcclxuICAgIGxheW91dFBvc0xpc3Q6IFs2NTM4NiwgODAyMDEsIDgwNjAxLCA3OTgwMSwgNzk3OTEsIDgxMzcxXSxcclxuICB9LFxyXG4gIGFjaGlldmVtZW50R3JvdXAyOiB7XHJcbiAgICBpZDogMjAyLFxyXG4gICAgbGFiZWw6IFwiQUNIMlwiLFxyXG4gICAgZmFtaWx5OiBQRVJLX0ZBTUlMWS5BQ0hJRVZFTUVOVCxcclxuICAgIGdldCBkZXNjcmlwdGlvbigpIHtcclxuICAgICAgcmV0dXJuIGBSZWR1Y2UgdGhlIEFjaGlldmVtZW50IHRpbWVyIHRvICR7Zm9ybWF0SW50KDEyKX0gbWludXRlcyBwZXJcclxuICAgICAgICBBY2hpZXZlbWVudCAoJHtmb3JtYXRJbnQoOCl9IG1pbnV0ZSBkZWNyZWFzZSkuYDtcclxuICAgIH0sXHJcbiAgICBlZmZlY3Q6IDgsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNTQ5NzYsIDgwMjAyLCA4MDYwMiwgNzk0MDEsIDc5Nzk0LCA5Mzc4MF0sXHJcbiAgfSxcclxuICBhY2hpZXZlbWVudEdyb3VwMzoge1xyXG4gICAgaWQ6IDIwMyxcclxuICAgIGxhYmVsOiBcIkFDSDNcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQUNISUVWRU1FTlQsXHJcbiAgICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICAgIHJldHVybiBgUmVkdWNlIHRoZSBBY2hpZXZlbWVudCB0aW1lciB0byAke2Zvcm1hdEludCg2KX0gbWludXRlcyBwZXJcclxuICAgICAgICBBY2hpZXZlbWVudCAoJHtmb3JtYXRJbnQoNil9IG1pbnV0ZSBkZWNyZWFzZSkuYDtcclxuICAgIH0sXHJcbiAgICBlZmZlY3Q6IDYsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbNDQxNjgsIDgwNjAyLCA4MDYwMywgNzk0MDIsIDc5Nzk3LCA4MzAwNV0sXHJcbiAgfSxcclxuICBhY2hpZXZlbWVudEdyb3VwNDoge1xyXG4gICAgaWQ6IDIwNCxcclxuICAgIGxhYmVsOiBcIkFDSDRcIixcclxuICAgIGZhbWlseTogUEVSS19GQU1JTFkuQUNISUVWRU1FTlQsXHJcbiAgICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICAgIHJldHVybiBgUmVkdWNlIHRoZSBBY2hpZXZlbWVudCB0aW1lciB0byAke2Zvcm1hdEludCgyKX0gbWludXRlcyBwZXJcclxuICAgICAgICBBY2hpZXZlbWVudCAoJHtmb3JtYXRJbnQoNCl9IG1pbnV0ZSBkZWNyZWFzZSkuYDtcclxuICAgIH0sXHJcbiAgICBlZmZlY3Q6IDQsXHJcbiAgICBsYXlvdXRQb3NMaXN0OiBbMzM3NjAsIDgxMDAyLCA4MTAwMywgNzk0MDMsIDc5ODAwLCA5NTQyMl0sXHJcbiAgfSxcclxuICBhY2hpZXZlbWVudEdyb3VwNToge1xyXG4gICAgaWQ6IDIwNSxcclxuICAgIGxhYmVsOiBcIkFDSE5SXCIsXHJcbiAgICBmYW1pbHk6IFBFUktfRkFNSUxZLkFDSElFVkVNRU5ULFxyXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgICByZXR1cm4gYEltbWVkaWF0ZWx5IHVubG9jayB0aGUgZmlyc3QgJHtmb3JtYXRJbnQoMTMpfSByb3dzIG9mIEFjaGlldmVtZW50c1xyXG4gICAgICAgIGFuZCBSZWFsaXR5IG5vIGxvbmdlciByZXNldHMgdGhlbS5gO1xyXG4gICAgfSxcclxuICAgIGF1dG9tYXRvclBvaW50czogMTAsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBcIktlZXAgQWNoaWV2ZW1lbnRzIG9uIFJlYWxpdHlcIixcclxuICAgIGxheW91dFBvc0xpc3Q6IFsyMzM1MywgODE0MDIsIDgxNDAzLCA3OTQwNCwgNzk4MDMsIDg0NjM5XSxcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgcGVya0Nvbm5lY3Rpb25zID0gKGZ1bmN0aW9uKCkge1xyXG4gIGNvbnN0IHAgPSBwZXJrcztcclxuICAvLyBGaXJzdCBpdGVtIGlzIHRoZSBzdGFydCwgb3RoZXIgaXRlbXMgYXJlIHRoZSBlbmRzXHJcbiAgY29uc3QgZ3JvdXBzID0gW1xyXG4gICAgW3AuZmlyc3RQZXJrLCBwLmFjaGlldmVtZW50R3JvdXAxLCBwLnN0YXJ0QU0sIHAuYXV0b3VubG9ja0VVMSwgcC5ieXBhc3NFQzVMb2NrXSxcclxuICAgIFtwLnN0YXJ0QU0sIHAuYW50aW1hdHRlck5vUmVzZXQsIHAuc3RhcnRJUDFdLFxyXG4gICAgW3AuYW50aW1hdHRlck5vUmVzZXQsIHAuc3RhcnRFUDFdLFxyXG4gICAgW3Auc3RhcnRJUDEsIHAuc3RhcnRJUDIsIHAuc3RhcnRFUDEsIHAuYXV0b2J1eWVyRmFzdGVySURdLFxyXG4gICAgW3Auc3RhcnRJUDIsIHAuYnlwYXNzSURBbnRpbWF0dGVyLCBwLmF1dG9idXllckZhc3RlclJlcGxpY2FudGldLFxyXG4gICAgW3Auc3RhcnRFUDEsIHAuc3RhcnRFUDIsIHAuc3RhcnRUUF0sXHJcbiAgICBbcC5zdGFydEVQMiwgcC5zdGFydEVQM10sXHJcbiAgICBbcC5zdGFydFRQLCBwLnN0YXJ0RVAxLCBwLnJldHJvYWN0aXZlVFAxXSxcclxuICAgIFtwLmF1dG91bmxvY2tFVTEsIHAuYXV0b3VubG9ja0VVMl0sXHJcbiAgICBbcC5hdXRvdW5sb2NrRVUyLCBwLmF1dG91bmxvY2tFVTEsIHAuYXV0b2J1eWVyRGlsYXRpb25dLFxyXG4gICAgW3AuYXV0b3VubG9ja0RpbGF0aW9uMSwgcC5hdXRvdW5sb2NrRGlsYXRpb24yXSxcclxuICAgIFtwLmF1dG91bmxvY2tEaWxhdGlvbjIsIHAuYXV0b3VubG9ja0RpbGF0aW9uM10sXHJcbiAgICBbcC5hdXRvdW5sb2NrRGlsYXRpb24zLCBwLmF1dG9idXllckZhc3RlckRpbGF0aW9uLCBwLmF1dG91bmxvY2tURF0sXHJcbiAgICBbcC5hdXRvdW5sb2NrVEQsIHAuYXV0b3VubG9ja1JlYWxpdHldLFxyXG4gICAgW3AuYnlwYXNzVEdSZXNldCwgcC5hdXRvYnV5ZXJEaWxhdGlvbiwgcC5yZXRyb2FjdGl2ZVRQMV0sXHJcbiAgICBbcC5ieXBhc3NFQzFMb2NrLCBwLmJ5cGFzc0VDMkxvY2ssIHAuYnlwYXNzRUMzTG9jaywgcC5zdHVkeUVDUmVxdWlyZW1lbnRdLFxyXG4gICAgW3AuYnlwYXNzRUMyTG9jaywgcC5zdHVkeUFjdGl2ZUVQLCBwLmJ5cGFzc0VDMUxvY2tdLFxyXG4gICAgW3AuYnlwYXNzRUMzTG9jaywgcC5zdHVkeUlkbGVFUCwgcC5ieXBhc3NFQzFMb2NrXSxcclxuICAgIFtwLmJ5cGFzc0VDNUxvY2ssIHAuc3R1ZHlBY3RpdmVFUCwgcC5zdHVkeUlkbGVFUCwgcC5zdHVkeVBhc3NpdmVdLFxyXG4gICAgW3Auc3R1ZHlQYXNzaXZlLCBwLmJ5cGFzc0VDMUxvY2tdLFxyXG4gICAgW3AuYXV0b2NvbXBsZXRlRUMxLCBwLmF1dG9jb21wbGV0ZUVDMl0sXHJcbiAgICBbcC5hdXRvY29tcGxldGVFQzIsIHAuYXV0b2NvbXBsZXRlRUMzXSxcclxuICAgIFtwLnN0dWR5QWN0aXZlRVAsIHAuYnlwYXNzRUMyTG9jaywgcC50dEJ1eVNpbmdsZV0sXHJcbiAgICBbcC5zdHVkeUlkbGVFUCwgcC5ieXBhc3NFQzNMb2NrLCBwLmF1dG9jb21wbGV0ZUVDMV0sXHJcbiAgICBbcC5zdHVkeUVDUmVxdWlyZW1lbnQsIHAuc3R1ZHlFQ0J1bGtdLFxyXG4gICAgW3AucmV0cm9hY3RpdmVUUDEsIHAuYnlwYXNzVEdSZXNldCwgcC5zdGFydFRQLCBwLnJldHJvYWN0aXZlVFAyXSxcclxuICAgIFtwLnJldHJvYWN0aXZlVFAyLCBwLnJldHJvYWN0aXZlVFAzXSxcclxuICAgIFtwLnJldHJvYWN0aXZlVFAzLCBwLnJldHJvYWN0aXZlVFA0XSxcclxuICAgIFtwLmF1dG9idXllckRpbGF0aW9uLCBwLmF1dG91bmxvY2tFVTIsIHAuYXV0b3VubG9ja0RpbGF0aW9uMSxcclxuICAgICAgcC5ieXBhc3NFQ0RpbGF0aW9uLCBwLmJ5cGFzc1RHUmVzZXQsIHAuZGlsYXRpb25BdXRvYnV5ZXJCdWxrXSxcclxuICAgIFtwLmF1dG9idXllckZhc3RlcklEXSxcclxuICAgIFtwLnR0QnV5U2luZ2xlLCBwLnR0RnJlZV0sXHJcbiAgICBbcC50dEZyZWUsIHAudHRCdXlNYXhdLFxyXG4gICAgW3AuYWNoaWV2ZW1lbnRHcm91cDEsIHAuYWNoaWV2ZW1lbnRHcm91cDJdLFxyXG4gICAgW3AuYWNoaWV2ZW1lbnRHcm91cDIsIHAuYWNoaWV2ZW1lbnRHcm91cDNdLFxyXG4gICAgW3AuYWNoaWV2ZW1lbnRHcm91cDMsIHAuYWNoaWV2ZW1lbnRHcm91cDRdLFxyXG4gICAgW3AuYWNoaWV2ZW1lbnRHcm91cDQsIHAuYWNoaWV2ZW1lbnRHcm91cDVdLFxyXG4gIF07XHJcbiAgY29uc3QgY29ubmVjdGlvbnMgPSB7fTtcclxuICBmb3IgKGNvbnN0IHBlcmsgb2YgT2JqZWN0LnZhbHVlcyhwZXJrcykpIHtcclxuICAgIGNvbnN0IGNvbm5lY3RlZFBlcmtzID0gW107XHJcbiAgICBjb25zdCBkaXJlY3RDb25uZWN0aW9ucyA9IGdyb3Vwcy5maW5kKGcgPT4gZ1swXSA9PT0gcGVyayk7XHJcbiAgICBpZiAoZGlyZWN0Q29ubmVjdGlvbnMgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25uZWN0ZWRQZXJrcy5wdXNoKC4uLmRpcmVjdENvbm5lY3Rpb25zLnNsaWNlKDEpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGluZGlyZWN0Q29ubmVjdGlvbnMgPSBncm91cHNcclxuICAgICAgLmZpbHRlcihnID0+IGcuc2xpY2UoMSkuc29tZShncm91cFBlcmsgPT4gZ3JvdXBQZXJrID09PSBwZXJrKSlcclxuICAgICAgLm1hcChnID0+IGdbMF0pO1xyXG4gICAgY29ubmVjdGVkUGVya3MucHVzaCguLi5pbmRpcmVjdENvbm5lY3Rpb25zKTtcclxuICAgIGNvbm5lY3Rpb25zW3BlcmsuaWRdID0gWy4uLm5ldyBTZXQoY29ubmVjdGVkUGVya3MubWFwKGNvbm5lY3RlZFBlcmsgPT4gY29ubmVjdGVkUGVyay5pZCkpXTtcclxuICB9XHJcbiAgcmV0dXJuIGNvbm5lY3Rpb25zO1xyXG59KCkpO1xyXG4iXSwibmFtZXMiOlsiREMiLCJQRVJLX0ZBTUlMWSIsIkFOVElNQVRURVIiLCJJTkZJTklUWSIsIkVURVJOSVRZIiwiRElMQVRJT04iLCJSRUFMSVRZIiwiQVVUT01BVElPTiIsIkFDSElFVkVNRU5UIiwidmVjdG9yVG9OdW0iLCJ2IiwiTWF0aCIsImZsb29yIiwieCIsInkiLCJwZXJrcyIsImZpcnN0UGVyayIsImlkIiwibGFiZWwiLCJmYW1pbHkiLCJkZXNjcmlwdGlvbiIsImZvcm1hdEludCIsImVmZmVjdCIsImxheW91dFBvc0xpc3QiLCJzdGFydEFNIiwiZm9ybWF0IiwiYnVtcEN1cnJlbmN5IiwiQ3VycmVuY3kiLCJhbnRpbWF0dGVyIiwiYnVtcFRvIiwic3RhcnRJUDEiLCJpbmZpbml0eVBvaW50cyIsInN0YXJ0SVAyIiwic3RhcnRFUDEiLCJldGVybml0eVBvaW50cyIsImF1dG9tYXRvclBvaW50cyIsInNob3J0RGVzY3JpcHRpb24iLCJzdGFydEVQMiIsInN0YXJ0RVAzIiwic3RhcnRUUCIsIkVuc2xhdmVkIiwiaXNSdW5uaW5nIiwiYW50aW1hdHRlck5vUmVzZXQiLCJzdHVkeVBhc3NpdmUiLCJmb3JtYXRYIiwiRTUwIiwiUGVsbGUiLCJpc0Rvb21lZCIsImF1dG91bmxvY2tFVTEiLCJhdXRvdW5sb2NrRVUyIiwiYXV0b3VubG9ja0RpbGF0aW9uMSIsImF1dG91bmxvY2tEaWxhdGlvbjIiLCJhdXRvdW5sb2NrRGlsYXRpb24zIiwiYXV0b3VubG9ja1REIiwiYXV0b3VubG9ja1JlYWxpdHkiLCJFNDAwMCIsImJ5cGFzc0lEQW50aW1hdHRlciIsImJ5cGFzc1RHUmVzZXQiLCJieXBhc3NFQ0RpbGF0aW9uIiwiYnlwYXNzRUMxTG9jayIsImJ5cGFzc0VDMkxvY2siLCJieXBhc3NFQzNMb2NrIiwiYnlwYXNzRUM1TG9jayIsImF1dG9jb21wbGV0ZUVDMSIsImF1dG9jb21wbGV0ZUVDMiIsImF1dG9jb21wbGV0ZUVDMyIsInN0dWR5QWN0aXZlRVAiLCJzdHVkeUlkbGVFUCIsInN0dWR5RUNSZXF1aXJlbWVudCIsInN0dWR5RUNCdWxrIiwicmV0cm9hY3RpdmVUUDEiLCJmb3JtYXRGbG9hdCIsInJldHJvYWN0aXZlVFAyIiwicmV0cm9hY3RpdmVUUDMiLCJyZXRyb2FjdGl2ZVRQNCIsImF1dG9idXllckRpbGF0aW9uIiwiYXV0b2J1eWVyRmFzdGVySUQiLCJhdXRvYnV5ZXJGYXN0ZXJSZXBsaWNhbnRpIiwiYXV0b2J1eWVyRmFzdGVyRGlsYXRpb24iLCJ0dEJ1eVNpbmdsZSIsInR0RnJlZSIsInR0QnV5TWF4IiwiZGlsYXRpb25BdXRvYnV5ZXJCdWxrIiwiYWNoaWV2ZW1lbnRHcm91cDEiLCJhY2hpZXZlbWVudEdyb3VwMiIsImFjaGlldmVtZW50R3JvdXAzIiwiYWNoaWV2ZW1lbnRHcm91cDQiLCJhY2hpZXZlbWVudEdyb3VwNSIsInBlcmtDb25uZWN0aW9ucyIsInAiLCJncm91cHMiLCJjb25uZWN0aW9ucyIsInBlcmsiLCJPYmplY3QiLCJ2YWx1ZXMiLCJjb25uZWN0ZWRQZXJrcyIsImRpcmVjdENvbm5lY3Rpb25zIiwiZmluZCIsImciLCJ1bmRlZmluZWQiLCJwdXNoIiwic2xpY2UiLCJpbmRpcmVjdENvbm5lY3Rpb25zIiwiZmlsdGVyIiwic29tZSIsImdyb3VwUGVyayIsIm1hcCIsIlNldCIsImNvbm5lY3RlZFBlcmsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/core/secret-formula/reality/perks.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/reality/reality-upgrades.js": +/*!*************************************************************!*\ + !*** ./src/core/secret-formula/reality/reality-upgrades.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"realityUpgrades\": () => (/* binding */ realityUpgrades)\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"./node_modules/core-js/modules/es.symbol.description.js\");\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");\n/* harmony import */ var core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../constants */ \"./src/core/constants.js\");\n\n\n\n\n\nconst rebuyable = props => {\n props.cost = () => getHybridCostScaling(player.reality.rebuyables[props.id], 1e30, props.initialCost, props.costMult, props.costMult / 10, _constants__WEBPACK_IMPORTED_MODULE_3__.DC.E309, 1e3, props.initialCost * props.costMult);\n\n const {\n effect\n } = props;\n\n props.effect = () => Math.pow(effect + ImaginaryUpgrade(props.id).effectOrDefault(0), player.reality.rebuyables[props.id] * getAdjustedGlyphEffect(\"realityrow1pow\"));\n\n props.description = () => props.textTemplate.replace(\"{value}\", ImaginaryUpgrade(props.id).effectValue === 0 ? formatInt(effect) : format(effect + ImaginaryUpgrade(props.id).effectValue, 2, 2));\n\n props.formatEffect = value => formatX(value, 2, 0);\n\n props.formatCost = value => format(value, 2, 0);\n\n return props;\n};\n\nconst realityUpgrades = [rebuyable({\n name: \"Temporal Amplifier\",\n id: 1,\n initialCost: 1,\n costMult: 30,\n textTemplate: \"You gain Dilated Time {value} times faster\",\n effect: 3\n}), rebuyable({\n name: \"Replicative Amplifier\",\n id: 2,\n initialCost: 1,\n costMult: 30,\n textTemplate: \"You gain Replicanti {value} times faster\",\n effect: 3\n}), rebuyable({\n name: \"Eternal Amplifier\",\n id: 3,\n initialCost: 2,\n costMult: 30,\n textTemplate: \"You gain {value} times more Eternities\",\n effect: 3\n}), rebuyable({\n name: \"Superluminal Amplifier\",\n id: 4,\n initialCost: 2,\n costMult: 30,\n textTemplate: \"You gain {value} times more Tachyon Particles\",\n effect: 3\n}), rebuyable({\n name: \"Boundless Amplifier\",\n id: 5,\n initialCost: 3,\n costMult: 50,\n textTemplate: \"You gain {value} times more Infinities\",\n effect: 5\n}), {\n name: \"Cosmically Duplicate\",\n id: 6,\n cost: 15,\n requirement: \"Complete your first manual Eternity without using Replicanti Galaxies\",\n // Note that while noRG resets on eternity, the reality-level check will be false after the first eternity.\n // The noRG variable is eternity-level as it's also used for an achievement check\n hasFailed: () => !(player.requirementChecks.eternity.noRG && player.requirementChecks.reality.noEternities),\n checkRequirement: () => player.requirementChecks.eternity.noRG && player.requirementChecks.reality.noEternities,\n checkEvent: GAME_EVENT.ETERNITY_RESET_BEFORE,\n canLock: true,\n lockEvent: \"gain a Replicanti Galaxy\",\n description: \"Replicanti speed is multiplied based on Replicanti Galaxies\",\n effect: () => 1 + Replicanti.galaxies.total / 50,\n formatEffect: value => formatX(value, 2, 2)\n}, {\n name: \"Innumerably Construct\",\n id: 7,\n cost: 15,\n requirement: \"Complete your first Infinity with at most 1 Antimatter Galaxy\",\n hasFailed: () => !(player.galaxies <= 1 && player.requirementChecks.reality.noInfinities),\n checkRequirement: () => player.galaxies <= 1 && player.requirementChecks.reality.noInfinities,\n checkEvent: GAME_EVENT.BIG_CRUNCH_BEFORE,\n canLock: true,\n lockEvent: \"gain another Antimatter Galaxy\",\n description: \"Infinity gain is boosted from Antimatter Galaxy count\",\n effect: () => 1 + player.galaxies / 30,\n formatEffect: value => formatX(value, 2, 2)\n}, {\n name: \"Paradoxically Attain\",\n id: 8,\n cost: 15,\n requirement: \"Manually Eternity without any automatic Achievements\",\n hasFailed: () => player.reality.gainedAutoAchievements,\n checkRequirement: () => !player.reality.gainedAutoAchievements,\n checkEvent: GAME_EVENT.ETERNITY_RESET_BEFORE,\n canLock: true,\n // We don't have lockEvent because the modal can never show up for this upgrade\n description: \"Tachyon Particle gain is boosted based on Achievement multiplier\",\n effect: () => Math.sqrt(Achievements.power),\n formatEffect: value => formatX(value, 2, 2)\n}, {\n name: \"Linguistically Expand\",\n id: 9,\n cost: 15,\n requirement: () => `Eternity for ${format(\"1e4000\")} Eternity Points using\n only a single Glyph which must be level ${formatInt(3)}+.`,\n hasFailed: () => {\n const invalidEquippedGlyphs = Glyphs.activeWithoutCompanion.length > 1 || Glyphs.activeWithoutCompanion.length === 1 && Glyphs.activeWithoutCompanion[0].level < 3;\n const hasValidGlyphInInventory = Glyphs.inventory.countWhere(g => g && g.level >= 3) > 0;\n return invalidEquippedGlyphs || Glyphs.activeWithoutCompanion.length === 0 && !hasValidGlyphInInventory;\n },\n checkRequirement: () => Currency.eternityPoints.exponent >= 4000 && Glyphs.activeWithoutCompanion.length === 1 && Glyphs.activeWithoutCompanion[0].level >= 3,\n checkEvent: GAME_EVENT.ETERNITY_RESET_AFTER,\n canLock: true,\n // There are two locking events - equipping a glyph with too low a level, and equipping a second glyph\n description: \"Gain another Glyph slot\",\n effect: () => 1\n}, {\n name: \"Existentially Prolong\",\n id: 10,\n cost: 15,\n requirement: () => `Complete your first manual Eternity with at least ${formatPostBreak(_constants__WEBPACK_IMPORTED_MODULE_3__.DC.E400)} Infinity Points`,\n hasFailed: () => !player.requirementChecks.reality.noEternities,\n checkRequirement: () => Currency.infinityPoints.exponent >= 400 && player.requirementChecks.reality.noEternities,\n checkEvent: GAME_EVENT.ETERNITY_RESET_BEFORE,\n canLock: true,\n lockEvent: \"Eternity\",\n bypassLock: () => Currency.infinityPoints.exponent >= 400,\n description: () => `Start every Reality with ${formatInt(100)} Eternities (also applies to current Reality)`,\n automatorPoints: 15,\n shortDescription: () => `Start with ${formatInt(100)} Eternities`,\n effect: () => 100\n}, {\n name: \"The Boundless Flow\",\n id: 11,\n cost: 50,\n requirement: () => `${format(Currency.infinitiesBanked.value, 2)}/${format(_constants__WEBPACK_IMPORTED_MODULE_3__.DC.E12)} Banked Infinities`,\n checkRequirement: () => Currency.infinitiesBanked.exponent >= 12,\n checkEvent: [GAME_EVENT.ETERNITY_RESET_AFTER, GAME_EVENT.REALITY_FIRST_UNLOCKED],\n description: \"Every second, gain 10% of the Infinities you would normally gain by Infinitying\",\n automatorPoints: 5,\n shortDescription: () => `Continuous Infinity generation`,\n effect: () => gainedInfinities().times(0.1),\n formatEffect: value => `${format(value)} per second`\n}, {\n name: \"The Knowing Existence\",\n id: 12,\n cost: 50,\n requirement: () => `Eternity for ${format(_constants__WEBPACK_IMPORTED_MODULE_3__.DC.E70)} Eternity Points without completing Eternity Challenge 1`,\n hasFailed: () => EternityChallenge(1).completions !== 0,\n checkRequirement: () => Currency.eternityPoints.exponent >= 70 && EternityChallenge(1).completions === 0,\n checkEvent: GAME_EVENT.ETERNITY_RESET_AFTER,\n canLock: true,\n lockEvent: \"complete Eternity Challenge 1\",\n description: \"Eternity Point multiplier based on Reality and Time Theorem count\",\n effect: () => Currency.timeTheorems.value.minus(_constants__WEBPACK_IMPORTED_MODULE_3__.DC.E3).clampMin(2).pow(Math.log2(Math.min(Currency.realities.value, 1e4))).clampMin(1),\n formatEffect: value => formatX(value, 2, 2)\n}, {\n name: \"The Telemechanical Process\",\n id: 13,\n cost: 50,\n requirement: () => `Eternity for ${format(_constants__WEBPACK_IMPORTED_MODULE_3__.DC.E4000)} Eternity Points without Time Dim. 5-8`,\n hasFailed: () => !Array.range(5, 4).every(i => TimeDimension(i).amount.equals(0)),\n checkRequirement: () => Currency.eternityPoints.exponent >= 4000 && Array.range(5, 4).every(i => TimeDimension(i).amount.equals(0)),\n checkEvent: GAME_EVENT.ETERNITY_RESET_AFTER,\n canLock: true,\n lockEvent: \"purchase a Time Dimension above the 4th TD\",\n description: () => `Improve Eternity Autobuyer and unlock autobuyers for Time Dimensions and ${formatX(5)} EP`,\n automatorPoints: 10,\n shortDescription: () => `TD and ${formatX(5)} EP Autobuyers, improved Eternity Autobuyer`\n}, {\n name: \"The Eternal Flow\",\n id: 14,\n cost: 50,\n requirement: () => `${format(Currency.eternities.value, 2)}/${format(1e7)} Eternities`,\n checkRequirement: () => Currency.eternities.gte(1e7),\n checkEvent: [GAME_EVENT.ETERNITY_RESET_AFTER, GAME_EVENT.REALITY_FIRST_UNLOCKED],\n description: \"Gain Eternities per second equal to your Reality count\",\n automatorPoints: 5,\n shortDescription: () => `Continuous Eternity generation`,\n effect: () => Currency.realities.value * Ra.unlocks.continuousTTBoost.effects.eternity.effectOrDefault(1),\n formatEffect: value => `${format(value)} per second`\n}, {\n name: \"The Paradoxical Forever\",\n id: 15,\n cost: 50,\n requirement: () => `Have ${format(_constants__WEBPACK_IMPORTED_MODULE_3__.DC.E10)} Eternity Points without purchasing\n the ${formatX(5)} Eternity Point upgrade`,\n hasFailed: () => player.epmultUpgrades !== 0,\n checkRequirement: () => Currency.eternityPoints.exponent >= 10 && player.epmultUpgrades === 0,\n checkEvent: GAME_EVENT.ETERNITY_RESET_AFTER,\n canLock: true,\n lockEvent: () => `purchase a ${formatX(5)} EP upgrade`,\n description: () => `Boost Tachyon Particle gain based on ${formatX(5)} Eternity Point multiplier`,\n effect: () => Math.max(Math.sqrt(Decimal.log10(EternityUpgrade.epMult.effectValue)) / 9, 1),\n formatEffect: value => formatX(value, 2, 2)\n}, {\n name: \"Disparity of Rarity\",\n id: 16,\n cost: 1500,\n requirement: () => `Reality with ${formatInt(4)} Glyphs equipped of uncommon or better rarity\n (${formatInt(Glyphs.activeWithoutCompanion.countWhere(g => g && g.strength >= 1.5))} equipped)`,\n hasFailed: () => {\n const availableGlyphs = Glyphs.inventory.countWhere(g => g && g.strength >= 1.5);\n const equipped = Glyphs.activeWithoutCompanion.countWhere(g => g.strength >= 1.5);\n const availableSlots = Glyphs.activeSlotCount - Glyphs.activeList.length;\n return equipped + Math.min(availableGlyphs, availableSlots) < 4;\n },\n checkRequirement: () => Glyphs.activeWithoutCompanion.countWhere(g => g.strength >= 1.5) === 4,\n checkEvent: GAME_EVENT.REALITY_RESET_BEFORE,\n description: \"Improve the Glyph rarity formula\",\n effect: 1.3,\n formatCost: value => format(value, 1, 0)\n}, {\n name: \"Duplicity of Potency\",\n id: 17,\n cost: 1500,\n requirement: () => `Reality with ${formatInt(4)} Glyphs equipped, each having at least ${formatInt(2)} effects\n (${formatInt(Glyphs.activeWithoutCompanion.countWhere(g => g && countValuesFromBitmask(g.effects) >= 2))}\n equipped)`,\n hasFailed: () => {\n const availableGlyphs = Glyphs.inventory.countWhere(g => g && countValuesFromBitmask(g.effects) >= 2);\n const equipped = Glyphs.activeWithoutCompanion.countWhere(g => countValuesFromBitmask(g.effects) >= 2);\n const availableSlots = Glyphs.activeSlotCount - Glyphs.activeList.length;\n return equipped + Math.min(availableGlyphs, availableSlots) < 4;\n },\n checkRequirement: () => Glyphs.activeWithoutCompanion.countWhere(g => countValuesFromBitmask(g.effects) >= 2) === 4,\n checkEvent: GAME_EVENT.REALITY_RESET_BEFORE,\n description: () => `${formatPercents(0.5)} chance to get an additional effect on Glyphs`,\n effect: 0.5,\n formatCost: value => format(value, 1, 0)\n}, {\n name: \"Measure of Forever\",\n id: 18,\n cost: 1500,\n requirement: () => `Reality with ${formatInt(4)} Glyphs equipped, each at level ${formatInt(10)} or higher\n (${formatInt(Glyphs.activeWithoutCompanion.countWhere(g => g && g.level >= 10))} equipped)`,\n hasFailed: () => {\n const availableGlyphs = Glyphs.inventory.countWhere(g => g && g.level >= 10);\n const equipped = Glyphs.activeWithoutCompanion.countWhere(g => g.level >= 10);\n const availableSlots = Glyphs.activeSlotCount - Glyphs.activeList.length;\n return equipped + Math.min(availableGlyphs, availableSlots) < 4;\n },\n checkRequirement: () => Glyphs.activeWithoutCompanion.countWhere(g => g.level >= 10) === 4,\n checkEvent: GAME_EVENT.REALITY_RESET_BEFORE,\n description: \"Eternity count boosts Glyph level\",\n effect: () => Math.max(Math.sqrt(Currency.eternities.value.plus(1).log10()) * 0.45, 1),\n formatCost: value => format(value, 1, 0)\n}, {\n name: \"Scour to Empower\",\n id: 19,\n cost: 1500,\n requirement: () => `Have a total of ${formatInt(30)} or more Glyphs at once\n (You have ${formatInt(Glyphs.allGlyphs.countWhere(g => g.type !== \"companion\"))})`,\n hasFailed: () => Glyphs.allGlyphs.countWhere(g => g.type !== \"companion\") < 30,\n checkRequirement: () => Glyphs.allGlyphs.countWhere(g => g.type !== \"companion\") >= 30,\n checkEvent: GAME_EVENT.REALITY_RESET_BEFORE,\n description: \"You can sacrifice Glyphs for permanent bonuses (Shift + click)\",\n formatCost: value => format(value, 1, 0)\n}, {\n name: \"Parity of Singularity\",\n id: 20,\n cost: 1500,\n requirement: () => `${formatInt(100)} days total play time after unlocking the Black Hole\n (Currently: ${Time.timeSinceBlackHole.toStringShort(false)})`,\n hasFailed: () => !BlackHole(1).isUnlocked && Currency.realityMachines.lt(100),\n checkRequirement: () => Time.timeSinceBlackHole.totalDays >= 100 && BlackHole(1).isUnlocked,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: \"Unlock another Black Hole\",\n automatorPoints: 10,\n shortDescription: () => `Second Black Hole`,\n formatCost: value => format(value, 1, 0)\n}, {\n name: \"Cosmic Conglomerate\",\n id: 21,\n cost: 100000,\n requirement: () => `${formatInt(Replicanti.galaxies.total + player.galaxies + player.dilation.totalTachyonGalaxies)}/${formatInt(2800)} total Galaxies from all types`,\n checkRequirement: () => Replicanti.galaxies.total + player.galaxies + player.dilation.totalTachyonGalaxies >= 2800,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: () => `Remote Antimatter Galaxy scaling is moved to ${formatInt(1e5)} galaxies`,\n effect: 1e5\n}, {\n name: \"Temporal Transcendence\",\n id: 22,\n cost: 100000,\n requirement: () => `${format(Currency.timeShards.value, 1)}/${format(_constants__WEBPACK_IMPORTED_MODULE_3__.DC.E28000)} Time Shards`,\n checkRequirement: () => Currency.timeShards.exponent >= 28000,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER,\n description: \"Time Dimension multiplier based on days spent in this Reality\",\n effect: () => Decimal.pow10(Math.pow(1 + 2 * Math.log10(Time.thisReality.totalDays + 1), 1.6)),\n formatEffect: value => formatX(value, 2, 2)\n}, {\n name: \"Replicative Rapidity\",\n id: 23,\n cost: 100000,\n requirement: () => `Reality in under ${formatInt(15)} minutes of game time\n (Fastest: ${Time.bestReality.toStringShort()})`,\n hasFailed: () => Time.thisReality.totalMinutes >= 15,\n checkRequirement: () => Time.thisReality.totalMinutes < 15,\n checkEvent: GAME_EVENT.REALITY_RESET_BEFORE,\n description: \"Replicanti speed is boosted based on your fastest game-time Reality\",\n effect: () => 15 / Math.clamp(Time.bestReality.totalMinutes, 1 / 12, 15),\n cap: 180,\n formatEffect: value => formatX(value, 2, 2)\n}, {\n name: \"Synthetic Symbolism\",\n id: 24,\n cost: 100000,\n requirement: () => `Reality for ${formatInt(5000)} Reality Machines without equipped Glyphs`,\n hasFailed: () => Glyphs.activeWithoutCompanion.length > 0,\n checkRequirement: () => MachineHandler.gainedRealityMachines.gte(5000) && Glyphs.activeWithoutCompanion.length === 0,\n canLock: true,\n lockEvent: \"equip a non-Companion Glyph\",\n checkEvent: GAME_EVENT.REALITY_RESET_BEFORE,\n description: \"Gain another Glyph slot\",\n effect: () => 1\n}, {\n name: \"Effortless Existence\",\n id: 25,\n cost: 100000,\n requirement: () => `Reach ${format(_constants__WEBPACK_IMPORTED_MODULE_3__.DC.E11111)} EP (Best: ${format(player.records.bestReality.bestEP, 2)} EP)`,\n checkRequirement: () => player.records.bestReality.bestEP.exponent >= 11111,\n checkEvent: GAME_EVENT.ETERNITY_RESET_AFTER,\n description: \"Unlock the Reality autobuyer and Automator command\",\n automatorPoints: 100,\n shortDescription: () => `Reality Autobuyer`\n}];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L3JlYWxpdHktdXBncmFkZXMuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQyxTQUFTLEdBQUdDLEtBQUssSUFBSTtBQUN6QkEsRUFBQUEsS0FBSyxDQUFDQyxJQUFOLEdBQWEsTUFBTUMsb0JBQW9CLENBQ3JDQyxNQUFNLENBQUNDLE9BQVAsQ0FBZUMsVUFBZixDQUEwQkwsS0FBSyxDQUFDTSxFQUFoQyxDQURxQyxFQUVyQyxJQUZxQyxFQUdyQ04sS0FBSyxDQUFDTyxXQUgrQixFQUlyQ1AsS0FBSyxDQUFDUSxRQUorQixFQUtyQ1IsS0FBSyxDQUFDUSxRQUFOLEdBQWlCLEVBTG9CLEVBTXJDViwrQ0FOcUMsRUFPckMsR0FQcUMsRUFRckNFLEtBQUssQ0FBQ08sV0FBTixHQUFvQlAsS0FBSyxDQUFDUSxRQVJXLENBQXZDOztBQVVBLFFBQU07QUFBRUUsSUFBQUE7QUFBRixNQUFhVixLQUFuQjs7QUFDQUEsRUFBQUEsS0FBSyxDQUFDVSxNQUFOLEdBQWUsTUFBTUMsSUFBSSxDQUFDQyxHQUFMLENBQ25CRixNQUFNLEdBQUdHLGdCQUFnQixDQUFDYixLQUFLLENBQUNNLEVBQVAsQ0FBaEIsQ0FBMkJRLGVBQTNCLENBQTJDLENBQTNDLENBRFUsRUFFbkJYLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlQyxVQUFmLENBQTBCTCxLQUFLLENBQUNNLEVBQWhDLElBQXNDUyxzQkFBc0IsQ0FBQyxnQkFBRCxDQUZ6QyxDQUFyQjs7QUFHQWYsRUFBQUEsS0FBSyxDQUFDZ0IsV0FBTixHQUFvQixNQUFNaEIsS0FBSyxDQUFDaUIsWUFBTixDQUFtQkMsT0FBbkIsQ0FBMkIsU0FBM0IsRUFDeEJMLGdCQUFnQixDQUFDYixLQUFLLENBQUNNLEVBQVAsQ0FBaEIsQ0FBMkJhLFdBQTNCLEtBQTJDLENBQTNDLEdBQ0lDLFNBQVMsQ0FBQ1YsTUFBRCxDQURiLEdBRUlXLE1BQU0sQ0FBQ1gsTUFB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QyxNQUFNLENBQUNDLHNCQUFQLENBQThCQyxNQUE5QixLQUF5QyxDQVA3QztBQVFFZCxFQUFBQSxPQUFPLEVBQUUsSUFSWDtBQVNFQyxFQUFBQSxTQUFTLEVBQUUsNkJBVGI7QUFVRUosRUFBQUEsVUFBVSxFQUFFQyxVQUFVLENBQUMwRSxvQkFWekI7QUFXRTlGLEVBQUFBLFdBQVcsRUFBRSx5QkFYZjtBQVlFTixFQUFBQSxNQUFNLEVBQUUsTUFBTTtBQVpoQixDQXhUNkIsRUFzVTdCO0FBQ0VpQixFQUFBQSxJQUFJLEVBQUUsc0JBRFI7QUFFRXJCLEVBQUFBLEVBQUUsRUFBRSxFQUZOO0FBR0VMLEVBQUFBLElBQUksRUFBRSxNQUhSO0FBSUUyQixFQUFBQSxXQUFXLEVBQUUsTUFBTyxTQUFRUCxNQUFNLENBQUN2QixpREFBRCxDQUFZLGNBQWF1QixNQUFNLENBQUNsQixNQUFNLENBQUN1SSxPQUFQLENBQWVQLFdBQWYsQ0FBMkJRLE1BQTVCLEVBQW9DLENBQXBDLENBQXVDLE1BSjFHO0FBS0V6RyxFQUFBQSxnQkFBZ0IsRUFBRSxNQUFNL0IsTUFBTSxDQUFDdUksT0FBUCxDQUFlUCxXQUFmLENBQTJCUSxNQUEzQixDQUFrQy9FLFFBQWxDLElBQThDLEtBTHhFO0FBTUV6QixFQUFBQSxVQUFVLEVBQUVDLFVBQVUsQ0FBQ3lCLG9CQU56QjtBQU9FN0MsRUFBQUEsV0FBVyxFQUFFLG9EQVBmO0FBUUVrRCxFQUFBQSxlQUFlLEVBQUUsR0FSbkI7QUFTRUMsRUFBQUEsZ0JBQWdCLEVBQUUsTUFBTztBQVQzQixDQXRVNkIsQ0FBeEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9yZWFsaXR5L3JlYWxpdHktdXBncmFkZXMuanM/MDI5NSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEQyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuXHJcbmNvbnN0IHJlYnV5YWJsZSA9IHByb3BzID0+IHtcclxuICBwcm9wcy5jb3N0ID0gKCkgPT4gZ2V0SHlicmlkQ29zdFNjYWxpbmcoXHJcbiAgICBwbGF5ZXIucmVhbGl0eS5yZWJ1eWFibGVzW3Byb3BzLmlkXSxcclxuICAgIDFlMzAsXHJcbiAgICBwcm9wcy5pbml0aWFsQ29zdCxcclxuICAgIHByb3BzLmNvc3RNdWx0LFxyXG4gICAgcHJvcHMuY29zdE11bHQgLyAxMCxcclxuICAgIERDLkUzMDksXHJcbiAgICAxZTMsXHJcbiAgICBwcm9wcy5pbml0aWFsQ29zdCAqIHByb3BzLmNvc3RNdWx0XHJcbiAgKTtcclxuICBjb25zdCB7IGVmZmVjdCB9ID0gcHJvcHM7XHJcbiAgcHJvcHMuZWZmZWN0ID0gKCkgPT4gTWF0aC5wb3coXHJcbiAgICBlZmZlY3QgKyBJbWFnaW5hcnlVcGdyYWRlKHByb3BzLmlkKS5lZmZlY3RPckRlZmF1bHQoMCksXHJcbiAgICBwbGF5ZXIucmVhbGl0eS5yZWJ1eWFibGVzW3Byb3BzLmlkXSAqIGdldEFkanVzdGVkR2x5cGhFZmZlY3QoXCJyZWFsaXR5cm93MXBvd1wiKSk7XHJcbiAgcHJvcHMuZGVzY3JpcHRpb24gPSAoKSA9PiBwcm9wcy50ZXh0VGVtcGxhdGUucmVwbGFjZShcInt2YWx1ZX1cIixcclxuICAgIEltYWdpbmFyeVVwZ3JhZGUocHJvcHMuaWQpLmVmZmVjdFZhbHVlID09PSAwXHJcbiAgICAgID8gZm9ybWF0SW50KGVmZmVjdClcclxuICAgICAgOiBmb3JtYXQoZWZmZWN0ICsgSW1hZ2luYXJ5VXBncmFkZShwcm9wcy5pZCkuZWZmZWN0VmFsdWUsIDIsIDIpKTtcclxuICBwcm9wcy5mb3JtYXRFZmZlY3QgPSB2YWx1ZSA9PiBmb3JtYXRYKHZhbHVlLCAyLCAwKTtcclxuICBwcm9wcy5mb3JtYXRDb3N0ID0gdmFsdWUgPT4gZm9ybWF0KHZhbHVlLCAyLCAwKTtcclxuICByZXR1cm4gcHJvcHM7XHJcbn07XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHJlYWxpdHlVcGdyYWRlcyA9IFtcclxuICByZWJ1eWFibGUoe1xyXG4gICAgbmFtZTogXCJUZW1wb3JhbCBBbXBsaWZpZXJcIixcclxuICAgIGlkOiAxLFxyXG4gICAgaW5pdGlhbENvc3Q6IDEsXHJcbiAgICBjb3N0TXVsdDogMzAsXHJcbiAgICB0ZXh0VGVtcGxhdGU6IFwiWW91IGdhaW4gRGlsYXRlZCBUaW1lIHt2YWx1ZX0gdGltZXMgZmFzdGVyXCIsXHJcbiAgICBlZmZlY3Q6IDNcclxuICB9KSxcclxuICByZWJ1eWFibGUoe1xyXG4gICAgbmFtZTogXCJSZXBsaWNhdGl2ZSBBbXBsaWZpZXJcIixcclxuICAgIGlkOiAyLFxyXG4gICAgaW5pdGlhbENvc3Q6IDEsXHJcbiAgICBjb3N0TXVsdDogMzAsXHJcbiAgICB0ZXh0VGVtcGxhdGU6IFwiWW91IGdhaW4gUmVwbGljYW50aSB7dmFsdWV9IHRpbWVzIGZhc3RlclwiLFxyXG4gICAgZWZmZWN0OiAzXHJcbiAgfSksXHJcbiAgcmVidXlhYmxlKHtcclxuICAgIG5hbWU6IFwiRXRlcm5hbCBBbXBsaWZpZXJcIixcclxuICAgIGlkOiAzLFxyXG4gICAgaW5pdGlhbENvc3Q6IDIsXHJcbiAgICBjb3N0TXVsdDogMzAsXHJcbiAgICB0ZXh0VGVtcGxhdGU6IFwiWW91IGdhaW4ge3ZhbHVlfSB0aW1lcyBtb3JlIEV0ZXJuaXRpZXNcIixcclxuICAgIGVmZmVjdDogM1xyXG4gIH0pLFxyXG4gIHJlYnV5YWJsZSh7XHJcbiAgICBuYW1lOiBcIlN1cGVybHVtaW5hbCBBbXBsaWZpZXJcIixcclxuICAgIGlkOiA0LFxyXG4gICAgaW5pdGlhbENvc3Q6IDIsXHJcbiAgICBjb3N0TXVsdDogMzAsXHJcbiAgICB0ZXh0VGVtcGxhdGU6IFwiWW91IGdhaW4ge3ZhbHVlfSB0aW1lcyBtb3JlIFRhY2h5b24gUGFydGljbGVzXCIsXHJcbiAgICBlZmZlY3Q6IDNcclxuICB9KSxcclxuICByZWJ1eWFibGUoe1xyXG4gICAgbmFtZTogXCJCb3VuZGxlc3MgQW1wbGlmaWVyXCIsXHJcbiAgICBpZDogNSxcclxuICAgIGluaXRpYWxDb3N0OiAzLFxyXG4gICAgY29zdE11bHQ6IDUwLFxyXG4gICAgdGV4dFRlbXBsYXRlOiBcIllvdSBnYWluIHt2YWx1ZX0gdGltZXMgbW9yZSBJbmZpbml0aWVzXCIsXHJcbiAgICBlZmZlY3Q6IDVcclxuICB9KSxcclxuICB7XHJcbiAgICBuYW1lOiBcIkNvc21pY2FsbHkgRHVwbGljYXRlXCIsXHJcbiAgICBpZDogNixcclxuICAgIGNvc3Q6IDE1LFxyXG4gICAgcmVxdWlyZW1lbnQ6IFwiQ29tcGxldGUgeW91ciBmaXJzdCBtYW51YWwgRXRlcm5pdHkgd2l0aG91dCB1c2luZyBSZXBsaWNhbnRpIEdhbGF4aWVzXCIsXHJcbiAgICAvLyBOb3RlIHRoYXQgd2hpbGUgbm9SRyByZXNldHMgb24gZXRlcm5pdHksIHRoZSByZWFsaXR5LWxldmVsIGNoZWNrIHdpbGwgYmUgZmFsc2UgYWZ0ZXIgdGhlIGZpcnN0IGV0ZXJuaXR5LlxyXG4gICAgLy8gVGhlIG5vUkcgdmFyaWFibGUgaXMgZXRlcm5pdHktbGV2ZWwgYXMgaXQncyBhbHNvIHVzZWQgZm9yIGFuIGFjaGlldmVtZW50IGNoZWNrXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+ICEocGxheWVyLnJlcXVpcmVtZW50Q2hlY2tzLmV0ZXJuaXR5Lm5vUkcgJiYgcGxheWVyLnJlcXVpcmVtZW50Q2hlY2tzLnJlYWxpdHkubm9FdGVybml0aWVzKSxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IHBsYXllci5yZXF1aXJlbWVudENoZWNrcy5ldGVybml0eS5ub1JHICYmIHBsYXllci5yZXF1aXJlbWVudENoZWNrcy5yZWFsaXR5Lm5vRXRlcm5pdGllcyxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuRVRFUk5JVFlfUkVTRVRfQkVGT1JFLFxyXG4gICAgY2FuTG9jazogdHJ1ZSxcclxuICAgIGxvY2tFdmVudDogXCJnYWluIGEgUmVwbGljYW50aSBHYWxheHlcIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIlJlcGxpY2FudGkgc3BlZWQgaXMgbXVsdGlwbGllZCBiYXNlZCBvbiBSZXBsaWNhbnRpIEdhbGF4aWVzXCIsXHJcbiAgICBlZmZlY3Q6ICgpID0+IDEgKyBSZXBsaWNhbnRpLmdhbGF4aWVzLnRvdGFsIC8gNTAsXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHZhbHVlID0+IGZvcm1hdFgodmFsdWUsIDIsIDIpXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIklubnVtZXJhYmx5IENvbnN0cnVjdFwiLFxyXG4gICAgaWQ6IDcsXHJcbiAgICBjb3N0OiAxNSxcclxuICAgIHJlcXVpcmVtZW50OiBcIkNvbXBsZXRlIHlvdXIgZmlyc3QgSW5maW5pdHkgd2l0aCBhdCBtb3N0IDEgQW50aW1hdHRlciBHYWxheHlcIixcclxuICAgIGhhc0ZhaWxlZDogKCkgPT4gIShwbGF5ZXIuZ2FsYXhpZXMgPD0gMSAmJiBwbGF5ZXIucmVxdWlyZW1lbnRDaGVja3MucmVhbGl0eS5ub0luZmluaXRpZXMpLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gcGxheWVyLmdhbGF4aWVzIDw9IDEgJiYgcGxheWVyLnJlcXVpcmVtZW50Q2hlY2tzLnJlYWxpdHkubm9JbmZpbml0aWVzLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5CSUdfQ1JVTkNIX0JFRk9SRSxcclxuICAgIGNhbkxvY2s6IHRydWUsXHJcbiAgICBsb2NrRXZlbnQ6IFwiZ2FpbiBhbm90aGVyIEFudGltYXR0ZXIgR2FsYXh5XCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJJbmZpbml0eSBnYWluIGlzIGJvb3N0ZWQgZnJvbSBBbnRpbWF0dGVyIEdhbGF4eSBjb3VudFwiLFxyXG4gICAgZWZmZWN0OiAoKSA9PiAxICsgcGxheWVyLmdhbGF4aWVzIC8gMzAsXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHZhbHVlID0+IGZvcm1hdFgodmFsdWUsIDIsIDIpXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIlBhcmFkb3hpY2FsbHkgQXR0YWluXCIsXHJcbiAgICBpZDogOCxcclxuICAgIGNvc3Q6IDE1LFxyXG4gICAgcmVxdWlyZW1lbnQ6IFwiTWFudWFsbHkgRXRlcm5pdHkgd2l0aG91dCBhbnkgYXV0b21hdGljIEFjaGlldmVtZW50c1wiLFxyXG4gICAgaGFzRmFpbGVkOiAoKSA9PiBwbGF5ZXIucmVhbGl0eS5nYWluZWRBdXRvQWNoaWV2ZW1lbnRzLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gIXBsYXllci5yZWFsaXR5LmdhaW5lZEF1dG9BY2hpZXZlbWVudHMsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkVURVJOSVRZX1JFU0VUX0JFRk9SRSxcclxuICAgIGNhbkxvY2s6IHRydWUsXHJcbiAgICAvLyBXZSBkb24ndCBoYXZlIGxvY2tFdmVudCBiZWNhdXNlIHRoZSBtb2RhbCBjYW4gbmV2ZXIgc2hvdyB1cCBmb3IgdGhpcyB1cGdyYWRlXHJcbiAgICBkZXNjcmlwdGlvbjogXCJUYWNoeW9uIFBhcnRpY2xlIGdhaW4gaXMgYm9vc3RlZCBiYXNlZCBvbiBBY2hpZXZlbWVudCBtdWx0aXBsaWVyXCIsXHJcbiAgICBlZmZlY3Q6ICgpID0+IE1hdGguc3FydChBY2hpZXZlbWVudHMucG93ZXIpLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB2YWx1ZSA9PiBmb3JtYXRYKHZhbHVlLCAyLCAyKVxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJMaW5ndWlzdGljYWxseSBFeHBhbmRcIixcclxuICAgIGlkOiA5LFxyXG4gICAgY29zdDogMTUsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYEV0ZXJuaXR5IGZvciAke2Zvcm1hdChcIjFlNDAwMFwiKX0gRXRlcm5pdHkgUG9pbnRzIHVzaW5nXHJcbiAgICAgIG9ubHkgYSBzaW5nbGUgR2x5cGggd2hpY2ggbXVzdCBiZSBsZXZlbCAke2Zvcm1hdEludCgzKX0rLmAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IHtcclxuICAgICAgY29uc3QgaW52YWxpZEVxdWlwcGVkR2x5cGhzID0gR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24ubGVuZ3RoID4gMSB8fFxyXG4gICAgICAgIChHbHlwaHMuYWN0aXZlV2l0aG91dENvbXBhbmlvbi5sZW5ndGggPT09IDEgJiYgR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb25bMF0ubGV2ZWwgPCAzKTtcclxuICAgICAgY29uc3QgaGFzVmFsaWRHbHlwaEluSW52ZW50b3J5ID0gR2x5cGhzLmludmVudG9yeS5jb3VudFdoZXJlKGcgPT4gZyAmJiBnLmxldmVsID49IDMpID4gMDtcclxuICAgICAgcmV0dXJuIGludmFsaWRFcXVpcHBlZEdseXBocyB8fCAoR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24ubGVuZ3RoID09PSAwICYmICFoYXNWYWxpZEdseXBoSW5JbnZlbnRvcnkpO1xyXG4gICAgfSxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IEN1cnJlbmN5LmV0ZXJuaXR5UG9pbnRzLmV4cG9uZW50ID49IDQwMDAgJiZcclxuICAgICAgR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24ubGVuZ3RoID09PSAxICYmIEdseXBocy5hY3RpdmVXaXRob3V0Q29tcGFuaW9uWzBdLmxldmVsID49IDMsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkVURVJOSVRZX1JFU0VUX0FGVEVSLFxyXG4gICAgY2FuTG9jazogdHJ1ZSxcclxuICAgIC8vIFRoZXJlIGFyZSB0d28gbG9ja2luZyBldmVudHMgLSBlcXVpcHBpbmcgYSBnbHlwaCB3aXRoIHRvbyBsb3cgYSBsZXZlbCwgYW5kIGVxdWlwcGluZyBhIHNlY29uZCBnbHlwaFxyXG4gICAgZGVzY3JpcHRpb246IFwiR2FpbiBhbm90aGVyIEdseXBoIHNsb3RcIixcclxuICAgIGVmZmVjdDogKCkgPT4gMVxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJFeGlzdGVudGlhbGx5IFByb2xvbmdcIixcclxuICAgIGlkOiAxMCxcclxuICAgIGNvc3Q6IDE1LFxyXG4gICAgcmVxdWlyZW1lbnQ6ICgpID0+IGBDb21wbGV0ZSB5b3VyIGZpcnN0IG1hbnVhbCBFdGVybml0eSB3aXRoIGF0IGxlYXN0ICR7Zm9ybWF0UG9zdEJyZWFrKERDLkU0MDApfSBJbmZpbml0eSBQb2ludHNgLFxyXG4gICAgaGFzRmFpbGVkOiAoKSA9PiAhcGxheWVyLnJlcXVpcmVtZW50Q2hlY2tzLnJlYWxpdHkubm9FdGVybml0aWVzLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gQ3VycmVuY3kuaW5maW5pdHlQb2ludHMuZXhwb25lbnQgPj0gNDAwICYmXHJcbiAgICAgIHBsYXllci5yZXF1aXJlbWVudENoZWNrcy5yZWFsaXR5Lm5vRXRlcm5pdGllcyxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuRVRFUk5JVFlfUkVTRVRfQkVGT1JFLFxyXG4gICAgY2FuTG9jazogdHJ1ZSxcclxuICAgIGxvY2tFdmVudDogXCJFdGVybml0eVwiLFxyXG4gICAgYnlwYXNzTG9jazogKCkgPT4gQ3VycmVuY3kuaW5maW5pdHlQb2ludHMuZXhwb25lbnQgPj0gNDAwLFxyXG4gICAgZGVzY3JpcHRpb246ICgpID0+IGBTdGFydCBldmVyeSBSZWFsaXR5IHdpdGggJHtmb3JtYXRJbnQoMTAwKX0gRXRlcm5pdGllcyAoYWxzbyBhcHBsaWVzIHRvIGN1cnJlbnQgUmVhbGl0eSlgLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiAxNSxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IGBTdGFydCB3aXRoICR7Zm9ybWF0SW50KDEwMCl9IEV0ZXJuaXRpZXNgLFxyXG4gICAgZWZmZWN0OiAoKSA9PiAxMDBcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6IFwiVGhlIEJvdW5kbGVzcyBGbG93XCIsXHJcbiAgICBpZDogMTEsXHJcbiAgICBjb3N0OiA1MCxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgJHtmb3JtYXQoQ3VycmVuY3kuaW5maW5pdGllc0JhbmtlZC52YWx1ZSwgMil9LyR7Zm9ybWF0KERDLkUxMil9IEJhbmtlZCBJbmZpbml0aWVzYCxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IEN1cnJlbmN5LmluZmluaXRpZXNCYW5rZWQuZXhwb25lbnQgPj0gMTIsXHJcbiAgICBjaGVja0V2ZW50OiBbR0FNRV9FVkVOVC5FVEVSTklUWV9SRVNFVF9BRlRFUiwgR0FNRV9FVkVOVC5SRUFMSVRZX0ZJUlNUX1VOTE9DS0VEXSxcclxuICAgIGRlc2NyaXB0aW9uOiBcIkV2ZXJ5IHNlY29uZCwgZ2FpbiAxMCUgb2YgdGhlIEluZmluaXRpZXMgeW91IHdvdWxkIG5vcm1hbGx5IGdhaW4gYnkgSW5maW5pdHlpbmdcIixcclxuICAgIGF1dG9tYXRvclBvaW50czogNSxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IGBDb250aW51b3VzIEluZmluaXR5IGdlbmVyYXRpb25gLFxyXG4gICAgZWZmZWN0OiAoKSA9PiBnYWluZWRJbmZpbml0aWVzKCkudGltZXMoMC4xKSxcclxuICAgIGZvcm1hdEVmZmVjdDogdmFsdWUgPT4gYCR7Zm9ybWF0KHZhbHVlKX0gcGVyIHNlY29uZGBcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6IFwiVGhlIEtub3dpbmcgRXhpc3RlbmNlXCIsXHJcbiAgICBpZDogMTIsXHJcbiAgICBjb3N0OiA1MCxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgRXRlcm5pdHkgZm9yICR7Zm9ybWF0KERDLkU3MCl9IEV0ZXJuaXR5IFBvaW50cyB3aXRob3V0IGNvbXBsZXRpbmcgRXRlcm5pdHkgQ2hhbGxlbmdlIDFgLFxyXG4gICAgaGFzRmFpbGVkOiAoKSA9PiBFdGVybml0eUNoYWxsZW5nZSgxKS5jb21wbGV0aW9ucyAhPT0gMCxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IEN1cnJlbmN5LmV0ZXJuaXR5UG9pbnRzLmV4cG9uZW50ID49IDcwICYmIEV0ZXJuaXR5Q2hhbGxlbmdlKDEpLmNvbXBsZXRpb25zID09PSAwLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5FVEVSTklUWV9SRVNFVF9BRlRFUixcclxuICAgIGNhbkxvY2s6IHRydWUsXHJcbiAgICBsb2NrRXZlbnQ6IFwiY29tcGxldGUgRXRlcm5pdHkgQ2hhbGxlbmdlIDFcIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIkV0ZXJuaXR5IFBvaW50IG11bHRpcGxpZXIgYmFzZWQgb24gUmVhbGl0eSBhbmQgVGltZSBUaGVvcmVtIGNvdW50XCIsXHJcbiAgICBlZmZlY3Q6ICgpID0+IEN1cnJlbmN5LnRpbWVUaGVvcmVtcy52YWx1ZVxyXG4gICAgICAubWludXMoREMuRTMpLmNsYW1wTWluKDIpXHJcbiAgICAgIC5wb3coTWF0aC5sb2cyKE1hdGgubWluKEN1cnJlbmN5LnJlYWxpdGllcy52YWx1ZSwgMWU0KSkpLmNsYW1wTWluKDEpLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB2YWx1ZSA9PiBmb3JtYXRYKHZhbHVlLCAyLCAyKVxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJUaGUgVGVsZW1lY2hhbmljYWwgUHJvY2Vzc1wiLFxyXG4gICAgaWQ6IDEzLFxyXG4gICAgY29zdDogNTAsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYEV0ZXJuaXR5IGZvciAke2Zvcm1hdChEQy5FNDAwMCl9IEV0ZXJuaXR5IFBvaW50cyB3aXRob3V0IFRpbWUgRGltLiA1LThgLFxyXG4gICAgaGFzRmFpbGVkOiAoKSA9PiAhQXJyYXkucmFuZ2UoNSwgNCkuZXZlcnkoaSA9PiBUaW1lRGltZW5zaW9uKGkpLmFtb3VudC5lcXVhbHMoMCkpLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gQ3VycmVuY3kuZXRlcm5pdHlQb2ludHMuZXhwb25lbnQgPj0gNDAwMCAmJlxyXG4gICAgICBBcnJheS5yYW5nZSg1LCA0KS5ldmVyeShpID0+IFRpbWVEaW1lbnNpb24oaSkuYW1vdW50LmVxdWFscygwKSksXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkVURVJOSVRZX1JFU0VUX0FGVEVSLFxyXG4gICAgY2FuTG9jazogdHJ1ZSxcclxuICAgIGxvY2tFdmVudDogXCJwdXJjaGFzZSBhIFRpbWUgRGltZW5zaW9uIGFib3ZlIHRoZSA0dGggVERcIixcclxuICAgIGRlc2NyaXB0aW9uOiAoKSA9PiBgSW1wcm92ZSBFdGVybml0eSBBdXRvYnV5ZXIgYW5kIHVubG9jayBhdXRvYnV5ZXJzIGZvciBUaW1lIERpbWVuc2lvbnMgYW5kICR7Zm9ybWF0WCg1KX0gRVBgLFxyXG4gICAgYXV0b21hdG9yUG9pbnRzOiAxMCxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IGBURCBhbmQgJHtmb3JtYXRYKDUpfSBFUCBBdXRvYnV5ZXJzLCBpbXByb3ZlZCBFdGVybml0eSBBdXRvYnV5ZXJgLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJUaGUgRXRlcm5hbCBGbG93XCIsXHJcbiAgICBpZDogMTQsXHJcbiAgICBjb3N0OiA1MCxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgJHtmb3JtYXQoQ3VycmVuY3kuZXRlcm5pdGllcy52YWx1ZSwgMil9LyR7Zm9ybWF0KDFlNyl9IEV0ZXJuaXRpZXNgLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gQ3VycmVuY3kuZXRlcm5pdGllcy5ndGUoMWU3KSxcclxuICAgIGNoZWNrRXZlbnQ6IFtHQU1FX0VWRU5ULkVURVJOSVRZX1JFU0VUX0FGVEVSLCBHQU1FX0VWRU5ULlJFQUxJVFlfRklSU1RfVU5MT0NLRURdLFxyXG4gICAgZGVzY3JpcHRpb246IFwiR2FpbiBFdGVybml0aWVzIHBlciBzZWNvbmQgZXF1YWwgdG8geW91ciBSZWFsaXR5IGNvdW50XCIsXHJcbiAgICBhdXRvbWF0b3JQb2ludHM6IDUsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBgQ29udGludW91cyBFdGVybml0eSBnZW5lcmF0aW9uYCxcclxuICAgIGVmZmVjdDogKCkgPT4gQ3VycmVuY3kucmVhbGl0aWVzLnZhbHVlICogUmEudW5sb2Nrcy5jb250aW51b3VzVFRCb29zdC5lZmZlY3RzLmV0ZXJuaXR5LmVmZmVjdE9yRGVmYXVsdCgxKSxcclxuICAgIGZvcm1hdEVmZmVjdDogdmFsdWUgPT4gYCR7Zm9ybWF0KHZhbHVlKX0gcGVyIHNlY29uZGBcclxuICB9LFxyXG4gIHtcclxuICAgIG5hbWU6IFwiVGhlIFBhcmFkb3hpY2FsIEZvcmV2ZXJcIixcclxuICAgIGlkOiAxNSxcclxuICAgIGNvc3Q6IDUwLFxyXG4gICAgcmVxdWlyZW1lbnQ6ICgpID0+IGBIYXZlICR7Zm9ybWF0KERDLkUxMCl9IEV0ZXJuaXR5IFBvaW50cyB3aXRob3V0IHB1cmNoYXNpbmdcclxuICAgICAgdGhlICR7Zm9ybWF0WCg1KX0gRXRlcm5pdHkgUG9pbnQgdXBncmFkZWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IHBsYXllci5lcG11bHRVcGdyYWRlcyAhPT0gMCxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IEN1cnJlbmN5LmV0ZXJuaXR5UG9pbnRzLmV4cG9uZW50ID49IDEwICYmIHBsYXllci5lcG11bHRVcGdyYWRlcyA9PT0gMCxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuRVRFUk5JVFlfUkVTRVRfQUZURVIsXHJcbiAgICBjYW5Mb2NrOiB0cnVlLFxyXG4gICAgbG9ja0V2ZW50OiAoKSA9PiBgcHVyY2hhc2UgYSAke2Zvcm1hdFgoNSl9IEVQIHVwZ3JhZGVgLFxyXG4gICAgZGVzY3JpcHRpb246ICgpID0+IGBCb29zdCBUYWNoeW9uIFBhcnRpY2xlIGdhaW4gYmFzZWQgb24gJHtmb3JtYXRYKDUpfSBFdGVybml0eSBQb2ludCBtdWx0aXBsaWVyYCxcclxuICAgIGVmZmVjdDogKCkgPT4gTWF0aC5tYXgoTWF0aC5zcXJ0KERlY2ltYWwubG9nMTAoRXRlcm5pdHlVcGdyYWRlLmVwTXVsdC5lZmZlY3RWYWx1ZSkpIC8gOSwgMSksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHZhbHVlID0+IGZvcm1hdFgodmFsdWUsIDIsIDIpXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIkRpc3Bhcml0eSBvZiBSYXJpdHlcIixcclxuICAgIGlkOiAxNixcclxuICAgIGNvc3Q6IDE1MDAsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYFJlYWxpdHkgd2l0aCAke2Zvcm1hdEludCg0KX0gR2x5cGhzIGVxdWlwcGVkIG9mIHVuY29tbW9uIG9yIGJldHRlciByYXJpdHlcclxuICAgICAgKCR7Zm9ybWF0SW50KEdseXBocy5hY3RpdmVXaXRob3V0Q29tcGFuaW9uLmNvdW50V2hlcmUoZyA9PiBnICYmIGcuc3RyZW5ndGggPj0gMS41KSl9IGVxdWlwcGVkKWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IHtcclxuICAgICAgY29uc3QgYXZhaWxhYmxlR2x5cGhzID0gR2x5cGhzLmludmVudG9yeS5jb3VudFdoZXJlKGcgPT4gZyAmJiBnLnN0cmVuZ3RoID49IDEuNSk7XHJcbiAgICAgIGNvbnN0IGVxdWlwcGVkID0gR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24uY291bnRXaGVyZShnID0+IGcuc3RyZW5ndGggPj0gMS41KTtcclxuICAgICAgY29uc3QgYXZhaWxhYmxlU2xvdHMgPSBHbHlwaHMuYWN0aXZlU2xvdENvdW50IC0gR2x5cGhzLmFjdGl2ZUxpc3QubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZXF1aXBwZWQgKyBNYXRoLm1pbihhdmFpbGFibGVHbHlwaHMsIGF2YWlsYWJsZVNsb3RzKSA8IDQ7XHJcbiAgICB9LFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24uY291bnRXaGVyZShnID0+IGcuc3RyZW5ndGggPj0gMS41KSA9PT0gNCxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuUkVBTElUWV9SRVNFVF9CRUZPUkUsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJJbXByb3ZlIHRoZSBHbHlwaCByYXJpdHkgZm9ybXVsYVwiLFxyXG4gICAgZWZmZWN0OiAxLjMsXHJcbiAgICBmb3JtYXRDb3N0OiB2YWx1ZSA9PiBmb3JtYXQodmFsdWUsIDEsIDApXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIkR1cGxpY2l0eSBvZiBQb3RlbmN5XCIsXHJcbiAgICBpZDogMTcsXHJcbiAgICBjb3N0OiAxNTAwLFxyXG4gICAgcmVxdWlyZW1lbnQ6ICgpID0+IGBSZWFsaXR5IHdpdGggJHtmb3JtYXRJbnQoNCl9IEdseXBocyBlcXVpcHBlZCwgZWFjaCBoYXZpbmcgYXQgbGVhc3QgJHtmb3JtYXRJbnQoMil9IGVmZmVjdHNcclxuICAgICAgKCR7Zm9ybWF0SW50KEdseXBocy5hY3RpdmVXaXRob3V0Q29tcGFuaW9uLmNvdW50V2hlcmUoZyA9PiBnICYmIGNvdW50VmFsdWVzRnJvbUJpdG1hc2soZy5lZmZlY3RzKSA+PSAyKSl9XHJcbiAgICAgIGVxdWlwcGVkKWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+IHtcclxuICAgICAgY29uc3QgYXZhaWxhYmxlR2x5cGhzID0gR2x5cGhzLmludmVudG9yeS5jb3VudFdoZXJlKGcgPT4gZyAmJiBjb3VudFZhbHVlc0Zyb21CaXRtYXNrKGcuZWZmZWN0cykgPj0gMik7XHJcbiAgICAgIGNvbnN0IGVxdWlwcGVkID0gR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24uY291bnRXaGVyZShnID0+IGNvdW50VmFsdWVzRnJvbUJpdG1hc2soZy5lZmZlY3RzKSA+PSAyKTtcclxuICAgICAgY29uc3QgYXZhaWxhYmxlU2xvdHMgPSBHbHlwaHMuYWN0aXZlU2xvdENvdW50IC0gR2x5cGhzLmFjdGl2ZUxpc3QubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZXF1aXBwZWQgKyBNYXRoLm1pbihhdmFpbGFibGVHbHlwaHMsIGF2YWlsYWJsZVNsb3RzKSA8IDQ7XHJcbiAgICB9LFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24uY291bnRXaGVyZShnID0+IGNvdW50VmFsdWVzRnJvbUJpdG1hc2soZy5lZmZlY3RzKSA+PSAyKSA9PT0gNCxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuUkVBTElUWV9SRVNFVF9CRUZPUkUsXHJcbiAgICBkZXNjcmlwdGlvbjogKCkgPT4gYCR7Zm9ybWF0UGVyY2VudHMoMC41KX0gY2hhbmNlIHRvIGdldCBhbiBhZGRpdGlvbmFsIGVmZmVjdCBvbiBHbHlwaHNgLFxyXG4gICAgZWZmZWN0OiAwLjUsXHJcbiAgICBmb3JtYXRDb3N0OiB2YWx1ZSA9PiBmb3JtYXQodmFsdWUsIDEsIDApXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIk1lYXN1cmUgb2YgRm9yZXZlclwiLFxyXG4gICAgaWQ6IDE4LFxyXG4gICAgY29zdDogMTUwMCxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgUmVhbGl0eSB3aXRoICR7Zm9ybWF0SW50KDQpfSBHbHlwaHMgZXF1aXBwZWQsIGVhY2ggYXQgbGV2ZWwgJHtmb3JtYXRJbnQoMTApfSBvciBoaWdoZXJcclxuICAgICAgKCR7Zm9ybWF0SW50KEdseXBocy5hY3RpdmVXaXRob3V0Q29tcGFuaW9uLmNvdW50V2hlcmUoZyA9PiBnICYmIGcubGV2ZWwgPj0gMTApKX0gZXF1aXBwZWQpYCxcclxuICAgIGhhc0ZhaWxlZDogKCkgPT4ge1xyXG4gICAgICBjb25zdCBhdmFpbGFibGVHbHlwaHMgPSBHbHlwaHMuaW52ZW50b3J5LmNvdW50V2hlcmUoZyA9PiBnICYmIGcubGV2ZWwgPj0gMTApO1xyXG4gICAgICBjb25zdCBlcXVpcHBlZCA9IEdseXBocy5hY3RpdmVXaXRob3V0Q29tcGFuaW9uLmNvdW50V2hlcmUoZyA9PiBnLmxldmVsID49IDEwKTtcclxuICAgICAgY29uc3QgYXZhaWxhYmxlU2xvdHMgPSBHbHlwaHMuYWN0aXZlU2xvdENvdW50IC0gR2x5cGhzLmFjdGl2ZUxpc3QubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZXF1aXBwZWQgKyBNYXRoLm1pbihhdmFpbGFibGVHbHlwaHMsIGF2YWlsYWJsZVNsb3RzKSA8IDQ7XHJcbiAgICB9LFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24uY291bnRXaGVyZShnID0+IGcubGV2ZWwgPj0gMTApID09PSA0LFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5SRUFMSVRZX1JFU0VUX0JFRk9SRSxcclxuICAgIGRlc2NyaXB0aW9uOiBcIkV0ZXJuaXR5IGNvdW50IGJvb3N0cyBHbHlwaCBsZXZlbFwiLFxyXG4gICAgZWZmZWN0OiAoKSA9PiBNYXRoLm1heChNYXRoLnNxcnQoQ3VycmVuY3kuZXRlcm5pdGllcy52YWx1ZS5wbHVzKDEpLmxvZzEwKCkpICogMC40NSwgMSksXHJcbiAgICBmb3JtYXRDb3N0OiB2YWx1ZSA9PiBmb3JtYXQodmFsdWUsIDEsIDApXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIlNjb3VyIHRvIEVtcG93ZXJcIixcclxuICAgIGlkOiAxOSxcclxuICAgIGNvc3Q6IDE1MDAsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYEhhdmUgYSB0b3RhbCBvZiAke2Zvcm1hdEludCgzMCl9IG9yIG1vcmUgR2x5cGhzIGF0IG9uY2VcclxuICAgICAgKFlvdSBoYXZlICR7Zm9ybWF0SW50KEdseXBocy5hbGxHbHlwaHMuY291bnRXaGVyZShnID0+IGcudHlwZSAhPT0gXCJjb21wYW5pb25cIikpfSlgLFxyXG4gICAgaGFzRmFpbGVkOiAoKSA9PiBHbHlwaHMuYWxsR2x5cGhzLmNvdW50V2hlcmUoZyA9PiBnLnR5cGUgIT09IFwiY29tcGFuaW9uXCIpIDwgMzAsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBHbHlwaHMuYWxsR2x5cGhzLmNvdW50V2hlcmUoZyA9PiBnLnR5cGUgIT09IFwiY29tcGFuaW9uXCIpID49IDMwLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5SRUFMSVRZX1JFU0VUX0JFRk9SRSxcclxuICAgIGRlc2NyaXB0aW9uOiBcIllvdSBjYW4gc2FjcmlmaWNlIEdseXBocyBmb3IgcGVybWFuZW50IGJvbnVzZXMgKFNoaWZ0ICsgY2xpY2spXCIsXHJcbiAgICBmb3JtYXRDb3N0OiB2YWx1ZSA9PiBmb3JtYXQodmFsdWUsIDEsIDApXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIlBhcml0eSBvZiBTaW5ndWxhcml0eVwiLFxyXG4gICAgaWQ6IDIwLFxyXG4gICAgY29zdDogMTUwMCxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgJHtmb3JtYXRJbnQoMTAwKX0gZGF5cyB0b3RhbCBwbGF5IHRpbWUgYWZ0ZXIgdW5sb2NraW5nIHRoZSBCbGFjayBIb2xlXHJcbiAgICAgIChDdXJyZW50bHk6ICR7VGltZS50aW1lU2luY2VCbGFja0hvbGUudG9TdHJpbmdTaG9ydChmYWxzZSl9KWAsXHJcbiAgICBoYXNGYWlsZWQ6ICgpID0+ICFCbGFja0hvbGUoMSkuaXNVbmxvY2tlZCAmJiBDdXJyZW5jeS5yZWFsaXR5TWFjaGluZXMubHQoMTAwKSxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IFRpbWUudGltZVNpbmNlQmxhY2tIb2xlLnRvdGFsRGF5cyA+PSAxMDAgJiYgQmxhY2tIb2xlKDEpLmlzVW5sb2NrZWQsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkdBTUVfVElDS19BRlRFUixcclxuICAgIGRlc2NyaXB0aW9uOiBcIlVubG9jayBhbm90aGVyIEJsYWNrIEhvbGVcIixcclxuICAgIGF1dG9tYXRvclBvaW50czogMTAsXHJcbiAgICBzaG9ydERlc2NyaXB0aW9uOiAoKSA9PiBgU2Vjb25kIEJsYWNrIEhvbGVgLFxyXG4gICAgZm9ybWF0Q29zdDogdmFsdWUgPT4gZm9ybWF0KHZhbHVlLCAxLCAwKVxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJDb3NtaWMgQ29uZ2xvbWVyYXRlXCIsXHJcbiAgICBpZDogMjEsXHJcbiAgICBjb3N0OiAxMDAwMDAsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYCR7Zm9ybWF0SW50KFJlcGxpY2FudGkuZ2FsYXhpZXMudG90YWwgKyBwbGF5ZXIuZ2FsYXhpZXMgK1xyXG4gICAgICBwbGF5ZXIuZGlsYXRpb24udG90YWxUYWNoeW9uR2FsYXhpZXMpfS8ke2Zvcm1hdEludCgyODAwKX0gdG90YWwgR2FsYXhpZXMgZnJvbSBhbGwgdHlwZXNgLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT5cclxuICAgICAgUmVwbGljYW50aS5nYWxheGllcy50b3RhbCArIHBsYXllci5nYWxheGllcyArIHBsYXllci5kaWxhdGlvbi50b3RhbFRhY2h5b25HYWxheGllcyA+PSAyODAwLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5HQU1FX1RJQ0tfQUZURVIsXHJcbiAgICBkZXNjcmlwdGlvbjogKCkgPT4gYFJlbW90ZSBBbnRpbWF0dGVyIEdhbGF4eSBzY2FsaW5nIGlzIG1vdmVkIHRvICR7Zm9ybWF0SW50KDFlNSl9IGdhbGF4aWVzYCxcclxuICAgIGVmZmVjdDogMWU1XHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIlRlbXBvcmFsIFRyYW5zY2VuZGVuY2VcIixcclxuICAgIGlkOiAyMixcclxuICAgIGNvc3Q6IDEwMDAwMCxcclxuICAgIHJlcXVpcmVtZW50OiAoKSA9PiBgJHtmb3JtYXQoQ3VycmVuY3kudGltZVNoYXJkcy52YWx1ZSwgMSl9LyR7Zm9ybWF0KERDLkUyODAwMCl9IFRpbWUgU2hhcmRzYCxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IEN1cnJlbmN5LnRpbWVTaGFyZHMuZXhwb25lbnQgPj0gMjgwMDAsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkdBTUVfVElDS19BRlRFUixcclxuICAgIGRlc2NyaXB0aW9uOiBcIlRpbWUgRGltZW5zaW9uIG11bHRpcGxpZXIgYmFzZWQgb24gZGF5cyBzcGVudCBpbiB0aGlzIFJlYWxpdHlcIixcclxuICAgIGVmZmVjdDogKCkgPT4gRGVjaW1hbC5wb3cxMChNYXRoLnBvdygxICsgMiAqIE1hdGgubG9nMTAoVGltZS50aGlzUmVhbGl0eS50b3RhbERheXMgKyAxKSwgMS42KSksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHZhbHVlID0+IGZvcm1hdFgodmFsdWUsIDIsIDIpXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIlJlcGxpY2F0aXZlIFJhcGlkaXR5XCIsXHJcbiAgICBpZDogMjMsXHJcbiAgICBjb3N0OiAxMDAwMDAsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYFJlYWxpdHkgaW4gdW5kZXIgJHtmb3JtYXRJbnQoMTUpfSBtaW51dGVzIG9mIGdhbWUgdGltZVxyXG4gICAgICAoRmFzdGVzdDogJHtUaW1lLmJlc3RSZWFsaXR5LnRvU3RyaW5nU2hvcnQoKX0pYCxcclxuICAgIGhhc0ZhaWxlZDogKCkgPT4gVGltZS50aGlzUmVhbGl0eS50b3RhbE1pbnV0ZXMgPj0gMTUsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBUaW1lLnRoaXNSZWFsaXR5LnRvdGFsTWludXRlcyA8IDE1LFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5SRUFMSVRZX1JFU0VUX0JFRk9SRSxcclxuICAgIGRlc2NyaXB0aW9uOiBcIlJlcGxpY2FudGkgc3BlZWQgaXMgYm9vc3RlZCBiYXNlZCBvbiB5b3VyIGZhc3Rlc3QgZ2FtZS10aW1lIFJlYWxpdHlcIixcclxuICAgIGVmZmVjdDogKCkgPT4gMTUgLyBNYXRoLmNsYW1wKFRpbWUuYmVzdFJlYWxpdHkudG90YWxNaW51dGVzLCAxIC8gMTIsIDE1KSxcclxuICAgIGNhcDogMTgwLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB2YWx1ZSA9PiBmb3JtYXRYKHZhbHVlLCAyLCAyKVxyXG4gIH0sXHJcbiAge1xyXG4gICAgbmFtZTogXCJTeW50aGV0aWMgU3ltYm9saXNtXCIsXHJcbiAgICBpZDogMjQsXHJcbiAgICBjb3N0OiAxMDAwMDAsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYFJlYWxpdHkgZm9yICR7Zm9ybWF0SW50KDUwMDApfSBSZWFsaXR5IE1hY2hpbmVzIHdpdGhvdXQgZXF1aXBwZWQgR2x5cGhzYCxcclxuICAgIGhhc0ZhaWxlZDogKCkgPT4gR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24ubGVuZ3RoID4gMCxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IE1hY2hpbmVIYW5kbGVyLmdhaW5lZFJlYWxpdHlNYWNoaW5lcy5ndGUoNTAwMCkgJiZcclxuICAgICAgR2x5cGhzLmFjdGl2ZVdpdGhvdXRDb21wYW5pb24ubGVuZ3RoID09PSAwLFxyXG4gICAgY2FuTG9jazogdHJ1ZSxcclxuICAgIGxvY2tFdmVudDogXCJlcXVpcCBhIG5vbi1Db21wYW5pb24gR2x5cGhcIixcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuUkVBTElUWV9SRVNFVF9CRUZPUkUsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJHYWluIGFub3RoZXIgR2x5cGggc2xvdFwiLFxyXG4gICAgZWZmZWN0OiAoKSA9PiAxXHJcbiAgfSxcclxuICB7XHJcbiAgICBuYW1lOiBcIkVmZm9ydGxlc3MgRXhpc3RlbmNlXCIsXHJcbiAgICBpZDogMjUsXHJcbiAgICBjb3N0OiAxMDAwMDAsXHJcbiAgICByZXF1aXJlbWVudDogKCkgPT4gYFJlYWNoICR7Zm9ybWF0KERDLkUxMTExMSl9IEVQIChCZXN0OiAke2Zvcm1hdChwbGF5ZXIucmVjb3Jkcy5iZXN0UmVhbGl0eS5iZXN0RVAsIDIpfSBFUClgLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gcGxheWVyLnJlY29yZHMuYmVzdFJlYWxpdHkuYmVzdEVQLmV4cG9uZW50ID49IDExMTExLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5FVEVSTklUWV9SRVNFVF9BRlRFUixcclxuICAgIGRlc2NyaXB0aW9uOiBcIlVubG9jayB0aGUgUmVhbGl0eSBhdXRvYnV5ZXIgYW5kIEF1dG9tYXRvciBjb21tYW5kXCIsXHJcbiAgICBhdXRvbWF0b3JQb2ludHM6IDEwMCxcclxuICAgIHNob3J0RGVzY3JpcHRpb246ICgpID0+IGBSZWFsaXR5IEF1dG9idXllcmAsXHJcbiAgfSxcclxuXTtcclxuIl0sIm5hbWVzIjpbIkRDIiwicmVidXlhYmxlIiwicHJvcHMiLCJjb3N0IiwiZ2V0SHlicmlkQ29zdFNjYWxpbmciLCJwbGF5ZXIiLCJyZWFsaXR5IiwicmVidXlhYmxlcyIsImlkIiwiaW5pdGlhbENvc3QiLCJjb3N0TXVsdCIsIkUzMDkiLCJlZmZlY3QiLCJNYXRoIiwicG93IiwiSW1hZ2luYXJ5VXBncmFkZSIsImVmZmVjdE9yRGVmYXVsdCIsImdldEFkanVzdGVkR2x5cGhFZmZlY3QiLCJkZXNjcmlwdGlvbiIsInRleHRUZW1wbGF0ZSIsInJlcGxhY2UiLCJlZmZlY3RWYWx1ZSIsImZvcm1hdEludCIsImZvcm1hdCIsImZvcm1hdEVmZmVjdCIsInZhbHVlIiwiZm9ybWF0WCIsImZvcm1hdENvc3QiLCJyZWFsaXR5VXBncmFkZXMiLCJuYW1lIiwicmVxdWlyZW1lbnQiLCJoYXNGYWlsZWQiLCJyZXF1aXJlbWVudENoZWNrcyIsImV0ZXJuaXR5Iiwibm9SRyIsIm5vRXRlcm5pdGllcyIsImNoZWNrUmVxdWlyZW1lbnQiLCJjaGVja0V2ZW50IiwiR0FNRV9FVkVOVCIsIkVURVJOSVRZX1JFU0VUX0JFRk9SRSIsImNhbkxvY2siLCJsb2NrRXZlbnQiLCJSZXBsaWNhbnRpIiwiZ2FsYXhpZXMiLCJ0b3RhbCIsIm5vSW5maW5pdGllcyIsIkJJR19DUlVOQ0hfQkVGT1JFIiwiZ2FpbmVkQXV0b0FjaGlldmVtZW50cyIsInNxcnQiLCJBY2hpZXZlbWVudHMiLCJwb3dlciIsImludmFsaWRFcXVpcHBlZEdseXBocyIsIkdseXBocyIsImFjdGl2ZVdpdGhvdXRDb21wYW5pb24iLCJsZW5ndGgiLCJsZXZlbCIsImhhc1ZhbGlkR2x5cGhJbkludmVudG9yeSIsImludmVudG9yeSIsImNvdW50V2hlcmUiLCJnIiwiQ3VycmVuY3kiLCJldGVybml0eVBvaW50cyIsImV4cG9uZW50IiwiRVRFUk5JVFlfUkVTRVRfQUZURVIiLCJmb3JtYXRQb3N0QnJlYWsiLCJFNDAwIiwiaW5maW5pdHlQb2ludHMiLCJieXBhc3NMb2NrIiwiYXV0b21hdG9yUG9pbnRzIiwic2hvcnREZXNjcmlwdGlvbiIsImluZmluaXRpZXNCYW5rZWQiLCJFMTIiLCJSRUFMSVRZX0ZJUlNUX1VOTE9DS0VEIiwiZ2FpbmVkSW5maW5pdGllcyIsInRpbWVzIiwiRTcwIiwiRXRlcm5pdHlDaGFsbGVuZ2UiLCJjb21wbGV0aW9ucyIsInRpbWVUaGVvcmVtcyIsIm1pbnVzIiwiRTMiLCJjbGFtcE1pbiIsImxvZzIiLCJtaW4iLCJyZWFsaXRpZXMiLCJFNDAwMCIsIkFycmF5IiwicmFuZ2UiLCJldmVyeSIsImkiLCJUaW1lRGltZW5zaW9uIiwiYW1vdW50IiwiZXF1YWxzIiwiZXRlcm5pdGllcyIsImd0ZSIsIlJhIiwidW5sb2NrcyIsImNvbnRpbnVvdXNUVEJvb3N0IiwiZWZmZWN0cyIsIkUxMCIsImVwbXVsdFVwZ3JhZGVzIiwibWF4IiwiRGVjaW1hbCIsImxvZzEwIiwiRXRlcm5pdHlVcGdyYWRlIiwiZXBNdWx0Iiwic3RyZW5ndGgiLCJhdmFpbGFibGVHbHlwaHMiLCJlcXVpcHBlZCIsImF2YWlsYWJsZVNsb3RzIiwiYWN0aXZlU2xvdENvdW50IiwiYWN0aXZlTGlzdCIsIlJFQUxJVFlfUkVTRVRfQkVGT1JFIiwiY291bnRWYWx1ZXNGcm9tQml0bWFzayIsImZvcm1hdFBlcmNlbnRzIiwicGx1cyIsImFsbEdseXBocyIsInR5cGUiLCJUaW1lIiwidGltZVNpbmNlQmxhY2tIb2xlIiwidG9TdHJpbmdTaG9ydCIsIkJsYWNrSG9sZSIsImlzVW5sb2NrZWQiLCJyZWFsaXR5TWFjaGluZXMiLCJsdCIsInRvdGFsRGF5cyIsIkdBTUVfVElDS19BRlRFUiIsImRpbGF0aW9uIiwidG90YWxUYWNoeW9uR2FsYXhpZXMiLCJ0aW1lU2hhcmRzIiwiRTI4MDAwIiwicG93MTAiLCJ0aGlzUmVhbGl0eSIsImJlc3RSZWFsaXR5IiwidG90YWxNaW51dGVzIiwiY2xhbXAiLCJjYXAiLCJNYWNoaW5lSGFuZGxlciIsImdhaW5lZFJlYWxpdHlNYWNoaW5lcyIsIkUxMTExMSIsInJlY29yZHMiLCJiZXN0RVAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/core/secret-formula/reality/reality-upgrades.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/script-templates.js": +/*!*****************************************************!*\ + !*** ./src/core/secret-formula/script-templates.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"automatorTemplates\": () => (/* binding */ automatorTemplates)\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n/* harmony import */ var core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_exec_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_tabs_autobuyers_AutobuyerInput__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/tabs/autobuyers/AutobuyerInput */ \"./src/components/tabs/autobuyers/AutobuyerInput.vue\");\n\n\nconst automatorTemplates = {\n /**\r\n * List of possible data types to dynamically generate in script templates, assumed to be only string or boolean\r\n * {\r\n * @property {String} name String to be used as a key for entries in this object\r\n * @property {String[]} boolDisplay Strings to be displayed for true/false states for boolean inputs. If\r\n * undefined, assumed to be a non-boolean input\r\n * @property {Function} isValidString A function used to test if an input string is formatted properly or not\r\n * @property {Function} map A function to be used to map the inputs to their actual values\r\n * which are stored in the param object. If undefined, assumed to be no mapping\r\n * }\r\n */\n paramTypes: [{\n name: \"tree\",\n isValidString: str => {\n const validImport = TimeStudyTree.isValidImportString(str);\n const preset = str.match(/^(NAME ((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){1,4})|ID ([0-9]))$/);\n const validPreset = preset ? player.timestudy.presets.some(p => p.name === preset[2]) || Number(preset[3]) > 0 && Number(preset[3]) < 7 : false;\n return validImport || validPreset;\n }\n }, {\n name: \"integer\",\n isValidString: str => _components_tabs_autobuyers_AutobuyerInput__WEBPACK_IMPORTED_MODULE_1__.AutobuyerInputFunctions.int.tryParse(str),\n map: x => Math.round(parseInt(x, 10))\n }, {\n name: \"decimal\",\n isValidString: str => _components_tabs_autobuyers_AutobuyerInput__WEBPACK_IMPORTED_MODULE_1__.AutobuyerInputFunctions.decimal.tryParse(str),\n map: x => _components_tabs_autobuyers_AutobuyerInput__WEBPACK_IMPORTED_MODULE_1__.AutobuyerInputFunctions.decimal.tryParse(x)\n }, {\n name: \"boolean\",\n boolDisplay: [true, false]\n }, {\n name: \"nowait\",\n boolDisplay: [\"Continue onward\", \"Keep buying Studies\"]\n }, {\n name: \"mode\",\n boolDisplay: [\"X times highest\", \"Seconds since last\"],\n map: x => x ? \"mult\" : \"time\"\n }],\n\n /**\r\n * List automator script templates, primarily used here for formatting the player UI prompts appropriately\r\n * so that all of the required fields show up in the proper input formats. Actual script formatting requires\r\n * additionally writing a method to be called in the constructor of the ScriptTemplate class\r\n * {\r\n * @property {String} name Name of script template, also used as a key within the constructor for\r\n * ScriptTemplate objects\r\n * @property {String} description Text description of what the template does when used in the automator\r\n * @property {Object[]} inputs Fields of the param object which need to be filled for the template to\r\n * have all the information it needs. Contains the name of the field, the type (drawn from paramTypes above),\r\n * and a prompt to be shown in the UI end\r\n * @property {Function} warnings Function which checks the current game state and potentially provides\r\n * warnings based on some possibly common cases which may lead to undesired behavior\r\n * }\r\n */\n scripts: [{\n name: \"Climb EP\",\n description: `This script performs repeated Eternities, attempting to re-purchase a Time Study Tree every\n Eternity. Autobuyer settings must be supplied for the Infinity and Eternity Autobuyers. The script will\n repeat until a final Eternity Point value is reached.`,\n inputs: [{\n name: \"treeStudies\",\n type: \"tree\",\n prompt: \"Or directly enter your time studies\"\n }, {\n name: \"treeNowait\",\n type: \"nowait\",\n prompt: \"Missing Study behavior\"\n }, {\n name: \"finalEP\",\n type: \"decimal\",\n prompt: \"Target EP\"\n }, {\n name: \"autoInfMode\",\n type: \"mode\",\n prompt: \"Infinity Autobuyer Mode\"\n }, {\n name: \"autoInfValue\",\n type: \"decimal\",\n prompt: \"Infinity Autobuyer Threshold\"\n }, {\n name: \"autoEterMode\",\n type: \"mode\",\n prompt: \"Eternity Autobuyer Mode\"\n }, {\n name: \"autoEterValue\",\n type: \"decimal\",\n prompt: \"Eternity Autobuyer Threshold\"\n }],\n warnings: () => {\n const list = [];\n\n if (!RealityUpgrade(10).isBought) {\n list.push(`This script will be unable to properly set Autobuyer modes without at least ${formatInt(100)}\n Eternities. Consider getting Reality Upgrade \"${RealityUpgrade(10).name}\" before using this at the start\n of a Reality.`);\n } // Telemechanical Process (TD/5xEP autobuyers)\n\n\n if (!RealityUpgrade(13).isBought) {\n list.push(`This template may perform poorly without Reality Upgrade \"${RealityUpgrade(13).name}\"`);\n }\n\n if (!Perk.ttBuySingle.isBought) {\n list.push(`This template may perform poorly without Perk \"${Perk.ttBuySingle.label}\" unless you can generate\n Time Theorems without purchsing them`);\n }\n\n return list;\n }\n }, {\n name: \"Grind Eternities\",\n description: `This script performs repeated fast Eternities after buying a specified Time Study Tree.\n Auto-Infinity will be set to \"Times Highest\" with a specified number of crunches and Auto-Eternity will\n trigger as soon as possible. The script will repeat until a final Eternity count is reached.`,\n inputs: [{\n name: \"treeStudies\",\n type: \"tree\",\n prompt: \"Or directly enter your time studies\"\n }, {\n name: \"treeNowait\",\n type: \"nowait\",\n prompt: \"Missing Study behavior\"\n }, {\n name: \"crunchesPerEternity\",\n type: \"integer\",\n prompt: \"Crunches per Eternity\"\n }, {\n name: \"eternities\",\n type: \"decimal\",\n prompt: \"Target Eternity Count\"\n }],\n warnings: () => {\n const list = []; // Eternal flow (eternity generation)\n\n if (RealityUpgrade(14).isBought) {\n list.push(`You probably do not need to use this due to Reality Upgrade \"${RealityUpgrade(14).name}\"`);\n }\n\n return list;\n }\n }, {\n name: \"Grind Infinities\",\n description: `This script buys a specified Time Study Tree and then configures your Autobuyers for gaining\n Infinities. It will repeat until a final Infinity count is reached; the count can be for Banked Infinities,\n in which case it will get all Infinities before performing a single Eternity.`,\n inputs: [{\n name: \"treeStudies\",\n type: \"tree\",\n prompt: \"Or directly enter your time studies\"\n }, {\n name: \"treeNowait\",\n type: \"nowait\",\n prompt: \"Missing Study behavior\"\n }, {\n name: \"infinities\",\n type: \"decimal\",\n prompt: \"Target Infinity Count\"\n }, {\n name: \"isBanked\",\n type: \"boolean\",\n prompt: \"Use Banked for Target?\"\n }],\n warnings: () => {\n const list = [];\n\n if (!Perk.achievementGroup5.isBought) {\n list.push(`You will not start this Reality with Achievement \"${Achievement(131).name}\" - grinding\n Infinities may be less useful than expected since they cannot be Banked until later`);\n } // Boundless flow (infinity generation)\n\n\n if (RealityUpgrade(11).isBought) {\n list.push(`You probably do not need to use this due to Reality Upgrade \"${RealityUpgrade(11).name}\"`);\n }\n\n return list;\n }\n }, {\n name: \"Complete Eternity Challenge\",\n description: `This script buys a specified Time Study Tree and then unlocks a specified Eternity Challenge.\n Then it will set your Infinity Autobuyer to your specified settings and enter the Eternity Challenge.\n Finally, it will wait until at least the desired number of completions before triggering an Eternity to\n complete the Challenge.`,\n inputs: [{\n name: \"treeStudies\",\n type: \"tree\",\n prompt: \"Or directly enter your time studies\"\n }, {\n name: \"treeNowait\",\n type: \"nowait\",\n prompt: \"Missing Study behavior\"\n }, {\n name: \"ec\",\n type: \"integer\",\n prompt: \"Eternity Challenge ID\"\n }, {\n name: \"completions\",\n type: \"integer\",\n prompt: \"Target Completion Count\"\n }, {\n name: \"autoInfMode\",\n type: \"mode\",\n prompt: \"Infinity Autobuyer Mode\"\n }, {\n name: \"autoInfValue\",\n type: \"decimal\",\n prompt: \"Infinity Autobuyer Threshold\"\n }],\n warnings: () => {\n const list = [];\n\n if (!Perk.studyECRequirement.isBought) {\n list.push(`Eternity Challenges may not be reliably unlockable due to secondary resource requirements, consider\n unlocking Perk \"${Perk.studyECRequirement.label}\" before using this template`);\n }\n\n if (!Perk.studyECBulk.isBought) {\n list.push(`Using this template without bulk completions of Eternity Challenges may lead to long scripts which\n are slower and difficult to modify. If you use this template, consider returning to simplify your scripts\n after unlocking Perk \"${Perk.studyECBulk.label}\"`);\n }\n\n return list;\n }\n }, {\n name: \"Unlock Dilation\",\n description: `This script performs repeated Eternities, attempting to re-purchase a Time Study Tree every\n Eternity. Settings must be supplied for the Eternity Autobuyer; your Infinity Autobuyer will be\n turned off. The script loops until you have the total Time Theorem requirement to unlock Dilation, and then\n it will unlock Dilation once it does.`,\n inputs: [{\n name: \"treeStudies\",\n type: \"tree\",\n prompt: \"Or directly enter your time studies\"\n }, {\n name: \"treeNowait\",\n type: \"nowait\",\n prompt: \"Missing Study behavior\"\n }, {\n name: \"finalEP\",\n type: \"decimal\",\n prompt: \"Target EP\"\n }, {\n name: \"autoEterMode\",\n type: \"mode\",\n prompt: \"Eternity Autobuyer Mode\"\n }, {\n name: \"autoEterValue\",\n type: \"decimal\",\n prompt: \"Eternity Autobuyer Threshold\"\n }],\n warnings: () => {\n const list = []; // Telemechanical Process (TD/5xEP autobuyers)\n\n if (!RealityUpgrade(13).isBought) {\n list.push(`This template may perform poorly without Reality Upgrade \"${RealityUpgrade(13).name}\"`);\n }\n\n if (!Perk.ttBuySingle.isBought) {\n list.push(`This template may perform poorly without Perk \"${Perk.ttBuySingle.label}\" unless you can generate\n Time Theorems without purchsing them`);\n }\n\n return list;\n }\n }]\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9zY3JpcHQtdGVtcGxhdGVzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7QUFFTyxNQUFNQyxrQkFBa0IsR0FBRztBQUNoQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0VDLEVBQUFBLFVBQVUsRUFBRSxDQUNWO0FBQ0VDLElBQUFBLElBQUksRUFBRSxNQURSO0FBRUVDLElBQUFBLGFBQWEsRUFBRUMsR0FBRyxJQUFJO0FBQ3BCLFlBQU1DLFdBQVcsR0FBR0MsYUFBYSxDQUFDQyxtQkFBZCxDQUFrQ0gsR0FBbEMsQ0FBcEI7QUFDQSxZQUFNSSxNQUFNLEdBQUdKLEdBQUcsQ0FBQ0ssS0FBSixDQUFVLDJMQUFWLENBQWY7QUFDQSxZQUFNQyxXQUFXLEdBQUdGLE1BQU0sR0FDeEJHLE1BQU0sQ0FBQ0MsU0FBUCxDQUFpQkMsT0FBakIsQ0FBeUJDLElBQXpCLENBQThCQyxDQUFDLElBQUlBLENBQUMsQ0FBQ2IsSUFBRixLQUFXTSxNQUFNLENBQUMsQ0FBRCxDQUFwRCxLQUNDUSxNQUFNLENBQUNSLE1BQU0sQ0FBQyxDQUFELENBQVAsQ0FBTixHQUFvQixDQUFwQixJQUF5QlEsTUFBTSxDQUFDUixNQUFNLENBQUMsQ0FBRCxDQUFQLENBQU4sR0FBb0IsQ0FGdEIsR0FHdEIsS0FISjtBQUlBLGFBQU9ILFdBQVcsSUFBSUssV0FBdEI7QUFDRDtBQVZILEdBRFUsRUFhVjtBQUNFUixJQUFBQSxJQUFJLEVBQUUsU0FEUjtBQUVFQyxJQUFBQSxhQUFhLEVBQUVDLEdBQUcsSUFBSUwsNEdBQUEsQ0FBcUNLLEdBQXJDLENBRnhCO0FBR0VlLElBQUFBLEdBQUcsRUFBRUMsQ0FBQyxJQUFJQyxJQUFJLENBQUNDLEtBQUwsQ0FBV0MsUUFBUSxDQUFDSCxDQUFELEVBQUksRUFBSixDQUFuQjtBQUhaLEdBYlUsRUFrQlY7QUFDRWxCLElBQUFBLElBQUksRUFBRSxTQURSO0FB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QUF0QixFQUFnQztBQUM5QkYsUUFBQUEsSUFBSSxDQUFDRyxJQUFMLENBQVcsa0RBQWlERSxJQUFJLENBQUNDLFdBQUwsQ0FBaUJDLEtBQU07QUFDN0YsaURBRFU7QUFFRDs7QUFDRCxhQUFPUCxJQUFQO0FBQ0Q7QUF4QkgsR0F6R087QUFoRXVCLENBQTNCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvcmUvc2VjcmV0LWZvcm11bGEvc2NyaXB0LXRlbXBsYXRlcy5qcz84NGFkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dG9idXllcklucHV0RnVuY3Rpb25zIH0gZnJvbSBcIkAvY29tcG9uZW50cy90YWJzL2F1dG9idXllcnMvQXV0b2J1eWVySW5wdXRcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBhdXRvbWF0b3JUZW1wbGF0ZXMgPSB7XHJcbiAgLyoqXHJcbiAgICAqIExpc3Qgb2YgcG9zc2libGUgZGF0YSB0eXBlcyB0byBkeW5hbWljYWxseSBnZW5lcmF0ZSBpbiBzY3JpcHQgdGVtcGxhdGVzLCBhc3N1bWVkIHRvIGJlIG9ubHkgc3RyaW5nIG9yIGJvb2xlYW5cclxuICAgICoge1xyXG4gICAgKiAgQHByb3BlcnR5IHtTdHJpbmd9IG5hbWUgICAgICAgICAgICAgIFN0cmluZyB0byBiZSB1c2VkIGFzIGEga2V5IGZvciBlbnRyaWVzIGluIHRoaXMgb2JqZWN0XHJcbiAgICAqICBAcHJvcGVydHkge1N0cmluZ1tdfSBib29sRGlzcGxheSAgICAgU3RyaW5ncyB0byBiZSBkaXNwbGF5ZWQgZm9yIHRydWUvZmFsc2Ugc3RhdGVzIGZvciBib29sZWFuIGlucHV0cy4gSWZcclxuICAgICogICB1bmRlZmluZWQsIGFzc3VtZWQgdG8gYmUgYSBub24tYm9vbGVhbiBpbnB1dFxyXG4gICAgKiAgQHByb3BlcnR5IHtGdW5jdGlvbn0gaXNWYWxpZFN0cmluZyAgIEEgZnVuY3Rpb24gdXNlZCB0byB0ZXN0IGlmIGFuIGlucHV0IHN0cmluZyBpcyBmb3JtYXR0ZWQgcHJvcGVybHkgb3Igbm90XHJcbiAgICAqICBAcHJvcGVydHkge0Z1bmN0aW9ufSBtYXAgICAgICAgICAgICAgQSBmdW5jdGlvbiB0byBiZSB1c2VkIHRvIG1hcCB0aGUgaW5wdXRzIHRvIHRoZWlyIGFjdHVhbCB2YWx1ZXNcclxuICAgICogICB3aGljaCBhcmUgc3RvcmVkIGluIHRoZSBwYXJhbSBvYmplY3QuIElmIHVuZGVmaW5lZCwgYXNzdW1lZCB0byBiZSBubyBtYXBwaW5nXHJcbiAgICAqIH1cclxuICAgICovXHJcbiAgcGFyYW1UeXBlczogW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiBcInRyZWVcIixcclxuICAgICAgaXNWYWxpZFN0cmluZzogc3RyID0+IHtcclxuICAgICAgICBjb25zdCB2YWxpZEltcG9ydCA9IFRpbWVTdHVkeVRyZWUuaXNWYWxpZEltcG9ydFN0cmluZyhzdHIpO1xyXG4gICAgICAgIGNvbnN0IHByZXNldCA9IHN0ci5tYXRjaCgvXihOQU1FICguezEsNH0pfElEIChcXGQpKSQvdSk7XHJcbiAgICAgICAgY29uc3QgdmFsaWRQcmVzZXQgPSBwcmVzZXQgPyAoXHJcbiAgICAgICAgICBwbGF5ZXIudGltZXN0dWR5LnByZXNldHMuc29tZShwID0+IHAubmFtZSA9PT0gcHJlc2V0WzJdKSB8fFxyXG4gICAgICAgICAgKE51bWJlcihwcmVzZXRbM10pID4gMCAmJiBOdW1iZXIocHJlc2V0WzNdKSA8IDcpXHJcbiAgICAgICAgKSA6IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiB2YWxpZEltcG9ydCB8fCB2YWxpZFByZXNldDtcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6IFwiaW50ZWdlclwiLFxyXG4gICAgICBpc1ZhbGlkU3RyaW5nOiBzdHIgPT4gQXV0b2J1eWVySW5wdXRGdW5jdGlvbnMuaW50LnRyeVBhcnNlKHN0ciksXHJcbiAgICAgIG1hcDogeCA9PiBNYXRoLnJvdW5kKHBhcnNlSW50KHgsIDEwKSksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiBcImRlY2ltYWxcIixcclxuICAgICAgaXNWYWxpZFN0cmluZzogc3RyID0+IEF1dG9idXllcklucHV0RnVuY3Rpb25zLmRlY2ltYWwudHJ5UGFyc2Uoc3RyKSxcclxuICAgICAgbWFwOiB4ID0+IEF1dG9idXllcklucHV0RnVuY3Rpb25zLmRlY2ltYWwudHJ5UGFyc2UoeCksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiBcImJvb2xlYW5cIixcclxuICAgICAgYm9vbERpc3BsYXk6IFt0cnVlLCBmYWxzZV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiBcIm5vd2FpdFwiLFxyXG4gICAgICBib29sRGlzcGxheTogW1wiQ29udGludWUgb253YXJkXCIsIFwiS2VlcCBidXlpbmcgU3R1ZGllc1wiXSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6IFwibW9kZVwiLFxyXG4gICAgICBib29sRGlzcGxheTogW1wiWCB0aW1lcyBoaWdoZXN0XCIsIFwiU2Vjb25kcyBzaW5jZSBsYXN0XCJdLFxyXG4gICAgICBtYXA6IHggPT4gKHggPyBcIm11bHRcIiA6IFwidGltZVwiKSxcclxuICAgIH0sXHJcbiAgXSxcclxuICAvKipcclxuICAgICogTGlzdCBhdXRvbWF0b3Igc2NyaXB0IHRlbXBsYXRlcywgcHJpbWFyaWx5IHVzZWQgaGVyZSBmb3IgZm9ybWF0dGluZyB0aGUgcGxheWVyIFVJIHByb21wdHMgYXBwcm9wcmlhdGVseVxyXG4gICAgKiBzbyB0aGF0IGFsbCBvZiB0aGUgcmVxdWlyZWQgZmllbGRzIHNob3cgdXAgaW4gdGhlIHByb3BlciBpbnB1dCBmb3JtYXRzLiBBY3R1YWwgc2NyaXB0IGZvcm1hdHRpbmcgcmVxdWlyZXNcclxuICAgICogYWRkaXRpb25hbGx5IHdyaXRpbmcgYSBtZXRob2QgdG8gYmUgY2FsbGVkIGluIHRoZSBjb25zdHJ1Y3RvciBvZiB0aGUgU2NyaXB0VGVtcGxhdGUgY2xhc3NcclxuICAgICoge1xyXG4gICAgKiAgQHByb3BlcnR5IHtTdHJpbmd9IG5hbWUgICAgICAgICAgTmFtZSBvZiBzY3JpcHQgdGVtcGxhdGUsIGFsc28gdXNlZCBhcyBhIGtleSB3aXRoaW4gdGhlIGNvbnN0cnVjdG9yIGZvclxyXG4gICAgKiAgIFNjcmlwdFRlbXBsYXRlIG9iamVjdHNcclxuICAgICogIEBwcm9wZXJ0eSB7U3RyaW5nfSBkZXNjcmlwdGlvbiAgIFRleHQgZGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUgdGVtcGxhdGUgZG9lcyB3aGVuIHVzZWQgaW4gdGhlIGF1dG9tYXRvclxyXG4gICAgKiAgQHByb3BlcnR5IHtPYmplY3RbXX0gaW5wdXRzICAgICAgRmllbGRzIG9mIHRoZSBwYXJhbSBvYmplY3Qgd2hpY2ggbmVlZCB0byBiZSBmaWxsZWQgZm9yIHRoZSB0ZW1wbGF0ZSB0b1xyXG4gICAgKiAgIGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvbiBpdCBuZWVkcy4gQ29udGFpbnMgdGhlIG5hbWUgb2YgdGhlIGZpZWxkLCB0aGUgdHlwZSAoZHJhd24gZnJvbSBwYXJhbVR5cGVzIGFib3ZlKSxcclxuICAgICogICBhbmQgYSBwcm9tcHQgdG8gYmUgc2hvd24gaW4gdGhlIFVJIGVuZFxyXG4gICAgKiAgQHByb3BlcnR5IHtGdW5jdGlvbn0gd2FybmluZ3MgICAgRnVuY3Rpb24gd2hpY2ggY2hlY2tzIHRoZSBjdXJyZW50IGdhbWUgc3RhdGUgYW5kIHBvdGVudGlhbGx5IHByb3ZpZGVzXHJcbiAgICAqICAgd2FybmluZ3MgYmFzZWQgb24gc29tZSBwb3NzaWJseSBjb21tb24gY2FzZXMgd2hpY2ggbWF5IGxlYWQgdG8gdW5kZXNpcmVkIGJlaGF2aW9yXHJcbiAgICAqIH1cclxuICAgICovXHJcbiAgc2NyaXB0czogW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiBcIkNsaW1iIEVQXCIsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBgVGhpcyBzY3JpcHQgcGVyZm9ybXMgcmVwZWF0ZWQgRXRlcm5pdGllcywgYXR0ZW1wdGluZyB0byByZS1wdXJjaGFzZSBhIFRpbWUgU3R1ZHkgVHJlZSBldmVyeVxyXG4gICAgICAgIEV0ZXJuaXR5LiBBdXRvYnV5ZXIgc2V0dGluZ3MgbXVzdCBiZSBzdXBwbGllZCBmb3IgdGhlIEluZmluaXR5IGFuZCBFdGVybml0eSBBdXRvYnV5ZXJzLiBUaGUgc2NyaXB0IHdpbGxcclxuICAgICAgICByZXBlYXQgdW50aWwgYSBmaW5hbCBFdGVybml0eSBQb2ludCB2YWx1ZSBpcyByZWFjaGVkLmAsXHJcbiAgICAgIGlucHV0czogW1xyXG4gICAgICAgIHsgbmFtZTogXCJ0cmVlU3R1ZGllc1wiLCB0eXBlOiBcInRyZWVcIiwgcHJvbXB0OiBcIk9yIGRpcmVjdGx5IGVudGVyIHlvdXIgdGltZSBzdHVkaWVzXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwidHJlZU5vd2FpdFwiLCB0eXBlOiBcIm5vd2FpdFwiLCBwcm9tcHQ6IFwiTWlzc2luZyBTdHVkeSBiZWhhdmlvclwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcImZpbmFsRVBcIiwgdHlwZTogXCJkZWNpbWFsXCIsIHByb21wdDogXCJUYXJnZXQgRVBcIiB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJhdXRvSW5mTW9kZVwiLCB0eXBlOiBcIm1vZGVcIiwgcHJvbXB0OiBcIkluZmluaXR5IEF1dG9idXllciBNb2RlXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwiYXV0b0luZlZhbHVlXCIsIHR5cGU6IFwiZGVjaW1hbFwiLCBwcm9tcHQ6IFwiSW5maW5pdHkgQXV0b2J1eWVyIFRocmVzaG9sZFwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcImF1dG9FdGVyTW9kZVwiLCB0eXBlOiBcIm1vZGVcIiwgcHJvbXB0OiBcIkV0ZXJuaXR5IEF1dG9idXllciBNb2RlXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwiYXV0b0V0ZXJWYWx1ZVwiLCB0eXBlOiBcImRlY2ltYWxcIiwgcHJvbXB0OiBcIkV0ZXJuaXR5IEF1dG9idXllciBUaHJlc2hvbGRcIiB9LFxyXG4gICAgICBdLFxyXG4gICAgICB3YXJuaW5nczogKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGxpc3QgPSBbXTtcclxuICAgICAgICBpZiAoIVJlYWxpdHlVcGdyYWRlKDEwKS5pc0JvdWdodCkge1xyXG4gICAgICAgICAgbGlzdC5wdXNoKGBUaGlzIHNjcmlwdCB3aWxsIGJlIHVuYWJsZSB0byBwcm9wZXJseSBzZXQgQXV0b2J1eWVyIG1vZGVzIHdpdGhvdXQgYXQgbGVhc3QgJHtmb3JtYXRJbnQoMTAwKX1cclxuICAgICAgICAgICAgRXRlcm5pdGllcy4gQ29uc2lkZXIgZ2V0dGluZyBSZWFsaXR5IFVwZ3JhZGUgXCIke1JlYWxpdHlVcGdyYWRlKDEwKS5uYW1lfVwiIGJlZm9yZSB1c2luZyB0aGlzIGF0IHRoZSBzdGFydFxyXG4gICAgICAgICAgICBvZiBhIFJlYWxpdHkuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFRlbGVtZWNoYW5pY2FsIFByb2Nlc3MgKFRELzV4RVAgYXV0b2J1eWVycylcclxuICAgICAgICBpZiAoIVJlYWxpdHlVcGdyYWRlKDEzKS5pc0JvdWdodCkge1xyXG4gICAgICAgICAgbGlzdC5wdXNoKGBUaGlzIHRlbXBsYXRlIG1heSBwZXJmb3JtIHBvb3JseSB3aXRob3V0IFJlYWxpdHkgVXBncmFkZSBcIiR7UmVhbGl0eVVwZ3JhZGUoMTMpLm5hbWV9XCJgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFQZXJrLnR0QnV5U2luZ2xlLmlzQm91Z2h0KSB7XHJcbiAgICAgICAgICBsaXN0LnB1c2goYFRoaXMgdGVtcGxhdGUgbWF5IHBlcmZvcm0gcG9vcmx5IHdpdGhvdXQgUGVyayBcIiR7UGVyay50dEJ1eVNpbmdsZS5sYWJlbH1cIiB1bmxlc3MgeW91IGNhbiBnZW5lcmF0ZVxyXG4gICAgICAgICAgICBUaW1lIFRoZW9yZW1zIHdpdGhvdXQgcHVyY2hzaW5nIHRoZW1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiBcIkdyaW5kIEV0ZXJuaXRpZXNcIixcclxuICAgICAgZGVzY3JpcHRpb246IGBUaGlzIHNjcmlwdCBwZXJmb3JtcyByZXBlYXRlZCBmYXN0IEV0ZXJuaXRpZXMgYWZ0ZXIgYnV5aW5nIGEgc3BlY2lmaWVkIFRpbWUgU3R1ZHkgVHJlZS5cclxuICAgICAgICBBdXRvLUluZmluaXR5IHdpbGwgYmUgc2V0IHRvIFwiVGltZXMgSGlnaGVzdFwiIHdpdGggYSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNydW5jaGVzIGFuZCBBdXRvLUV0ZXJuaXR5IHdpbGxcclxuICAgICAgICB0cmlnZ2VyIGFzIHNvb24gYXMgcG9zc2libGUuIFRoZSBzY3JpcHQgd2lsbCByZXBlYXQgdW50aWwgYSBmaW5hbCBFdGVybml0eSBjb3VudCBpcyByZWFjaGVkLmAsXHJcbiAgICAgIGlucHV0czogW1xyXG4gICAgICAgIHsgbmFtZTogXCJ0cmVlU3R1ZGllc1wiLCB0eXBlOiBcInRyZWVcIiwgcHJvbXB0OiBcIk9yIGRpcmVjdGx5IGVudGVyIHlvdXIgdGltZSBzdHVkaWVzXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwidHJlZU5vd2FpdFwiLCB0eXBlOiBcIm5vd2FpdFwiLCBwcm9tcHQ6IFwiTWlzc2luZyBTdHVkeSBiZWhhdmlvclwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcImNydW5jaGVzUGVyRXRlcm5pdHlcIiwgdHlwZTogXCJpbnRlZ2VyXCIsIHByb21wdDogXCJDcnVuY2hlcyBwZXIgRXRlcm5pdHlcIiB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJldGVybml0aWVzXCIsIHR5cGU6IFwiZGVjaW1hbFwiLCBwcm9tcHQ6IFwiVGFyZ2V0IEV0ZXJuaXR5IENvdW50XCIgfSxcclxuICAgICAgXSxcclxuICAgICAgd2FybmluZ3M6ICgpID0+IHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gW107XHJcbiAgICAgICAgLy8gRXRlcm5hbCBmbG93IChldGVybml0eSBnZW5lcmF0aW9uKVxyXG4gICAgICAgIGlmIChSZWFsaXR5VXBncmFkZSgxNCkuaXNCb3VnaHQpIHtcclxuICAgICAgICAgIGxpc3QucHVzaChgWW91IHByb2JhYmx5IGRvIG5vdCBuZWVkIHRvIHVzZSB0aGlzIGR1ZSB0byBSZWFsaXR5IFVwZ3JhZGUgXCIke1JlYWxpdHlVcGdyYWRlKDE0KS5uYW1lfVwiYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsaXN0O1xyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogXCJHcmluZCBJbmZpbml0aWVzXCIsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBgVGhpcyBzY3JpcHQgYnV5cyBhIHNwZWNpZmllZCBUaW1lIFN0dWR5IFRyZWUgYW5kIHRoZW4gY29uZmlndXJlcyB5b3VyIEF1dG9idXllcnMgZm9yIGdhaW5pbmdcclxuICAgICAgICBJbmZpbml0aWVzLiBJdCB3aWxsIHJlcGVhdCB1bnRpbCBhIGZpbmFsIEluZmluaXR5IGNvdW50IGlzIHJlYWNoZWQ7IHRoZSBjb3VudCBjYW4gYmUgZm9yIEJhbmtlZCBJbmZpbml0aWVzLFxyXG4gICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBnZXQgYWxsIEluZmluaXRpZXMgYmVmb3JlIHBlcmZvcm1pbmcgYSBzaW5nbGUgRXRlcm5pdHkuYCxcclxuICAgICAgaW5wdXRzOiBbXHJcbiAgICAgICAgeyBuYW1lOiBcInRyZWVTdHVkaWVzXCIsIHR5cGU6IFwidHJlZVwiLCBwcm9tcHQ6IFwiT3IgZGlyZWN0bHkgZW50ZXIgeW91ciB0aW1lIHN0dWRpZXNcIiB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJ0cmVlTm93YWl0XCIsIHR5cGU6IFwibm93YWl0XCIsIHByb21wdDogXCJNaXNzaW5nIFN0dWR5IGJlaGF2aW9yXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwiaW5maW5pdGllc1wiLCB0eXBlOiBcImRlY2ltYWxcIiwgcHJvbXB0OiBcIlRhcmdldCBJbmZpbml0eSBDb3VudFwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcImlzQmFua2VkXCIsIHR5cGU6IFwiYm9vbGVhblwiLCBwcm9tcHQ6IFwiVXNlIEJhbmtlZCBmb3IgVGFyZ2V0P1wiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHdhcm5pbmdzOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgbGlzdCA9IFtdO1xyXG4gICAgICAgIGlmICghUGVyay5hY2hpZXZlbWVudEdyb3VwNS5pc0JvdWdodCkge1xyXG4gICAgICAgICAgbGlzdC5wdXNoKGBZb3Ugd2lsbCBub3Qgc3RhcnQgdGhpcyBSZWFsaXR5IHdpdGggQWNoaWV2ZW1lbnQgXCIke0FjaGlldmVtZW50KDEzMSkubmFtZX1cIiAtIGdyaW5kaW5nXHJcbiAgICAgICAgICAgIEluZmluaXRpZXMgbWF5IGJlIGxlc3MgdXNlZnVsIHRoYW4gZXhwZWN0ZWQgc2luY2UgdGhleSBjYW5ub3QgYmUgQmFua2VkIHVudGlsIGxhdGVyYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIEJvdW5kbGVzcyBmbG93IChpbmZpbml0eSBnZW5lcmF0aW9uKVxyXG4gICAgICAgIGlmIChSZWFsaXR5VXBncmFkZSgxMSkuaXNCb3VnaHQpIHtcclxuICAgICAgICAgIGxpc3QucHVzaChgWW91IHByb2JhYmx5IGRvIG5vdCBuZWVkIHRvIHVzZSB0aGlzIGR1ZSB0byBSZWFsaXR5IFVwZ3JhZGUgXCIke1JlYWxpdHlVcGdyYWRlKDExKS5uYW1lfVwiYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsaXN0O1xyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbmFtZTogXCJDb21wbGV0ZSBFdGVybml0eSBDaGFsbGVuZ2VcIixcclxuICAgICAgZGVzY3JpcHRpb246IGBUaGlzIHNjcmlwdCBidXlzIGEgc3BlY2lmaWVkIFRpbWUgU3R1ZHkgVHJlZSBhbmQgdGhlbiB1bmxvY2tzIGEgc3BlY2lmaWVkIEV0ZXJuaXR5IENoYWxsZW5nZS5cclxuICAgICAgICBUaGVuIGl0IHdpbGwgc2V0IHlvdXIgSW5maW5pdHkgQXV0b2J1eWVyIHRvIHlvdXIgc3BlY2lmaWVkIHNldHRpbmdzIGFuZCBlbnRlciB0aGUgRXRlcm5pdHkgQ2hhbGxlbmdlLlxyXG4gICAgICAgIEZpbmFsbHksIGl0IHdpbGwgd2FpdCB1bnRpbCBhdCBsZWFzdCB0aGUgZGVzaXJlZCBudW1iZXIgb2YgY29tcGxldGlvbnMgYmVmb3JlIHRyaWdnZXJpbmcgYW4gRXRlcm5pdHkgdG9cclxuICAgICAgICBjb21wbGV0ZSB0aGUgQ2hhbGxlbmdlLmAsXHJcbiAgICAgIGlucHV0czogW1xyXG4gICAgICAgIHsgbmFtZTogXCJ0cmVlU3R1ZGllc1wiLCB0eXBlOiBcInRyZWVcIiwgcHJvbXB0OiBcIk9yIGRpcmVjdGx5IGVudGVyIHlvdXIgdGltZSBzdHVkaWVzXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwidHJlZU5vd2FpdFwiLCB0eXBlOiBcIm5vd2FpdFwiLCBwcm9tcHQ6IFwiTWlzc2luZyBTdHVkeSBiZWhhdmlvclwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcImVjXCIsIHR5cGU6IFwiaW50ZWdlclwiLCBwcm9tcHQ6IFwiRXRlcm5pdHkgQ2hhbGxlbmdlIElEXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwiY29tcGxldGlvbnNcIiwgdHlwZTogXCJpbnRlZ2VyXCIsIHByb21wdDogXCJUYXJnZXQgQ29tcGxldGlvbiBDb3VudFwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcImF1dG9JbmZNb2RlXCIsIHR5cGU6IFwibW9kZVwiLCBwcm9tcHQ6IFwiSW5maW5pdHkgQXV0b2J1eWVyIE1vZGVcIiB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJhdXRvSW5mVmFsdWVcIiwgdHlwZTogXCJkZWNpbWFsXCIsIHByb21wdDogXCJJbmZpbml0eSBBdXRvYnV5ZXIgVGhyZXNob2xkXCIgfSxcclxuICAgICAgXSxcclxuICAgICAgd2FybmluZ3M6ICgpID0+IHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gW107XHJcbiAgICAgICAgaWYgKCFQZXJrLnN0dWR5RUNSZXF1aXJlbWVudC5pc0JvdWdodCkge1xyXG4gICAgICAgICAgbGlzdC5wdXNoKGBFdGVybml0eSBDaGFsbGVuZ2VzIG1heSBub3QgYmUgcmVsaWFibHkgdW5sb2NrYWJsZSBkdWUgdG8gc2Vjb25kYXJ5IHJlc291cmNlIHJlcXVpcmVtZW50cywgY29uc2lkZXJcclxuICAgICAgICAgICAgdW5sb2NraW5nIFBlcmsgXCIke1Blcmsuc3R1ZHlFQ1JlcXVpcmVtZW50LmxhYmVsfVwiIGJlZm9yZSB1c2luZyB0aGlzIHRlbXBsYXRlYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghUGVyay5zdHVkeUVDQnVsay5pc0JvdWdodCkge1xyXG4gICAgICAgICAgbGlzdC5wdXNoKGBVc2luZyB0aGlzIHRlbXBsYXRlIHdpdGhvdXQgYnVsayBjb21wbGV0aW9ucyBvZiBFdGVybml0eSBDaGFsbGVuZ2VzIG1heSBsZWFkIHRvIGxvbmcgc2NyaXB0cyB3aGljaFxyXG4gICAgICAgICAgICBhcmUgc2xvd2VyIGFuZCBkaWZmaWN1bHQgdG8gbW9kaWZ5LiBJZiB5b3UgdXNlIHRoaXMgdGVtcGxhdGUsIGNvbnNpZGVyIHJldHVybmluZyB0byBzaW1wbGlmeSB5b3VyIHNjcmlwdHNcclxuICAgICAgICAgICAgYWZ0ZXIgdW5sb2NraW5nIFBlcmsgXCIke1Blcmsuc3R1ZHlFQ0J1bGsubGFiZWx9XCJgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiBcIlVubG9jayBEaWxhdGlvblwiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogYFRoaXMgc2NyaXB0IHBlcmZvcm1zIHJlcGVhdGVkIEV0ZXJuaXRpZXMsIGF0dGVtcHRpbmcgdG8gcmUtcHVyY2hhc2UgYSBUaW1lIFN0dWR5IFRyZWUgZXZlcnlcclxuICAgICAgICBFdGVybml0eS4gU2V0dGluZ3MgbXVzdCBiZSBzdXBwbGllZCBmb3IgdGhlIEV0ZXJuaXR5IEF1dG9idXllcjsgeW91ciBJbmZpbml0eSBBdXRvYnV5ZXIgd2lsbCBiZVxyXG4gICAgICAgIHR1cm5lZCBvZmYuIFRoZSBzY3JpcHQgbG9vcHMgdW50aWwgeW91IGhhdmUgdGhlIHRvdGFsIFRpbWUgVGhlb3JlbSByZXF1aXJlbWVudCB0byB1bmxvY2sgRGlsYXRpb24sIGFuZCB0aGVuXHJcbiAgICAgICAgaXQgd2lsbCB1bmxvY2sgRGlsYXRpb24gb25jZSBpdCBkb2VzLmAsXHJcbiAgICAgIGlucHV0czogW1xyXG4gICAgICAgIHsgbmFtZTogXCJ0cmVlU3R1ZGllc1wiLCB0eXBlOiBcInRyZWVcIiwgcHJvbXB0OiBcIk9yIGRpcmVjdGx5IGVudGVyIHlvdXIgdGltZSBzdHVkaWVzXCIgfSxcclxuICAgICAgICB7IG5hbWU6IFwidHJlZU5vd2FpdFwiLCB0eXBlOiBcIm5vd2FpdFwiLCBwcm9tcHQ6IFwiTWlzc2luZyBTdHVkeSBiZWhhdmlvclwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcImZpbmFsRVBcIiwgdHlwZTogXCJkZWNpbWFsXCIsIHByb21wdDogXCJUYXJnZXQgRVBcIiB9LFxyXG4gICAgICAgIHsgbmFtZTogXCJhdXRvRXRlck1vZGVcIiwgdHlwZTogXCJtb2RlXCIsIHByb21wdDogXCJFdGVybml0eSBBdXRvYnV5ZXIgTW9kZVwiIH0sXHJcbiAgICAgICAgeyBuYW1lOiBcImF1dG9FdGVyVmFsdWVcIiwgdHlwZTogXCJkZWNpbWFsXCIsIHByb21wdDogXCJFdGVybml0eSBBdXRvYnV5ZXIgVGhyZXNob2xkXCIgfSxcclxuICAgICAgXSxcclxuICAgICAgd2FybmluZ3M6ICgpID0+IHtcclxuICAgICAgICBjb25zdCBsaXN0ID0gW107XHJcbiAgICAgICAgLy8gVGVsZW1lY2hhbmljYWwgUHJvY2VzcyAoVEQvNXhFUCBhdXRvYnV5ZXJzKVxyXG4gICAgICAgIGlmICghUmVhbGl0eVVwZ3JhZGUoMTMpLmlzQm91Z2h0KSB7XHJcbiAgICAgICAgICBsaXN0LnB1c2goYFRoaXMgdGVtcGxhdGUgbWF5IHBlcmZvcm0gcG9vcmx5IHdpdGhvdXQgUmVhbGl0eSBVcGdyYWRlIFwiJHtSZWFsaXR5VXBncmFkZSgxMykubmFtZX1cImApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIVBlcmsudHRCdXlTaW5nbGUuaXNCb3VnaHQpIHtcclxuICAgICAgICAgIGxpc3QucHVzaChgVGhpcyB0ZW1wbGF0ZSBtYXkgcGVyZm9ybSBwb29ybHkgd2l0aG91dCBQZXJrIFwiJHtQZXJrLnR0QnV5U2luZ2xlLmxhYmVsfVwiIHVubGVzcyB5b3UgY2FuIGdlbmVyYXRlXHJcbiAgICAgICAgICAgIFRpbWUgVGhlb3JlbXMgd2l0aG91dCBwdXJjaHNpbmcgdGhlbWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbGlzdDtcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgXVxyXG59O1xyXG4iXSwibmFtZXMiOlsiQXV0b2J1eWVySW5wdXRGdW5jdGlvbnMiLCJhdXRvbWF0b3JUZW1wbGF0ZXMiLCJwYXJhbVR5cGVzIiwibmFtZSIsImlzVmFsaWRTdHJpbmciLCJzdHIiLCJ2YWxpZEltcG9ydCIsIlRpbWVTdHVkeVRyZWUiLCJpc1ZhbGlkSW1wb3J0U3RyaW5nIiwicHJlc2V0IiwibWF0Y2giLCJ2YWxpZFByZXNldCIsInBsYXllciIsInRpbWVzdHVkeSIsInByZXNldHMiLCJzb21lIiwicCIsIk51bWJlciIsImludCIsInRyeVBhcnNlIiwibWFwIiwieCIsIk1hdGgiLCJyb3VuZCIsInBhcnNlSW50IiwiZGVjaW1hbCIsImJvb2xEaXNwbGF5Iiwic2NyaXB0cyIsImRlc2NyaXB0aW9uIiwiaW5wdXRzIiwidHlwZSIsInByb21wdCIsIndhcm5pbmdzIiwibGlzdCIsIlJlYWxpdHlVcGdyYWRlIiwiaXNCb3VnaHQiLCJwdXNoIiwiZm9ybWF0SW50IiwiUGVyayIsInR0QnV5U2luZ2xlIiwibGFiZWwiLCJhY2hpZXZlbWVudEdyb3VwNSIsIkFjaGlldmVtZW50Iiwic3R1ZHlFQ1JlcXVpcmVtZW50Iiwic3R1ZHlFQ0J1bGsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/core/secret-formula/script-templates.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/shop-purchases.js": +/*!***************************************************!*\ + !*** ./src/core/secret-formula/shop-purchases.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"shopPurchases\": () => (/* binding */ shopPurchases)\n/* harmony export */ });\n/* harmony import */ var _env__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/env */ \"./src/env.js\");\n // NOTE: IF ANY COSTS ARE CHANGED HERE, THEY ALSO NEED TO BE CHANGED ON THE BACKEND TOO\n\nconst shopPurchases = {\n dimPurchases: {\n key: \"dimPurchases\",\n cost: 30,\n description: \"Double all your Antimatter Dimension multipliers. Forever.\",\n multiplier: purchases => Math.pow(2, purchases),\n formatEffect: x => `×${x > 1000 ? Notation.scientific.formatDecimal(new Decimal(x), 2) : x.toFixed(0)}`\n },\n allDimPurchases: {\n key: \"allDimPurchases\",\n cost: 60,\n description: () => {\n const dims = [\"Antimatter\"];\n if (InfinityDimension(1).isUnlocked || PlayerProgress.eternityUnlocked()) dims.push(\"Infinity\");\n if (PlayerProgress.eternityUnlocked()) dims.push(\"Time\");\n return `Double ALL Dimension multipliers (${makeEnumeration(dims)}; multiplicative until 32x). Forever.`;\n },\n multiplier: purchases => purchases > 4 ? 32 + (purchases - 5) * 2 : Math.pow(2, purchases),\n formatEffect: x => `×${x.toFixed(0)}`\n },\n IPPurchases: {\n key: \"IPPurchases\",\n cost: 40,\n description: \"Double your Infinity Point gain from all sources. (additive)\",\n multiplier: purchases => purchases === 0 ? 1 : 2 * purchases,\n formatEffect: x => `×${x.toFixed(0)}`,\n isUnlocked: () => PlayerProgress.infinityUnlocked(),\n lockText: \"Infinity\"\n },\n replicantiPurchases: {\n key: \"replicantiPurchases\",\n cost: 60,\n description: \"Increase your Replicanti gain by 50%. (additive)\",\n multiplier: purchases => purchases === 0 ? 1 : 1 + 0.5 * purchases,\n formatEffect: x => `×${x.toFixed(1)}`,\n isUnlocked: () => Replicanti.areUnlocked || PlayerProgress.eternityUnlocked(),\n lockText: \"Replicanti\"\n },\n EPPurchases: {\n key: \"EPPurchases\",\n cost: 50,\n description: \"Triple your Eternity Point gain from all sources. (additive)\",\n multiplier: purchases => purchases === 0 ? 1 : 3 * purchases,\n formatEffect: x => `×${x.toFixed(0)}`,\n isUnlocked: () => PlayerProgress.eternityUnlocked(),\n lockText: \"Eternity\"\n },\n dilatedTimePurchases: {\n key: \"dilatedTimePurchases\",\n cost: 40,\n description: \"Increase your Dilated Time gain by 50%. (additive)\",\n multiplier: purchases => purchases === 0 ? 1 : 1 + 0.5 * purchases,\n formatEffect: x => `×${x.toFixed(1)}`,\n isUnlocked: () => PlayerProgress.dilationUnlocked() || PlayerProgress.realityUnlocked(),\n lockText: \"Dilation\"\n },\n RMPurchases: {\n key: \"RMPurchases\",\n cost: 60,\n description: \"Increase your Reality Machine gain by 100%. (additive)\",\n multiplier: purchases => purchases + 1,\n formatEffect: x => `×${x.toFixed(0)}`,\n isUnlocked: () => PlayerProgress.realityUnlocked(),\n lockText: \"Reality\"\n },\n smallTimeSkip: {\n key: \"smallTimeSkip\",\n cost: 10,\n description: \"Get 6 hours worth of offline production. (Autobuyers don't work at full speed)\",\n instantPurchase: true,\n onPurchase: () => {\n shop.purchaseTimeSkip();\n }\n },\n bigTimeSkip: {\n key: \"bigTimeSkip\",\n cost: 20,\n description: \"Get 24 hours worth of offline production. (Autobuyers don't work at full speed)\",\n instantPurchase: true,\n onPurchase: () => {\n shop.purchaseLongerTimeSkip();\n }\n },\n singleCosmeticSet: {\n key: \"singleCosmeticSet\",\n cost: 20,\n description: \"Unlock a Glyph cosmetic set of your choice\",\n instantPurchase: true,\n onPurchase: () => {\n // The actual unlocks are handled in the ShopPurchaseData object, so we just show notifications here\n GameUI.notify.info(`You have purchased the \"${GlyphAppearanceHandler.chosenFromModal.name}\" Set for Glyph cosmetics!`, 10000);\n GlyphAppearanceHandler.chosenFromModal = null;\n GlyphAppearanceHandler.applyNotification();\n },\n isUnlocked: () => PlayerProgress.realityUnlocked(),\n lockText: \"Reality\"\n },\n allCosmeticSets: {\n key: \"allCosmeticSets\",\n cost: () => {\n // Both of these are also on the payment backend, which would need to be changed as well\n const baseCost = 420;\n const totalSets = Object.keys(GameDatabase.reality.glyphCosmeticSets).length; // Using this instead of the actual set count maintains consistency with the backend price,\n // at the cost of the frontend UI being wrong for cheated saves\n\n const currentSetCount = GlyphAppearanceHandler.expectedSetCount;\n return Math.floor(baseCost * (totalSets - currentSetCount) / totalSets);\n },\n description: \"Unlock all remaining Glyph cosmetic sets at once\",\n instantPurchase: true,\n onPurchase: () => {\n // The actual unlocks are handled in the ShopPurchaseData object, so we just show notifications here\n GameUI.notify.info(`You have unlocked all sets for Glyph cosmetics!`, 15000);\n GlyphAppearanceHandler.applyNotification();\n },\n isUnlocked: () => PlayerProgress.realityUnlocked(),\n lockText: \"Reality\"\n }\n};\n\nif (_env__WEBPACK_IMPORTED_MODULE_0__.STEAM) {\n delete shopPurchases.allCosmeticSets;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9zaG9wLXB1cmNoYXNlcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztDQUVBOztBQUNPLE1BQU1DLGFBQWEsR0FBRztBQUMzQkMsRUFBQUEsWUFBWSxFQUFFO0FBQ1pDLElBQUFBLEdBQUcsRUFBRSxjQURPO0FBRVpDLElBQUFBLElBQUksRUFBRSxFQUZNO0FBR1pDLElBQUFBLFdBQVcsRUFBRSw0REFIRDtBQUlaQyxJQUFBQSxVQUFVLEVBQUVDLFNBQVMsSUFBSUMsSUFBSSxDQUFDQyxHQUFMLENBQVMsQ0FBVCxFQUFZRixTQUFaLENBSmI7QUFLWkcsSUFBQUEsWUFBWSxFQUFFQyxDQUFDLElBQUssSUFBR0EsQ0FBQyxHQUFHLElBQUosR0FBV0MsUUFBUSxDQUFDQyxVQUFULENBQW9CQyxhQUFwQixDQUFrQyxJQUFJQyxPQUFKLENBQVlKLENBQVosQ0FBbEMsRUFBa0QsQ0FBbEQsQ0FBWCxHQUFrRUEsQ0FBQyxDQUFDSyxPQUFGLENBQVUsQ0FBVixDQUFhO0FBTDFGLEdBRGE7QUFRM0JDLEVBQUFBLGVBQWUsRUFBRTtBQUNmZCxJQUFBQSxHQUFHLEVBQUUsaUJBRFU7QUFFZkMsSUFBQUEsSUFBSSxFQUFFLEVBRlM7QUFHZkMsSUFBQUEsV0FBVyxFQUFFLE1BQU07QUFDakIsWUFBTWEsSUFBSSxHQUFHLENBQUMsWUFBRCxDQUFiO0FBQ0EsVUFBSUMsaUJBQWlCLENBQUMsQ0FBRCxDQUFqQixDQUFxQkMsVUFBckIsSUFBbUNDLGNBQWMsQ0FBQ0MsZ0JBQWYsRUFBdkMsRUFBMEVKLElBQUksQ0FBQ0ssSUFBTCxDQUFVLFVBQVY7QUFDMUUsVUFBSUYsY0FBYyxDQUFDQyxnQkFBZixFQUFKLEVBQXVDSixJQUFJLENBQUNLLElBQUwsQ0FBVSxNQUFWO0FBQ3ZDLGFBQVEscUNBQW9DQyxlQUFlLENBQUNOLElBQUQsQ0FBTyx1Q0FBbEU7QUFDRCxLQVJjO0FBU2ZaLElBQUFBLFVBQVUsRUFBRUMsU0FBUyxJQUFLQSxTQUFTLEdB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QUEsc0JBQXNCLENBQUNHLGlCQUF2QjtBQUNELEtBWmdCO0FBYWpCOUIsSUFBQUEsVUFBVSxFQUFFLE1BQU1DLGNBQWMsQ0FBQ2EsZUFBZixFQWJEO0FBY2pCUCxJQUFBQSxRQUFRLEVBQUU7QUFkTyxHQW5GUTtBQW1HM0J3QixFQUFBQSxlQUFlLEVBQUU7QUFDZmhELElBQUFBLEdBQUcsRUFBRSxpQkFEVTtBQUVmQyxJQUFBQSxJQUFJLEVBQUUsTUFBTTtBQUNWO0FBQ0EsWUFBTWdELFFBQVEsR0FBRyxHQUFqQjtBQUNBLFlBQU1DLFNBQVMsR0FBR0MsTUFBTSxDQUFDQyxJQUFQLENBQVlDLFlBQVksQ0FBQ0MsT0FBYixDQUFxQkMsaUJBQWpDLEVBQW9EQyxNQUF0RSxDQUhVLENBS1Y7QUFDQTs7QUFDQSxZQUFNQyxlQUFlLEdBQUdiLHNCQUFzQixDQUFDYyxnQkFBL0M7QUFDQSxhQUFPckQsSUFBSSxDQUFDc0QsS0FBTCxDQUFXVixRQUFRLElBQUlDLFNBQVMsR0FBR08sZUFBaEIsQ0FBUixHQUEyQ1AsU0FBdEQsQ0FBUDtBQUNELEtBWGM7QUFZZmhELElBQUFBLFdBQVcsRUFBRSxrREFaRTtBQWFmZ0MsSUFBQUEsZUFBZSxFQUFFLElBYkY7QUFjZkMsSUFBQUEsVUFBVSxFQUFFLE1BQU07QUFDaEI7QUFDQU0sTUFBQUEsTUFBTSxDQUFDQyxNQUFQLENBQWNDLElBQWQsQ0FBb0IsaURBQXBCLEVBQXNFLEtBQXRFO0FBQ0FDLE1BQUFBLHNCQUFzQixDQUFDRyxpQkFBdkI7QUFDRCxLQWxCYztBQW1CZjlCLElBQUFBLFVBQVUsRUFBRSxNQUFNQyxjQUFjLENBQUNhLGVBQWYsRUFuQkg7QUFvQmZQLElBQUFBLFFBQVEsRUFBRTtBQXBCSztBQW5HVSxDQUF0Qjs7QUEySFAsSUFBSTNCLHVDQUFKLEVBQVc7QUFDVCxTQUFPQyxhQUFhLENBQUNrRCxlQUFyQjtBQUNEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NvcmUvc2VjcmV0LWZvcm11bGEvc2hvcC1wdXJjaGFzZXMuanM/NzM1NiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVEVBTSB9IGZyb20gXCJAL2VudlwiO1xyXG5cclxuLy8gTk9URTogSUYgQU5ZIENPU1RTIEFSRSBDSEFOR0VEIEhFUkUsIFRIRVkgQUxTTyBORUVEIFRPIEJFIENIQU5HRUQgT04gVEhFIEJBQ0tFTkQgVE9PXHJcbmV4cG9ydCBjb25zdCBzaG9wUHVyY2hhc2VzID0ge1xyXG4gIGRpbVB1cmNoYXNlczoge1xyXG4gICAga2V5OiBcImRpbVB1cmNoYXNlc1wiLFxyXG4gICAgY29zdDogMzAsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJEb3VibGUgYWxsIHlvdXIgQW50aW1hdHRlciBEaW1lbnNpb24gbXVsdGlwbGllcnMuIEZvcmV2ZXIuXCIsXHJcbiAgICBtdWx0aXBsaWVyOiBwdXJjaGFzZXMgPT4gTWF0aC5wb3coMiwgcHVyY2hhc2VzKSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBgw5cke3ggPiAxMDAwID8gTm90YXRpb24uc2NpZW50aWZpYy5mb3JtYXREZWNpbWFsKG5ldyBEZWNpbWFsKHgpLCAyKSA6IHgudG9GaXhlZCgwKX1gLFxyXG4gIH0sXHJcbiAgYWxsRGltUHVyY2hhc2VzOiB7XHJcbiAgICBrZXk6IFwiYWxsRGltUHVyY2hhc2VzXCIsXHJcbiAgICBjb3N0OiA2MCxcclxuICAgIGRlc2NyaXB0aW9uOiAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGRpbXMgPSBbXCJBbnRpbWF0dGVyXCJdO1xyXG4gICAgICBpZiAoSW5maW5pdHlEaW1lbnNpb24oMSkuaXNVbmxvY2tlZCB8fCBQbGF5ZXJQcm9ncmVzcy5ldGVybml0eVVubG9ja2VkKCkpIGRpbXMucHVzaChcIkluZmluaXR5XCIpO1xyXG4gICAgICBpZiAoUGxheWVyUHJvZ3Jlc3MuZXRlcm5pdHlVbmxvY2tlZCgpKSBkaW1zLnB1c2goXCJUaW1lXCIpO1xyXG4gICAgICByZXR1cm4gYERvdWJsZSBBTEwgRGltZW5zaW9uIG11bHRpcGxpZXJzICgke21ha2VFbnVtZXJhdGlvbihkaW1zKX07IG11bHRpcGxpY2F0aXZlIHVudGlsIDMyeCkuIEZvcmV2ZXIuYDtcclxuICAgIH0sXHJcbiAgICBtdWx0aXBsaWVyOiBwdXJjaGFzZXMgPT4gKHB1cmNoYXNlcyA+IDQgPyAzMiArIChwdXJjaGFzZXMgLSA1KSAqIDIgOiBNYXRoLnBvdygyLCBwdXJjaGFzZXMpKSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBgw5cke3gudG9GaXhlZCgwKX1gLFxyXG4gIH0sXHJcbiAgSVBQdXJjaGFzZXM6IHtcclxuICAgIGtleTogXCJJUFB1cmNoYXNlc1wiLFxyXG4gICAgY29zdDogNDAsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJEb3VibGUgeW91ciBJbmZpbml0eSBQb2ludCBnYWluIGZyb20gYWxsIHNvdXJjZXMuIChhZGRpdGl2ZSlcIixcclxuICAgIG11bHRpcGxpZXI6IHB1cmNoYXNlcyA9PiAocHVyY2hhc2VzID09PSAwID8gMSA6IDIgKiBwdXJjaGFzZXMpLFxyXG4gICAgZm9ybWF0RWZmZWN0OiB4ID0+IGDDlyR7eC50b0ZpeGVkKDApfWAsXHJcbiAgICBpc1VubG9ja2VkOiAoKSA9PiBQbGF5ZXJQcm9ncmVzcy5pbmZpbml0eVVubG9ja2VkKCksXHJcbiAgICBsb2NrVGV4dDogXCJJbmZpbml0eVwiLFxyXG4gIH0sXHJcbiAgcmVwbGljYW50aVB1cmNoYXNlczoge1xyXG4gICAga2V5OiBcInJlcGxpY2FudGlQdXJjaGFzZXNcIixcclxuICAgIGNvc3Q6IDYwLFxyXG4gICAgZGVzY3JpcHRpb246IFwiSW5jcmVhc2UgeW91ciBSZXBsaWNhbnRpIGdhaW4gYnkgNTAlLiAoYWRkaXRpdmUpXCIsXHJcbiAgICBtdWx0aXBsaWVyOiBwdXJjaGFzZXMgPT4gKHB1cmNoYXNlcyA9PT0gMCA/IDEgOiAxICsgMC41ICogcHVyY2hhc2VzKSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBgw5cke3gudG9GaXhlZCgxKX1gLFxyXG4gICAgaXNVbmxvY2tlZDogKCkgPT4gUmVwbGljYW50aS5hcmVVbmxvY2tlZCB8fCBQbGF5ZXJQcm9ncmVzcy5ldGVybml0eVVubG9ja2VkKCksXHJcbiAgICBsb2NrVGV4dDogXCJSZXBsaWNhbnRpXCIsXHJcbiAgfSxcclxuICBFUFB1cmNoYXNlczoge1xyXG4gICAga2V5OiBcIkVQUHVyY2hhc2VzXCIsXHJcbiAgICBjb3N0OiA1MCxcclxuICAgIGRlc2NyaXB0aW9uOiBcIlRyaXBsZSB5b3VyIEV0ZXJuaXR5IFBvaW50IGdhaW4gZnJvbSBhbGwgc291cmNlcy4gKGFkZGl0aXZlKVwiLFxyXG4gICAgbXVsdGlwbGllcjogcHVyY2hhc2VzID0+IChwdXJjaGFzZXMgPT09IDAgPyAxIDogMyAqIHB1cmNoYXNlcyksXHJcbiAgICBmb3JtYXRFZmZlY3Q6IHggPT4gYMOXJHt4LnRvRml4ZWQoMCl9YCxcclxuICAgIGlzVW5sb2NrZWQ6ICgpID0+IFBsYXllclByb2dyZXNzLmV0ZXJuaXR5VW5sb2NrZWQoKSxcclxuICAgIGxvY2tUZXh0OiBcIkV0ZXJuaXR5XCIsXHJcbiAgfSxcclxuICBkaWxhdGVkVGltZVB1cmNoYXNlczoge1xyXG4gICAga2V5OiBcImRpbGF0ZWRUaW1lUHVyY2hhc2VzXCIsXHJcbiAgICBjb3N0OiA0MCxcclxuICAgIGRlc2NyaXB0aW9uOiBcIkluY3JlYXNlIHlvdXIgRGlsYXRlZCBUaW1lIGdhaW4gYnkgNTAlLiAoYWRkaXRpdmUpXCIsXHJcbiAgICBtdWx0aXBsaWVyOiBwdXJjaGFzZXMgPT4gKHB1cmNoYXNlcyA9PT0gMCA/IDEgOiAxICsgMC41ICogcHVyY2hhc2VzKSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBgw5cke3gudG9GaXhlZCgxKX1gLFxyXG4gICAgaXNVbmxvY2tlZDogKCkgPT4gUGxheWVyUHJvZ3Jlc3MuZGlsYXRpb25VbmxvY2tlZCgpIHx8IFBsYXllclByb2dyZXNzLnJlYWxpdHlVbmxvY2tlZCgpLFxyXG4gICAgbG9ja1RleHQ6IFwiRGlsYXRpb25cIixcclxuICB9LFxyXG4gIFJNUHVyY2hhc2VzOiB7XHJcbiAgICBrZXk6IFwiUk1QdXJjaGFzZXNcIixcclxuICAgIGNvc3Q6IDYwLFxyXG4gICAgZGVzY3JpcHRpb246IFwiSW5jcmVhc2UgeW91ciBSZWFsaXR5IE1hY2hpbmUgZ2FpbiBieSAxMDAlLiAoYWRkaXRpdmUpXCIsXHJcbiAgICBtdWx0aXBsaWVyOiBwdXJjaGFzZXMgPT4gcHVyY2hhc2VzICsgMSxcclxuICAgIGZvcm1hdEVmZmVjdDogeCA9PiBgw5cke3gudG9GaXhlZCgwKX1gLFxyXG4gICAgaXNVbmxvY2tlZDogKCkgPT4gUGxheWVyUHJvZ3Jlc3MucmVhbGl0eVVubG9ja2VkKCksXHJcbiAgICBsb2NrVGV4dDogXCJSZWFsaXR5XCIsXHJcbiAgfSxcclxuICBzbWFsbFRpbWVTa2lwOiB7XHJcbiAgICBrZXk6IFwic21hbGxUaW1lU2tpcFwiLFxyXG4gICAgY29zdDogMTAsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJHZXQgNiBob3VycyB3b3J0aCBvZiBvZmZsaW5lIHByb2R1Y3Rpb24uIChBdXRvYnV5ZXJzIGRvbid0IHdvcmsgYXQgZnVsbCBzcGVlZClcIixcclxuICAgIGluc3RhbnRQdXJjaGFzZTogdHJ1ZSxcclxuICAgIG9uUHVyY2hhc2U6ICgpID0+IHtcclxuICAgICAgc2hvcC5wdXJjaGFzZVRpbWVTa2lwKCk7XHJcbiAgICB9XHJcbiAgfSxcclxuICBiaWdUaW1lU2tpcDoge1xyXG4gICAga2V5OiBcImJpZ1RpbWVTa2lwXCIsXHJcbiAgICBjb3N0OiAyMCxcclxuICAgIGRlc2NyaXB0aW9uOiBcIkdldCAyNCBob3VycyB3b3J0aCBvZiBvZmZsaW5lIHByb2R1Y3Rpb24uIChBdXRvYnV5ZXJzIGRvbid0IHdvcmsgYXQgZnVsbCBzcGVlZClcIixcclxuICAgIGluc3RhbnRQdXJjaGFzZTogdHJ1ZSxcclxuICAgIG9uUHVyY2hhc2U6ICgpID0+IHtcclxuICAgICAgc2hvcC5wdXJjaGFzZUxvbmdlclRpbWVTa2lwKCk7XHJcbiAgICB9XHJcbiAgfSxcclxuICBzaW5nbGVDb3NtZXRpY1NldDoge1xyXG4gICAga2V5OiBcInNpbmdsZUNvc21ldGljU2V0XCIsXHJcbiAgICBjb3N0OiAyMCxcclxuICAgIGRlc2NyaXB0aW9uOiBcIlVubG9jayBhIEdseXBoIGNvc21ldGljIHNldCBvZiB5b3VyIGNob2ljZVwiLFxyXG4gICAgaW5zdGFudFB1cmNoYXNlOiB0cnVlLFxyXG4gICAgb25QdXJjaGFzZTogKCkgPT4ge1xyXG4gICAgICAvLyBUaGUgYWN0dWFsIHVubG9ja3MgYXJlIGhhbmRsZWQgaW4gdGhlIFNob3BQdXJjaGFzZURhdGEgb2JqZWN0LCBzbyB3ZSBqdXN0IHNob3cgbm90aWZpY2F0aW9ucyBoZXJlXHJcbiAgICAgIEdhbWVVSS5ub3RpZnkuaW5mbyhcclxuICAgICAgICBgWW91IGhhdmUgcHVyY2hhc2VkIHRoZSBcIiR7R2x5cGhBcHBlYXJhbmNlSGFuZGxlci5jaG9zZW5Gcm9tTW9kYWwubmFtZX1cIiBTZXQgZm9yIEdseXBoIGNvc21ldGljcyFgLFxyXG4gICAgICAgIDEwMDAwKTtcclxuICAgICAgR2x5cGhBcHBlYXJhbmNlSGFuZGxlci5jaG9zZW5Gcm9tTW9kYWwgPSBudWxsO1xyXG4gICAgICBHbHlwaEFwcGVhcmFuY2VIYW5kbGVyLmFwcGx5Tm90aWZpY2F0aW9uKCk7XHJcbiAgICB9LFxyXG4gICAgaXNVbmxvY2tlZDogKCkgPT4gUGxheWVyUHJvZ3Jlc3MucmVhbGl0eVVubG9ja2VkKCksXHJcbiAgICBsb2NrVGV4dDogXCJSZWFsaXR5XCIsXHJcbiAgfSxcclxuICBhbGxDb3NtZXRpY1NldHM6IHtcclxuICAgIGtleTogXCJhbGxDb3NtZXRpY1NldHNcIixcclxuICAgIGNvc3Q6ICgpID0+IHtcclxuICAgICAgLy8gQm90aCBvZiB0aGVzZSBhcmUgYWxzbyBvbiB0aGUgcGF5bWVudCBiYWNrZW5kLCB3aGljaCB3b3VsZCBuZWVkIHRvIGJlIGNoYW5nZWQgYXMgd2VsbFxyXG4gICAgICBjb25zdCBiYXNlQ29zdCA9IDQyMDtcclxuICAgICAgY29uc3QgdG90YWxTZXRzID0gT2JqZWN0LmtleXMoR2FtZURhdGFiYXNlLnJlYWxpdHkuZ2x5cGhDb3NtZXRpY1NldHMpLmxlbmd0aDtcclxuXHJcbiAgICAgIC8vIFVzaW5nIHRoaXMgaW5zdGVhZCBvZiB0aGUgYWN0dWFsIHNldCBjb3VudCBtYWludGFpbnMgY29uc2lzdGVuY3kgd2l0aCB0aGUgYmFja2VuZCBwcmljZSxcclxuICAgICAgLy8gYXQgdGhlIGNvc3Qgb2YgdGhlIGZyb250ZW5kIFVJIGJlaW5nIHdyb25nIGZvciBjaGVhdGVkIHNhdmVzXHJcbiAgICAgIGNvbnN0IGN1cnJlbnRTZXRDb3VudCA9IEdseXBoQXBwZWFyYW5jZUhhbmRsZXIuZXhwZWN0ZWRTZXRDb3VudDtcclxuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoYmFzZUNvc3QgKiAodG90YWxTZXRzIC0gY3VycmVudFNldENvdW50KSAvIHRvdGFsU2V0cyk7XHJcbiAgICB9LFxyXG4gICAgZGVzY3JpcHRpb246IFwiVW5sb2NrIGFsbCByZW1haW5pbmcgR2x5cGggY29zbWV0aWMgc2V0cyBhdCBvbmNlXCIsXHJcbiAgICBpbnN0YW50UHVyY2hhc2U6IHRydWUsXHJcbiAgICBvblB1cmNoYXNlOiAoKSA9PiB7XHJcbiAgICAgIC8vIFRoZSBhY3R1YWwgdW5sb2NrcyBhcmUgaGFuZGxlZCBpbiB0aGUgU2hvcFB1cmNoYXNlRGF0YSBvYmplY3QsIHNvIHdlIGp1c3Qgc2hvdyBub3RpZmljYXRpb25zIGhlcmVcclxuICAgICAgR2FtZVVJLm5vdGlmeS5pbmZvKGBZb3UgaGF2ZSB1bmxvY2tlZCBhbGwgc2V0cyBmb3IgR2x5cGggY29zbWV0aWNzIWAsIDE1MDAwKTtcclxuICAgICAgR2x5cGhBcHBlYXJhbmNlSGFuZGxlci5hcHBseU5vdGlmaWNhdGlvbigpO1xyXG4gICAgfSxcclxuICAgIGlzVW5sb2NrZWQ6ICgpID0+IFBsYXllclByb2dyZXNzLnJlYWxpdHlVbmxvY2tlZCgpLFxyXG4gICAgbG9ja1RleHQ6IFwiUmVhbGl0eVwiLFxyXG4gIH0sXHJcbn07XHJcblxyXG5pZiAoU1RFQU0pIHtcclxuICBkZWxldGUgc2hvcFB1cmNoYXNlcy5hbGxDb3NtZXRpY1NldHM7XHJcbn1cclxuIl0sIm5hbWVzIjpbIlNURUFNIiwic2hvcFB1cmNoYXNlcyIsImRpbVB1cmNoYXNlcyIsImtleSIsImNvc3QiLCJkZXNjcmlwdGlvbiIsIm11bHRpcGxpZXIiLCJwdXJjaGFzZXMiLCJNYXRoIiwicG93IiwiZm9ybWF0RWZmZWN0IiwieCIsIk5vdGF0aW9uIiwic2NpZW50aWZpYyIsImZvcm1hdERlY2ltYWwiLCJEZWNpbWFsIiwidG9GaXhlZCIsImFsbERpbVB1cmNoYXNlcyIsImRpbXMiLCJJbmZpbml0eURpbWVuc2lvbiIsImlzVW5sb2NrZWQiLCJQbGF5ZXJQcm9ncmVzcyIsImV0ZXJuaXR5VW5sb2NrZWQiLCJwdXNoIiwibWFrZUVudW1lcmF0aW9uIiwiSVBQdXJjaGFzZXMiLCJpbmZpbml0eVVubG9ja2VkIiwibG9ja1RleHQiLCJyZXBsaWNhbnRpUHVyY2hhc2VzIiwiUmVwbGljYW50aSIsImFyZVVubG9ja2VkIiwiRVBQdXJjaGFzZXMiLCJkaWxhdGVkVGltZVB1cmNoYXNlcyIsImRpbGF0aW9uVW5sb2NrZWQiLCJyZWFsaXR5VW5sb2NrZWQiLCJSTVB1cmNoYXNlcyIsInNtYWxsVGltZVNraXAiLCJpbnN0YW50UHVyY2hhc2UiLCJvblB1cmNoYXNlIiwic2hvcCIsInB1cmNoYXNlVGltZVNraXAiLCJiaWdUaW1lU2tpcCIsInB1cmNoYXNlTG9uZ2VyVGltZVNraXAiLCJzaW5nbGVDb3NtZXRpY1NldCIsIkdhbWVVSSIsIm5vdGlmeSIsImluZm8iLCJHbHlwaEFwcGVhcmFuY2VIYW5kbGVyIiwiY2hvc2VuRnJvbU1vZGFsIiwibmFtZSIsImFwcGx5Tm90aWZpY2F0aW9uIiwiYWxsQ29zbWV0aWNTZXRzIiwiYmFzZUNvc3QiLCJ0b3RhbFNldHMiLCJPYmplY3QiLCJrZXlzIiwiR2FtZURhdGFiYXNlIiwicmVhbGl0eSIsImdseXBoQ29zbWV0aWNTZXRzIiwibGVuZ3RoIiwiY3VycmVudFNldENvdW50IiwiZXhwZWN0ZWRTZXRDb3VudCIsImZsb29yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/core/secret-formula/shop-purchases.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/sidebar-resources.js": +/*!******************************************************!*\ + !*** ./src/core/secret-formula/sidebar-resources.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"sidebarResources\": () => (/* binding */ sidebarResources)\n/* harmony export */ });\nconst sidebarResources = [// Note: ID 0 is interpreted in the Vue component as \"the largest unlocked ID\" - do not use ID 0\n{\n id: 1,\n optionName: \"Blob\",\n isAvailable: () => Themes.available().map(t => t.name).includes(\"S11\"),\n // This is a dummy value to prevent vue errors\n value: () => new Decimal(1),\n formatValue: () => \"\\uE010\",\n formatClass: \"o-sidebar-currency--antimatter\"\n}, {\n id: 2,\n optionName: \"Antimatter\",\n isAvailable: () => true,\n value: () => Currency.antimatter.value,\n formatValue: x => format(x, 2, 1),\n formatClass: \"o-sidebar-currency--antimatter\"\n}, {\n id: 3,\n optionName: \"Infinity Points\",\n isAvailable: () => PlayerProgress.infinityUnlocked(),\n value: () => Currency.infinityPoints.value.floor(),\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--infinity\"\n}, {\n id: 4,\n optionName: \"Replicanti\",\n isAvailable: () => Replicanti.areUnlocked || PlayerProgress.eternityUnlocked(),\n value: () => Replicanti.amount,\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--replicanti\"\n}, {\n id: 5,\n optionName: \"Eternity Points\",\n isAvailable: () => PlayerProgress.eternityUnlocked(),\n value: () => Currency.eternityPoints.value.floor(),\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--eternity\"\n}, {\n id: 6,\n optionName: \"Total TT\",\n isAvailable: () => PlayerProgress.eternityUnlocked(),\n value: () => player.timestudy.theorem.plus(TimeTheorems.calculateTimeStudiesCost()),\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--eternity\"\n}, {\n id: 7,\n optionName: \"Tachyon Particles\",\n isAvailable: () => PlayerProgress.dilationUnlocked() || PlayerProgress.realityUnlocked(),\n value: () => Currency.tachyonParticles.value,\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--dilation\"\n}, {\n id: 8,\n optionName: \"Dilated Time\",\n isAvailable: () => PlayerProgress.dilationUnlocked() || PlayerProgress.realityUnlocked(),\n value: () => Currency.dilatedTime.value,\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--dilation\"\n}, {\n id: 9,\n optionName: \"Reality Machines\",\n isAvailable: () => PlayerProgress.realityUnlocked(),\n value: () => Currency.realityMachines.value,\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--reality\"\n}, {\n id: 10,\n optionName: \"Relic Shards\",\n isAvailable: () => TeresaUnlocks.effarig.isUnlocked,\n value: () => new Decimal(Currency.relicShards.value),\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--effarig\"\n}, {\n id: 11,\n optionName: \"Imaginary Machines\",\n isAvailable: () => MachineHandler.isIMUnlocked,\n value: () => new Decimal(Currency.imaginaryMachines.value),\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--reality\"\n}, {\n id: 12,\n optionName: \"All Machines\",\n resourceName: \"Machines\",\n isAvailable: () => MachineHandler.isIMUnlocked,\n // This is a dummy value to prevent vue errors\n value: () => Currency.realityMachines.value,\n formatValue: () => formatMachines(Currency.realityMachines.value, Currency.imaginaryMachines.value),\n formatClass: \"o-sidebar-currency--reality\"\n}, {\n id: 13,\n optionName: \"Dark Matter\",\n isAvailable: () => Laitela.isUnlocked,\n value: () => Currency.darkMatter,\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--laitela\"\n}, {\n id: 14,\n optionName: \"Dark Energy\",\n isAvailable: () => Laitela.isUnlocked,\n value: () => new Decimal(Currency.darkEnergy.value),\n formatValue: x => format(x, 2, 2),\n formatClass: \"o-sidebar-currency--laitela\"\n}, {\n id: 15,\n optionName: \"Singularities\",\n isAvailable: () => Laitela.isUnlocked,\n value: () => new Decimal(Currency.singularities.value),\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--laitela\"\n}, {\n id: 16,\n optionName: \"Reality Shards\",\n isAvailable: () => Pelle.isDoomed,\n value: () => Currency.realityShards,\n formatValue: x => format(x, 2),\n formatClass: \"o-sidebar-currency--pelle\"\n}];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9zaWRlYmFyLXJlc291cmNlcy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQU8sTUFBTUEsZ0JBQWdCLEdBQUcsQ0FDOUI7QUFDQTtBQUNFQyxFQUFBQSxFQUFFLEVBQUUsQ0FETjtBQUVFQyxFQUFBQSxVQUFVLEVBQUUsTUFGZDtBQUdFQyxFQUFBQSxXQUFXLEVBQUUsTUFBTUMsTUFBTSxDQUFDQyxTQUFQLEdBQW1CQyxHQUFuQixDQUF1QkMsQ0FBQyxJQUFJQSxDQUFDLENBQUNDLElBQTlCLEVBQW9DQyxRQUFwQyxDQUE2QyxLQUE3QyxDQUhyQjtBQUlFO0FBQ0FDLEVBQUFBLEtBQUssRUFBRSxNQUFNLElBQUlDLE9BQUosQ0FBWSxDQUFaLENBTGY7QUFNRUMsRUFBQUEsV0FBVyxFQUFFLE1BQU0sUUFOckI7QUFPRUMsRUFBQUEsV0FBVyxFQUFFO0FBUGYsQ0FGOEIsRUFXOUI7QUFDRVosRUFBQUEsRUFBRSxFQUFFLENBRE47QUFFRUMsRUFBQUEsVUFBVSxFQUFFLFlBRmQ7QUFHRUMsRUFBQUEsV0FBVyxFQUFFLE1BQU0sSUFIckI7QUFJRU8sRUFBQUEsS0FBSyxFQUFFLE1BQU1JLFFBQVEsQ0FBQ0MsVUFBVCxDQUFvQkwsS0FKbkM7QUFLRUUsRUFBQUEsV0FBVyxFQUFFSSxDQUFDLElBQUlDLE1BQU0sQ0FBQ0QsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLENBTDFCO0FBTUVILEVBQUFBLFdBQVcsRUFBRTtBQU5mLENBWDhCLEVBbUI5QjtBQUNFWixFQUFBQSxFQUFFLEVBQUUsQ0FETjtBQUVFQyxFQUFBQSxVQUFVLEVBQUUsaUJBRmQ7QUFHRUMsRUFBQUEsV0FBVyxFQUFFLE1BQU1lLGNBQWMsQ0FBQ0MsZ0JBQWYsRUFIckI7QUFJRVQsRUFBQUEsS0FBSyxFQUFFLE1BQU1JLFFBQVEsQ0FBQ00sY0FBVCxDQUF3QlYsS0FBeEIsQ0FBOEJXLEtBQTlCLEVBSmY7QUFLRVQsRUFBQUEsV0FBVyxFQUFFSSxDQUFDLElBQUlDLE1BQU0sQ0FBQ0QsQ0FBRCxFQUFJLENBQUosQ0FMMUI7QUFNRUgsRUFBQUEsV0FBVyxFQUFFO0FBTmYsQ0FuQjhCLEVBMkI5QjtBQUNFWixFQUFBQSxFQUFFLEVBQUUsQ0FETjtBQUVFQyxFQUFBQSxVQUFVLEVBQUUsWUFGZDtBQUdFQyxFQUFBQSxXQUFXLEVBQUUsTUFBTW1CLFVBQVUsQ0FBQ0MsV0FBWCxJQUEwQkwsY0FBYyxDQUFDTSxnQkFBZixFQUgvQztBQUlFZCxFQUFBQSxLQUFLLEVBQUUsTUFBTVksVUFBVSxDQUFDRyxNQUoxQjtBQUtFYixFQUFBQSxXQUFXLEVBQUVJLENBQUMsSUFBSUMsTUFBTSxDQUFDRCxDQUFELEVBQUksQ0FBSixDQUwxQjtBQU1FSCxFQUFBQSxXQUFXLEVBQUU7QUFOZixDQTNCOEIsRUFtQzlCO0FBQ0VaLEVBQUFBLEVBQUUsRUFBRSxDQUROO0FBRUVDLEVBQUFBLFVBQVUsRUFBRSxpQkFGZDtBQUdFQyxFQUFBQSxXQUFXLEVBQUUsTUFBTWUsY0FBYyxDQUFDTSxnQkFBZixFQUhyQjtBQUlFZCxFQUFBQSxLQUFLLEVBQUUsTUFBTUksUUFBUSxDQUFDWSxjQUFULENBQXdCaEIsS0FBeEIsQ0FBOEJXLEtBQTlCLEVBSmY7QUFLRVQsRUFBQUEsV0FBVyxFQUFFSSxDQUFDLElBQUlDLE1BQU0sQ0FBQ0QsQ0FBRCxFQUFJLENBQUosQ0FMMUI7QUFNRUgsRUFBQUEsV0FBVyxFQUFFO0FBTmYsQ0FuQzhCLEVBMkM5QjtBQUNFWixFQUFBQSxFQUFFLEVBQUUsQ0FETjtBQUVFQyxFQUFBQSxVQUFVLEVBQUUsVUFGZDtBQUdFQyxFQUFBQSxXQUFXLEVBQUUsTUFBTWUsY0FBYyxDQUFDTSxnQkFBZixFQUhyQjtBQUlFZCxFQUFBQSxLQUFLLEVBQUUsTUFBTWlCLE1BQU0sQ0FBQ0MsU0FBUCxDQUFpQkMsT0FBakIsQ0FBeUJDLElBQXpCLENBQThCQyxZQUFZLENBQUNDLHdCQUFiLEVBQTlCLENBSmY7QUFLRXBCLEVBQUFBLFdBQVcsRUFBRUksQ0FBQyxJQUFJQyxNQUFNLENBQUNELENBQUQsRUFBSSxDQUFKLENBTDFCO0FBTUVILEVBQUFBLFdBQVcsRUFBRTtBQU5mLENBM0M4QixFQW1EOUI7QUFDRVosRUFBQUEsRUFBRSxFQUFFLENBRE47QUFFRUMsRUFBQUEsVUFBVSxFQUFFLG1CQUZkO0FBR0VDLEVBQUFBLFdBQVcsRUFBRSxNQUFNZSxjQUFjLENBQUNlLGdCQUFmLE1BQXFDZixjQUFjLENBQUNnQixlQUFmLEVBSDFEO0FBSUV4QixFQUFBQSxLQUFLLEVBQUUsTUFBTUksUUFBUSxDQUFDcUIsZ0JBQVQsQ0FBMEJ6QixLQUp6QztBQUtFRSxFQUFBQSxXQUFXLEVBQUVJLENBQUMsSUFBSUMsTUFBTSxDQUFDRCxDQUFELEVBQUksQ0FBSixDQUwxQjtBQU1FSCxFQUFBQSxXQUFXLEVBQUU7QUFOZixDQW5EOEIsRUEyRDlCO0FBQ0VaLEVBQUFBLEVBQUUsRUFBRSxDQUROO0FBRUVDLEVBQUFBLFVBQVUsRUFBRSxjQUZkO0FBR0VDLEVBQUFBLFdBQVcsRUFBRSxNQUFNZSxjQUFjLENBQUNlLGdCQUFmLE1BQXFDZixjQUFjLENBQUNnQixlQUFmLEVBSDFEO0FBSUV4QixFQUFBQSxLQUFLLEVBQUUsTUFBTUksUUFBUSxDQUFDc0IsV0FBVCxDQUFxQjFCLEtBSnBDO0FBS0VFLEVBQUFBLFdBQVcsRUFBRUksQ0FBQyxJQUFJQyxNQUFNLENBQUNELENBQUQsRUFBSSxDQUFKLENBTDFCO0FBTUVILEVBQUFBLFdBQVcsRUFBRTtBQU5mLENBM0Q4QixFQW1FOUI7QUFDRVosRUFBQUEsRUFBRSxFQUFFLENBRE47QUFFRUMsRUFBQUEsVUFBVSxFQUFFLGtCQUZkO0FBR0VDLEVBQUFBLFdBQVcsRUFBRSxNQUFNZSxjQUFjLENBQUNnQixlQUFmLEVBSHJCO0FBSUV4QixFQUFBQSxLQUFLLEVBQUUsTUFBTUksUUFBUSxDQUFDdUIsZUFBVCxDQUF5QjNCLEtBSnhDO0FBS0VFLEVBQUFBLFdBQVcsRUFBRUksQ0FBQyxJQUFJQyxNQUFNLENBQUNELENBQUQsRUFBSSxDQUFKLENBTDFCO0FBTUVILEVBQUFBLFdBQVcsRUFBRTtBQU5mLENBbkU4QixFQTJFOUI7QUFDRVosRUFBQUEsRUFBRSxFQUFFLEVBRE47QUFFRUMsRUFBQUEsVUFBVSxFQUFFLGNBRmQ7QUFHRUMsRUFBQUEsV0FBVyxFQUFFLE1BQU1tQyxhQUFhLENBQUNDLE9BQWQsQ0FBc0JDLFVBSDNDO0FBSUU5QixFQUFBQSxLQUFLLEVBQUUsTUFBTSxJQUFJQyxPQUFKLENBQVlHLFFBQVEsQ0FBQzJCLFdBQVQsQ0FBcUIvQixLQUFqQyxDQUpmO0FBS0VFLEVBQUFBLFdBQVcsRUFBRUksQ0FBQyxJQUFJQyxNQUFNLENBQUNELENBQUQsRUFBSSxDQUFKLENBTDFCO0FBTUVILEVBQUFBLFdBQVcsRUFBRTtBQU5mLENBM0U4QixFQW1GOUI7QUFDRVosRUFBQUEsRUFBRSxFQUFFLEVBRE47QUFFRUMsRUFBQUEsVUFBVSxFQUFFLG9CQUZkO0FBR0VDLEVBQUFBLFdBQVcsRUFBRSxNQUFNdUMsY0FBYyxDQUFDQyxZQUhwQztBQUlFakMsRUFBQUEsS0FBSyxFQUFFLE1BQU0sSUFBSUMsT0FBSixDQUFZRyxRQUFRLENBQUM4QixpQkFBVCxDQUEyQmxDLEtBQXZDLENBSmY7QUFLRUUsRUFBQUEsV0FBVyxFQUFFSSxDQUFDLElBQUlDLE1BQU0sQ0FBQ0QsQ0FBRCxFQUFJLENBQUosQ0FMMUI7QUFNRUgsRUFBQUEsV0FBVyxFQUFFO0FBTmYsQ0FuRjhCLEVBMkY5QjtBQUNFWixFQUFBQSxFQUFFLEVBQUUsRUFETjtBQUVFQyxFQUFBQSxVQUFVLEVBQUUsY0FGZDtBQUdFMkMsRUFBQUEsWUFBWSxFQUFFLFVBSGhCO0FBSUUxQyxFQUFBQSxXQUFXLEVBQUUsTUFBTXVDLGNBQWMsQ0FBQ0MsWUFKcEM7QUFLRTtBQUNBakMsRUFBQUEsS0FBSyxFQUFFLE1BQU1JLFFBQVEsQ0FBQ3VCLGVBQVQsQ0FBeUIzQixLQU54QztBQU9FRSxFQUFBQSxXQUFXLEVBQUUsTUFBTWtDLGNBQWMsQ0FBQ2hDLFFBQVEsQ0FBQ3VCLGVBQVQsQ0FBeUIzQixLQUExQixFQUFpQ0ksUUFBUSxDQUFDOEIsaUJBQVQsQ0FBMkJsQyxLQUE1RCxDQVBuQztBQVFFRyxFQUFBQSxXQUFXLEVBQUU7QUFSZixDQTNGOEIsRUFxRzlCO0FBQ0VaLEVBQUFBLEVBQUUsRUFBRSxFQUROO0FBRUVDLEVBQUFBLFVBQVUsRUFBRSxhQUZkO0FBR0VDLEVBQUFBLFdBQVcsRUFBRSxNQUFNNEMsT0FBTyxDQUFDUCxVQUg3QjtBQUlFOUIsRUFBQUEsS0FBSyxFQUFFLE1BQU1JLFFBQVEsQ0FBQ2tDLFVBSnhCO0FBS0VwQyxFQUFBQSxXQUFXLEVBQUVJLENBQUMsSUFBSUMsTUFBTSxDQUFDRCxDQUFELEVBQUksQ0FBSixDQUwxQjtBQU1FSCxFQUFBQSxXQUFXLEVBQUU7QUFOZixDQXJHOEIsRUE2RzlCO0FBQ0VaLEVBQUFBLEVBQUUsRUFBRSxFQUROO0FBRUVDLEVBQUFBLFVBQVUsRUFBRSxhQUZkO0FBR0VDLEVBQUFBLFdBQVcsRUFBRSxNQUFNNEMsT0FBTyxDQUFDUCxVQUg3QjtBQUlFOUIsRUFBQUEsS0FBSyxFQUFFLE1BQU0sSUFBSUMsT0FBSixDQUFZRyxRQUFRLENBQUNtQyxVQUFULENBQW9CdkMsS0FBaEMsQ0FKZjtBQUtFRSxFQUFBQSxXQUFXLEVBQUVJLENBQUMsSUFBSUMsTUFBTSxDQUFDRCxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsQ0FMMUI7QUFNRUgsRUFBQUEsV0FBVyxFQUFFO0FBTmYsQ0E3RzhCLEVBcUg5QjtBQUNFWixFQUFBQSxFQUFFLEVBQUUsRUFETjtBQUVFQyxFQUFBQSxVQUFVLEVBQUUsZUFGZDtBQUdFQyxFQUFBQSxXQUFXLEVBQUUsTUFBTTRDLE9BQU8sQ0FBQ1AsVUFIN0I7QUFJRTlCLEVBQUFBLEtBQUssRUFBRSxNQUFNLElBQUlDLE9BQUosQ0FBWUcsUUFBUSxDQUFDb0MsYUFBVCxDQUF1QnhDLEtBQW5DLENBSmY7QUFLRUUsRUFBQUEsV0FBVyxFQUFFSSxDQUFDLElBQUlDLE1BQU0sQ0FBQ0QsQ0FBRCxFQUFJLENBQUosQ0FMMUI7QUFNRUgsRUFBQUEsV0FBVyxFQUFFO0FBTmYsQ0FySDhCLEVBNkg5QjtBQUNFWixFQUFBQSxFQUFFLEVBQUUsRUFETjtBQUVFQyxFQUFBQSxVQUFVLEVBQUUsZ0JBRmQ7QUFHRUMsRUFBQUEsV0FBVyxFQUFFLE1BQU1nRCxLQUFLLENBQUNDLFFBSDNCO0FBSUUxQyxFQUFBQSxLQUFLLEVBQUUsTUFBTUksUUFBUSxDQUFDdUMsYUFKeEI7QUFLRXpDLEVBQUFBLFdBQVcsRUFBRUksQ0FBQyxJQUFJQyxNQUFNLENBQUNELENBQUQsRUFBSSxDQUFKLENBTDFCO0FBTUVILEVBQUFBLFdBQVcsRUFBRTtBQU5mLENBN0g4QixDQUF6QiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jb3JlL3NlY3JldC1mb3JtdWxhL3NpZGViYXItcmVzb3VyY2VzLmpzP2E2NGUiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHNpZGViYXJSZXNvdXJjZXMgPSBbXHJcbiAgLy8gTm90ZTogSUQgMCBpcyBpbnRlcnByZXRlZCBpbiB0aGUgVnVlIGNvbXBvbmVudCBhcyBcInRoZSBsYXJnZXN0IHVubG9ja2VkIElEXCIgLSBkbyBub3QgdXNlIElEIDBcclxuICB7XHJcbiAgICBpZDogMSxcclxuICAgIG9wdGlvbk5hbWU6IFwiQmxvYlwiLFxyXG4gICAgaXNBdmFpbGFibGU6ICgpID0+IFRoZW1lcy5hdmFpbGFibGUoKS5tYXAodCA9PiB0Lm5hbWUpLmluY2x1ZGVzKFwiUzExXCIpLFxyXG4gICAgLy8gVGhpcyBpcyBhIGR1bW15IHZhbHVlIHRvIHByZXZlbnQgdnVlIGVycm9yc1xyXG4gICAgdmFsdWU6ICgpID0+IG5ldyBEZWNpbWFsKDEpLFxyXG4gICAgZm9ybWF0VmFsdWU6ICgpID0+IFwiXFx1RTAxMFwiLFxyXG4gICAgZm9ybWF0Q2xhc3M6IFwiby1zaWRlYmFyLWN1cnJlbmN5LS1hbnRpbWF0dGVyXCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogMixcclxuICAgIG9wdGlvbk5hbWU6IFwiQW50aW1hdHRlclwiLFxyXG4gICAgaXNBdmFpbGFibGU6ICgpID0+IHRydWUsXHJcbiAgICB2YWx1ZTogKCkgPT4gQ3VycmVuY3kuYW50aW1hdHRlci52YWx1ZSxcclxuICAgIGZvcm1hdFZhbHVlOiB4ID0+IGZvcm1hdCh4LCAyLCAxKSxcclxuICAgIGZvcm1hdENsYXNzOiBcIm8tc2lkZWJhci1jdXJyZW5jeS0tYW50aW1hdHRlclwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDMsXHJcbiAgICBvcHRpb25OYW1lOiBcIkluZmluaXR5IFBvaW50c1wiLFxyXG4gICAgaXNBdmFpbGFibGU6ICgpID0+IFBsYXllclByb2dyZXNzLmluZmluaXR5VW5sb2NrZWQoKSxcclxuICAgIHZhbHVlOiAoKSA9PiBDdXJyZW5jeS5pbmZpbml0eVBvaW50cy52YWx1ZS5mbG9vcigpLFxyXG4gICAgZm9ybWF0VmFsdWU6IHggPT4gZm9ybWF0KHgsIDIpLFxyXG4gICAgZm9ybWF0Q2xhc3M6IFwiby1zaWRlYmFyLWN1cnJlbmN5LS1pbmZpbml0eVwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDQsXHJcbiAgICBvcHRpb25OYW1lOiBcIlJlcGxpY2FudGlcIixcclxuICAgIGlzQXZhaWxhYmxlOiAoKSA9PiBSZXBsaWNhbnRpLmFyZVVubG9ja2VkIHx8IFBsYXllclByb2dyZXNzLmV0ZXJuaXR5VW5sb2NrZWQoKSxcclxuICAgIHZhbHVlOiAoKSA9PiBSZXBsaWNhbnRpLmFtb3VudCxcclxuICAgIGZvcm1hdFZhbHVlOiB4ID0+IGZvcm1hdCh4LCAyKSxcclxuICAgIGZvcm1hdENsYXNzOiBcIm8tc2lkZWJhci1jdXJyZW5jeS0tcmVwbGljYW50aVwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDUsXHJcbiAgICBvcHRpb25OYW1lOiBcIkV0ZXJuaXR5IFBvaW50c1wiLFxyXG4gICAgaXNBdmFpbGFibGU6ICgpID0+IFBsYXllclByb2dyZXNzLmV0ZXJuaXR5VW5sb2NrZWQoKSxcclxuICAgIHZhbHVlOiAoKSA9PiBDdXJyZW5jeS5ldGVybml0eVBvaW50cy52YWx1ZS5mbG9vcigpLFxyXG4gICAgZm9ybWF0VmFsdWU6IHggPT4gZm9ybWF0KHgsIDIpLFxyXG4gICAgZm9ybWF0Q2xhc3M6IFwiby1zaWRlYmFyLWN1cnJlbmN5LS1ldGVybml0eVwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDYsXHJcbiAgICBvcHRpb25OYW1lOiBcIlRvdGFsIFRUXCIsXHJcbiAgICBpc0F2YWlsYWJsZTogKCkgPT4gUGxheWVyUHJvZ3Jlc3MuZXRlcm5pdHlVbmxvY2tlZCgpLFxyXG4gICAgdmFsdWU6ICgpID0+IHBsYXllci50aW1lc3R1ZHkudGhlb3JlbS5wbHVzKFRpbWVUaGVvcmVtcy5jYWxjdWxhdGVUaW1lU3R1ZGllc0Nvc3QoKSksXHJcbiAgICBmb3JtYXRWYWx1ZTogeCA9PiBmb3JtYXQoeCwgMiksXHJcbiAgICBmb3JtYXRDbGFzczogXCJvLXNpZGViYXItY3VycmVuY3ktLWV0ZXJuaXR5XCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogNyxcclxuICAgIG9wdGlvbk5hbWU6IFwiVGFjaHlvbiBQYXJ0aWNsZXNcIixcclxuICAgIGlzQXZhaWxhYmxlOiAoKSA9PiBQbGF5ZXJQcm9ncmVzcy5kaWxhdGlvblVubG9ja2VkKCkgfHwgUGxheWVyUHJvZ3Jlc3MucmVhbGl0eVVubG9ja2VkKCksXHJcbiAgICB2YWx1ZTogKCkgPT4gQ3VycmVuY3kudGFjaHlvblBhcnRpY2xlcy52YWx1ZSxcclxuICAgIGZvcm1hdFZhbHVlOiB4ID0+IGZvcm1hdCh4LCAyKSxcclxuICAgIGZvcm1hdENsYXNzOiBcIm8tc2lkZWJhci1jdXJyZW5jeS0tZGlsYXRpb25cIixcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiA4LFxyXG4gICAgb3B0aW9uTmFtZTogXCJEaWxhdGVkIFRpbWVcIixcclxuICAgIGlzQXZhaWxhYmxlOiAoKSA9PiBQbGF5ZXJQcm9ncmVzcy5kaWxhdGlvblVubG9ja2VkKCkgfHwgUGxheWVyUHJvZ3Jlc3MucmVhbGl0eVVubG9ja2VkKCksXHJcbiAgICB2YWx1ZTogKCkgPT4gQ3VycmVuY3kuZGlsYXRlZFRpbWUudmFsdWUsXHJcbiAgICBmb3JtYXRWYWx1ZTogeCA9PiBmb3JtYXQoeCwgMiksXHJcbiAgICBmb3JtYXRDbGFzczogXCJvLXNpZGViYXItY3VycmVuY3ktLWRpbGF0aW9uXCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogOSxcclxuICAgIG9wdGlvbk5hbWU6IFwiUmVhbGl0eSBNYWNoaW5lc1wiLFxyXG4gICAgaXNBdmFpbGFibGU6ICgpID0+IFBsYXllclByb2dyZXNzLnJlYWxpdHlVbmxvY2tlZCgpLFxyXG4gICAgdmFsdWU6ICgpID0+IEN1cnJlbmN5LnJlYWxpdHlNYWNoaW5lcy52YWx1ZSxcclxuICAgIGZvcm1hdFZhbHVlOiB4ID0+IGZvcm1hdCh4LCAyKSxcclxuICAgIGZvcm1hdENsYXNzOiBcIm8tc2lkZWJhci1jdXJyZW5jeS0tcmVhbGl0eVwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDEwLFxyXG4gICAgb3B0aW9uTmFtZTogXCJSZWxpYyBTaGFyZHNcIixcclxuICAgIGlzQXZhaWxhYmxlOiAoKSA9PiBUZXJlc2FVbmxvY2tzLmVmZmFyaWcuaXNVbmxvY2tlZCxcclxuICAgIHZhbHVlOiAoKSA9PiBuZXcgRGVjaW1hbChDdXJyZW5jeS5yZWxpY1NoYXJkcy52YWx1ZSksXHJcbiAgICBmb3JtYXRWYWx1ZTogeCA9PiBmb3JtYXQoeCwgMiksXHJcbiAgICBmb3JtYXRDbGFzczogXCJvLXNpZGViYXItY3VycmVuY3ktLWVmZmFyaWdcIixcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiAxMSxcclxuICAgIG9wdGlvbk5hbWU6IFwiSW1hZ2luYXJ5IE1hY2hpbmVzXCIsXHJcbiAgICBpc0F2YWlsYWJsZTogKCkgPT4gTWFjaGluZUhhbmRsZXIuaXNJTVVubG9ja2VkLFxyXG4gICAgdmFsdWU6ICgpID0+IG5ldyBEZWNpbWFsKEN1cnJlbmN5LmltYWdpbmFyeU1hY2hpbmVzLnZhbHVlKSxcclxuICAgIGZvcm1hdFZhbHVlOiB4ID0+IGZvcm1hdCh4LCAyKSxcclxuICAgIGZvcm1hdENsYXNzOiBcIm8tc2lkZWJhci1jdXJyZW5jeS0tcmVhbGl0eVwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDEyLFxyXG4gICAgb3B0aW9uTmFtZTogXCJBbGwgTWFjaGluZXNcIixcclxuICAgIHJlc291cmNlTmFtZTogXCJNYWNoaW5lc1wiLFxyXG4gICAgaXNBdmFpbGFibGU6ICgpID0+IE1hY2hpbmVIYW5kbGVyLmlzSU1VbmxvY2tlZCxcclxuICAgIC8vIFRoaXMgaXMgYSBkdW1teSB2YWx1ZSB0byBwcmV2ZW50IHZ1ZSBlcnJvcnNcclxuICAgIHZhbHVlOiAoKSA9PiBDdXJyZW5jeS5yZWFsaXR5TWFjaGluZXMudmFsdWUsXHJcbiAgICBmb3JtYXRWYWx1ZTogKCkgPT4gZm9ybWF0TWFjaGluZXMoQ3VycmVuY3kucmVhbGl0eU1hY2hpbmVzLnZhbHVlLCBDdXJyZW5jeS5pbWFnaW5hcnlNYWNoaW5lcy52YWx1ZSksXHJcbiAgICBmb3JtYXRDbGFzczogXCJvLXNpZGViYXItY3VycmVuY3ktLXJlYWxpdHlcIixcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiAxMyxcclxuICAgIG9wdGlvbk5hbWU6IFwiRGFyayBNYXR0ZXJcIixcclxuICAgIGlzQXZhaWxhYmxlOiAoKSA9PiBMYWl0ZWxhLmlzVW5sb2NrZWQsXHJcbiAgICB2YWx1ZTogKCkgPT4gQ3VycmVuY3kuZGFya01hdHRlcixcclxuICAgIGZvcm1hdFZhbHVlOiB4ID0+IGZvcm1hdCh4LCAyKSxcclxuICAgIGZvcm1hdENsYXNzOiBcIm8tc2lkZWJhci1jdXJyZW5jeS0tbGFpdGVsYVwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDE0LFxyXG4gICAgb3B0aW9uTmFtZTogXCJEYXJrIEVuZXJneVwiLFxyXG4gICAgaXNBdmFpbGFibGU6ICgpID0+IExhaXRlbGEuaXNVbmxvY2tlZCxcclxuICAgIHZhbHVlOiAoKSA9PiBuZXcgRGVjaW1hbChDdXJyZW5jeS5kYXJrRW5lcmd5LnZhbHVlKSxcclxuICAgIGZvcm1hdFZhbHVlOiB4ID0+IGZvcm1hdCh4LCAyLCAyKSxcclxuICAgIGZvcm1hdENsYXNzOiBcIm8tc2lkZWJhci1jdXJyZW5jeS0tbGFpdGVsYVwiLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDE1LFxyXG4gICAgb3B0aW9uTmFtZTogXCJTaW5ndWxhcml0aWVzXCIsXHJcbiAgICBpc0F2YWlsYWJsZTogKCkgPT4gTGFpdGVsYS5pc1VubG9ja2VkLFxyXG4gICAgdmFsdWU6ICgpID0+IG5ldyBEZWNpbWFsKEN1cnJlbmN5LnNpbmd1bGFyaXRpZXMudmFsdWUpLFxyXG4gICAgZm9ybWF0VmFsdWU6IHggPT4gZm9ybWF0KHgsIDIpLFxyXG4gICAgZm9ybWF0Q2xhc3M6IFwiby1zaWRlYmFyLWN1cnJlbmN5LS1sYWl0ZWxhXCIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogMTYsXHJcbiAgICBvcHRpb25OYW1lOiBcIlJlYWxpdHkgU2hhcmRzXCIsXHJcbiAgICBpc0F2YWlsYWJsZTogKCkgPT4gUGVsbGUuaXNEb29tZWQsXHJcbiAgICB2YWx1ZTogKCkgPT4gQ3VycmVuY3kucmVhbGl0eVNoYXJkcyxcclxuICAgIGZvcm1hdFZhbHVlOiB4ID0+IGZvcm1hdCh4LCAyKSxcclxuICAgIGZvcm1hdENsYXNzOiBcIm8tc2lkZWJhci1jdXJyZW5jeS0tcGVsbGVcIixcclxuICB9LFxyXG5dO1xyXG4iXSwibmFtZXMiOlsic2lkZWJhclJlc291cmNlcyIsImlkIiwib3B0aW9uTmFtZSIsImlzQXZhaWxhYmxlIiwiVGhlbWVzIiwiYXZhaWxhYmxlIiwibWFwIiwidCIsIm5hbWUiLCJpbmNsdWRlcyIsInZhbHVlIiwiRGVjaW1hbCIsImZvcm1hdFZhbHVlIiwiZm9ybWF0Q2xhc3MiLCJDdXJyZW5jeSIsImFudGltYXR0ZXIiLCJ4IiwiZm9ybWF0IiwiUGxheWVyUHJvZ3Jlc3MiLCJpbmZpbml0eVVubG9ja2VkIiwiaW5maW5pdHlQb2ludHMiLCJmbG9vciIsIlJlcGxpY2FudGkiLCJhcmVVbmxvY2tlZCIsImV0ZXJuaXR5VW5sb2NrZWQiLCJhbW91bnQiLCJldGVybml0eVBvaW50cyIsInBsYXllciIsInRpbWVzdHVkeSIsInRoZW9yZW0iLCJwbHVzIiwiVGltZVRoZW9yZW1zIiwiY2FsY3VsYXRlVGltZVN0dWRpZXNDb3N0IiwiZGlsYXRpb25VbmxvY2tlZCIsInJlYWxpdHlVbmxvY2tlZCIsInRhY2h5b25QYXJ0aWNsZXMiLCJkaWxhdGVkVGltZSIsInJlYWxpdHlNYWNoaW5lcyIsIlRlcmVzYVVubG9ja3MiLCJlZmZhcmlnIiwiaXNVbmxvY2tlZCIsInJlbGljU2hhcmRzIiwiTWFjaGluZUhhbmRsZXIiLCJpc0lNVW5sb2NrZWQiLCJpbWFnaW5hcnlNYWNoaW5lcyIsInJlc291cmNlTmFtZSIsImZvcm1hdE1hY2hpbmVzIiwiTGFpdGVsYSIsImRhcmtNYXR0ZXIiLCJkYXJrRW5lcmd5Iiwic2luZ3VsYXJpdGllcyIsIlBlbGxlIiwiaXNEb29tZWQiLCJyZWFsaXR5U2hhcmRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/core/secret-formula/sidebar-resources.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/speedrun-milestones.js": +/*!********************************************************!*\ + !*** ./src/core/secret-formula/speedrun-milestones.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"speedrunMilestones\": () => (/* binding */ speedrunMilestones)\n/* harmony export */ });\nconst speedrunMilestones = [{\n id: 1,\n key: \"firstBoost\",\n name: \"First Dimboost\",\n description: \"Get your first Dimboost\",\n checkRequirement: () => true,\n checkEvent: GAME_EVENT.DIMBOOST_AFTER\n}, {\n id: 2,\n key: \"firstGalaxy\",\n name: \"First Galaxy\",\n description: \"Get your first Galaxy\",\n checkRequirement: () => true,\n checkEvent: GAME_EVENT.GALAXY_RESET_AFTER\n}, {\n id: 3,\n key: \"firstInfinity\",\n name: \"First Infinity\",\n description: \"Complete your first Infinity\",\n checkRequirement: () => true,\n checkEvent: GAME_EVENT.BIG_CRUNCH_AFTER\n}, {\n id: 4,\n key: \"completeC9\",\n name: \"Tickspeed Challenge\",\n description: \"Complete the Tickspeed Autobuyer Challenge\",\n checkRequirement: () => NormalChallenge(9).isCompleted,\n checkEvent: GAME_EVENT.BIG_CRUNCH_AFTER\n}, {\n id: 5,\n key: \"completeAllNC\",\n name: \"All Normal Challenges\",\n description: \"Complete all Normal Challenges\",\n checkRequirement: () => NormalChallenges.all.countWhere(c => !c.isCompleted) === 0,\n checkEvent: GAME_EVENT.BIG_CRUNCH_AFTER\n}, {\n id: 6,\n key: \"breakInfinity\",\n name: \"Break Infinity\",\n description: \"Break Infinity for the first time\",\n checkRequirement: () => player.break,\n checkEvent: GAME_EVENT.BREAK_INFINITY\n}, {\n id: 7,\n key: \"upgrade5e11IP\",\n\n get name() {\n return `${format(5e11)} IP Upgrade`;\n },\n\n description: () => `Purchase the ${formatPercents(0.5)} stronger Galaxies upgrade`,\n checkRequirement: () => true // This is checked within BreakInfinityUpgrade.onPurchased\n\n}, {\n id: 8,\n key: \"completeIC5\",\n name: \"Infinity Challenge 5\",\n description: \"Complete Infinity Challenge 5\",\n checkRequirement: () => InfinityChallenge(5).isCompleted,\n checkEvent: GAME_EVENT.BIG_CRUNCH_AFTER\n}, {\n id: 9,\n key: \"unlockReplicanti\",\n name: \"Replicanti\",\n description: \"Unlock Replicanti\",\n checkRequirement: () => player.replicanti.unl,\n checkEvent: GAME_EVENT.REPLICANTI_TICK_AFTER\n}, {\n id: 10,\n key: \"firstEternity\",\n name: \"First Eternity\",\n description: \"Complete your first Eternity\",\n checkRequirement: () => true,\n checkEvent: GAME_EVENT.ETERNITY_RESET_AFTER\n}, {\n id: 11,\n key: \"allEternityMilestones\",\n name: \"All Eternity Milestones\",\n description: \"Unlock all Eternity Milestones\",\n checkRequirement: () => EternityMilestone.all.every(m => m.isReached),\n checkEvent: GAME_EVENT.ETERNITY_RESET_AFTER\n}, {\n id: 12,\n key: \"completeFirstEC\",\n name: \"First Eternity Challenge\",\n description: \"Complete any tier of an Eternity Challenge\",\n checkRequirement: () => EternityChallenges.completions > 0,\n checkEvent: GAME_EVENT.ETERNITY_RESET_AFTER\n}, {\n id: 13,\n key: \"completeEC10\",\n name: \"Eternity Challenge 10\",\n description: \"Complete Eternity Challenge 10 for the first time\",\n checkRequirement: () => EternityChallenge(10).completions > 0,\n checkEvent: GAME_EVENT.ETERNITY_RESET_AFTER\n}, {\n id: 14,\n key: \"firstDilation\",\n name: \"First Dilated Eternity\",\n description: \"Complete a Dilated Eternity for the first time\",\n checkRequirement: () => player.dilation.active,\n checkEvent: GAME_EVENT.ETERNITY_RESET_BEFORE\n}, {\n id: 15,\n key: \"upgradeTTgen\",\n name: \"Time Theorem Generation\",\n description: \"Purchase the Time Theorem Generation Dilation Upgrade\",\n checkRequirement: () => true // This is checked within DilationUpgradeState.onPurchased\n\n}, {\n id: 16,\n key: \"firstReality\",\n name: \"First Reality\",\n description: \"Complete your first Reality\",\n checkRequirement: () => true,\n checkEvent: GAME_EVENT.REALITY_RESET_AFTER\n}, {\n id: 17,\n key: \"upgradeBlackHole\",\n name: \"Black Hole\",\n description: \"Unlock the Black Hole\",\n checkRequirement: () => true,\n checkEvent: GAME_EVENT.BLACK_HOLE_UNLOCKED\n}, {\n id: 18,\n key: \"allRealityUpgrades\",\n name: \"All Reality Upgrades\",\n description: \"Purchase all Reality Upgrades\",\n checkRequirement: () => RealityUpgrades.allBought,\n checkEvent: GAME_EVENT.REALITY_UPGRADE_BOUGHT\n}, {\n id: 19,\n key: \"completeTeresaReality\",\n name: \"Teresa's Reality\",\n description: \"Complete Teresa's Reality\",\n checkRequirement: () => Teresa.isRunning,\n checkEvent: GAME_EVENT.REALITY_RESET_BEFORE\n}, {\n id: 20,\n key: \"completeEffarigReality\",\n name: \"Effarig's Reality\",\n description: \"Complete all tiers of Effarig's Reality\",\n checkRequirement: () => Effarig.currentStage === EFFARIG_STAGES.COMPLETED,\n checkEvent: GAME_EVENT.REALITY_RESET_AFTER\n}, {\n id: 21,\n key: \"completeEnslavedReality\",\n name: \"The Nameless Ones' Reality\",\n description: \"Complete The Nameless Ones' Reality\",\n checkRequirement: () => Enslaved.isRunning,\n checkEvent: GAME_EVENT.REALITY_RESET_BEFORE\n}, {\n id: 22,\n key: \"complete36VAchievement\",\n name: \"All basic V-Achievements\",\n description: () => `Complete ${formatInt(36)} V-Achievements`,\n checkRequirement: () => true // In order to avoid unnecessary overhead, this is checked within V.checkForUnlocks instead of every tick\n\n}, {\n id: 23,\n key: \"completeRaMemories\",\n name: \"Regain Ra's Memories\",\n description: \"Regain all of Ra's Celestial Memories\",\n checkRequirement: () => Ra.totalPetLevel >= Ra.maxTotalPetLevel,\n checkEvent: GAME_EVENT.GAME_TICK_AFTER\n}, {\n id: 24,\n key: \"completeFullDestabilize\",\n name: \"Full Destabilization\",\n description: \"Disable all Dimensions within Lai'tela's Reality\",\n checkRequirement: () => Laitela.isFullyDestabilized // Destabilization isn't a reality reset because it shortcuts gameLoop; this is checked in laitelaRealityTick\n\n}, {\n id: 25,\n key: \"completeFullGame\",\n name: \"Game Completed!\",\n description: \"Complete the entire game\",\n checkRequirement: () => Achievement(188).isUnlocked,\n checkEvent: GAME_EVENT.ACHIEVEMENT_UNLOCKED\n}];//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9zcGVlZHJ1bi1taWxlc3RvbmVzLmpzLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBTyxNQUFNQSxrQkFBa0IsR0FBRyxDQUNoQztBQUNFQyxFQUFBQSxFQUFFLEVBQUUsQ0FETjtBQUVFQyxFQUFBQSxHQUFHLEVBQUUsWUFGUDtBQUdFQyxFQUFBQSxJQUFJLEVBQUUsZ0JBSFI7QUFJRUMsRUFBQUEsV0FBVyxFQUFFLHlCQUpmO0FBS0VDLEVBQUFBLGdCQUFnQixFQUFFLE1BQU0sSUFMMUI7QUFNRUMsRUFBQUEsVUFBVSxFQUFFQyxVQUFVLENBQUNDO0FBTnpCLENBRGdDLEVBU2hDO0FBQ0VQLEVBQUFBLEVBQUUsRUFBRSxDQUROO0FBRUVDLEVBQUFBLEdBQUcsRUFBRSxhQUZQO0FBR0VDLEVBQUFBLElBQUksRUFBRSxjQUhSO0FBSUVDLEVBQUFBLFdBQVcsRUFBRSx1QkFKZjtBQUtFQyxFQUFBQSxnQkFBZ0IsRUFBRSxNQUFNLElBTDFCO0FBTUVDLEVBQUFBLFVBQVUsRUFBRUMsVUFBVSxDQUFDRTtBQU56QixDQVRnQyxFQWlCaEM7QUFDRVIsRUFBQUEsRUFBRSxFQUFFLENBRE47QUFFRUMsRUFBQUEsR0FBRyxFQUFFLGVBRlA7QUFHRUMsRUFBQUEsSUFBSSxFQUFFLGdCQUhSO0FBSUVDLEVBQUFBLFdBQVcsRUFBRSw4QkFKZjtBQUtFQyxFQUFBQSxnQkFBZ0IsRUFBRSxNQUFNLElBTDFCO0FBTUVDLEVBQUFBLFVBQVUsRUFBRUMsVUFBVSxDQUFDRztBQU56QixDQWpCZ0MsRUF5QmhDO0FBQ0VULEVBQUFBLEVBQUUsRUFBRSxDQUROO0FBRUVDLEVBQUFBLEdBQUcsRUFBRSxZQUZQO0FBR0VDLEVBQUFBLElBQUksRUFBRSxxQkFIUjtBQUlFQyxFQUFBQSxXQUFXLEVBQUUsNENBSmY7QUFLRUMsRUFBQUEsZ0JBQWdCLEVBQUUsTUFBTU0sZUFBZSxDQUFDLENBQUQsQ0FBZixDQUFtQkMsV0FMN0M7QUFNRU4sRUFBQUEsVUFB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QWlNaEM7QUFDRXZELEVBQUFBLEVBQUUsRUFBRSxFQUROO0FBRUVDLEVBQUFBLEdBQUcsRUFBRSxrQkFGUDtBQUdFQyxFQUFBQSxJQUFJLEVBQUUsaUJBSFI7QUFJRUMsRUFBQUEsV0FBVyxFQUFFLDBCQUpmO0FBS0VDLEVBQUFBLGdCQUFnQixFQUFFLE1BQU1vRCxXQUFXLENBQUMsR0FBRCxDQUFYLENBQWlCQyxVQUwzQztBQU1FcEQsRUFBQUEsVUFBVSxFQUFFQyxVQUFVLENBQUNvRDtBQU56QixDQWpNZ0MsQ0FBM0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS9zcGVlZHJ1bi1taWxlc3RvbmVzLmpzPzEzMmUiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHNwZWVkcnVuTWlsZXN0b25lcyA9IFtcclxuICB7XHJcbiAgICBpZDogMSxcclxuICAgIGtleTogXCJmaXJzdEJvb3N0XCIsXHJcbiAgICBuYW1lOiBcIkZpcnN0IERpbWJvb3N0XCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJHZXQgeW91ciBmaXJzdCBEaW1ib29zdFwiLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gdHJ1ZSxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuRElNQk9PU1RfQUZURVIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogMixcclxuICAgIGtleTogXCJmaXJzdEdhbGF4eVwiLFxyXG4gICAgbmFtZTogXCJGaXJzdCBHYWxheHlcIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIkdldCB5b3VyIGZpcnN0IEdhbGF4eVwiLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gdHJ1ZSxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuR0FMQVhZX1JFU0VUX0FGVEVSLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDMsXHJcbiAgICBrZXk6IFwiZmlyc3RJbmZpbml0eVwiLFxyXG4gICAgbmFtZTogXCJGaXJzdCBJbmZpbml0eVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQ29tcGxldGUgeW91ciBmaXJzdCBJbmZpbml0eVwiLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gdHJ1ZSxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuQklHX0NSVU5DSF9BRlRFUixcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiA0LFxyXG4gICAga2V5OiBcImNvbXBsZXRlQzlcIixcclxuICAgIG5hbWU6IFwiVGlja3NwZWVkIENoYWxsZW5nZVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQ29tcGxldGUgdGhlIFRpY2tzcGVlZCBBdXRvYnV5ZXIgQ2hhbGxlbmdlXCIsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBOb3JtYWxDaGFsbGVuZ2UoOSkuaXNDb21wbGV0ZWQsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkJJR19DUlVOQ0hfQUZURVIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogNSxcclxuICAgIGtleTogXCJjb21wbGV0ZUFsbE5DXCIsXHJcbiAgICBuYW1lOiBcIkFsbCBOb3JtYWwgQ2hhbGxlbmdlc1wiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQ29tcGxldGUgYWxsIE5vcm1hbCBDaGFsbGVuZ2VzXCIsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBOb3JtYWxDaGFsbGVuZ2VzLmFsbC5jb3VudFdoZXJlKGMgPT4gIWMuaXNDb21wbGV0ZWQpID09PSAwLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5CSUdfQ1JVTkNIX0FGVEVSLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDYsXHJcbiAgICBrZXk6IFwiYnJlYWtJbmZpbml0eVwiLFxyXG4gICAgbmFtZTogXCJCcmVhayBJbmZpbml0eVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQnJlYWsgSW5maW5pdHkgZm9yIHRoZSBmaXJzdCB0aW1lXCIsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBwbGF5ZXIuYnJlYWssXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkJSRUFLX0lORklOSVRZLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDcsXHJcbiAgICBrZXk6IFwidXBncmFkZTVlMTFJUFwiLFxyXG4gICAgZ2V0IG5hbWUoKSB7IHJldHVybiBgJHtmb3JtYXQoNWUxMSl9IElQIFVwZ3JhZGVgOyB9LFxyXG4gICAgZGVzY3JpcHRpb246ICgpID0+IGBQdXJjaGFzZSB0aGUgJHtmb3JtYXRQZXJjZW50cygwLjUpfSBzdHJvbmdlciBHYWxheGllcyB1cGdyYWRlYCxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IHRydWUsXHJcbiAgICAvLyBUaGlzIGlzIGNoZWNrZWQgd2l0aGluIEJyZWFrSW5maW5pdHlVcGdyYWRlLm9uUHVyY2hhc2VkXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogOCxcclxuICAgIGtleTogXCJjb21wbGV0ZUlDNVwiLFxyXG4gICAgbmFtZTogXCJJbmZpbml0eSBDaGFsbGVuZ2UgNVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQ29tcGxldGUgSW5maW5pdHkgQ2hhbGxlbmdlIDVcIixcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IEluZmluaXR5Q2hhbGxlbmdlKDUpLmlzQ29tcGxldGVkLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5CSUdfQ1JVTkNIX0FGVEVSLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDksXHJcbiAgICBrZXk6IFwidW5sb2NrUmVwbGljYW50aVwiLFxyXG4gICAgbmFtZTogXCJSZXBsaWNhbnRpXCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJVbmxvY2sgUmVwbGljYW50aVwiLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gcGxheWVyLnJlcGxpY2FudGkudW5sLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5SRVBMSUNBTlRJX1RJQ0tfQUZURVIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogMTAsXHJcbiAgICBrZXk6IFwiZmlyc3RFdGVybml0eVwiLFxyXG4gICAgbmFtZTogXCJGaXJzdCBFdGVybml0eVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQ29tcGxldGUgeW91ciBmaXJzdCBFdGVybml0eVwiLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gdHJ1ZSxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuRVRFUk5JVFlfUkVTRVRfQUZURVIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogMTEsXHJcbiAgICBrZXk6IFwiYWxsRXRlcm5pdHlNaWxlc3RvbmVzXCIsXHJcbiAgICBuYW1lOiBcIkFsbCBFdGVybml0eSBNaWxlc3RvbmVzXCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJVbmxvY2sgYWxsIEV0ZXJuaXR5IE1pbGVzdG9uZXNcIixcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IEV0ZXJuaXR5TWlsZXN0b25lLmFsbC5ldmVyeShtID0+IG0uaXNSZWFjaGVkKSxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuRVRFUk5JVFlfUkVTRVRfQUZURVIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogMTIsXHJcbiAgICBrZXk6IFwiY29tcGxldGVGaXJzdEVDXCIsXHJcbiAgICBuYW1lOiBcIkZpcnN0IEV0ZXJuaXR5IENoYWxsZW5nZVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQ29tcGxldGUgYW55IHRpZXIgb2YgYW4gRXRlcm5pdHkgQ2hhbGxlbmdlXCIsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBFdGVybml0eUNoYWxsZW5nZXMuY29tcGxldGlvbnMgPiAwLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5FVEVSTklUWV9SRVNFVF9BRlRFUixcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiAxMyxcclxuICAgIGtleTogXCJjb21wbGV0ZUVDMTBcIixcclxuICAgIG5hbWU6IFwiRXRlcm5pdHkgQ2hhbGxlbmdlIDEwXCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJDb21wbGV0ZSBFdGVybml0eSBDaGFsbGVuZ2UgMTAgZm9yIHRoZSBmaXJzdCB0aW1lXCIsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBFdGVybml0eUNoYWxsZW5nZSgxMCkuY29tcGxldGlvbnMgPiAwLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5FVEVSTklUWV9SRVNFVF9BRlRFUixcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiAxNCxcclxuICAgIGtleTogXCJmaXJzdERpbGF0aW9uXCIsXHJcbiAgICBuYW1lOiBcIkZpcnN0IERpbGF0ZWQgRXRlcm5pdHlcIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIkNvbXBsZXRlIGEgRGlsYXRlZCBFdGVybml0eSBmb3IgdGhlIGZpcnN0IHRpbWVcIixcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IHBsYXllci5kaWxhdGlvbi5hY3RpdmUsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkVURVJOSVRZX1JFU0VUX0JFRk9SRSxcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiAxNSxcclxuICAgIGtleTogXCJ1cGdyYWRlVFRnZW5cIixcclxuICAgIG5hbWU6IFwiVGltZSBUaGVvcmVtIEdlbmVyYXRpb25cIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIlB1cmNoYXNlIHRoZSBUaW1lIFRoZW9yZW0gR2VuZXJhdGlvbiBEaWxhdGlvbiBVcGdyYWRlXCIsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiB0cnVlLFxyXG4gICAgLy8gVGhpcyBpcyBjaGVja2VkIHdpdGhpbiBEaWxhdGlvblVwZ3JhZGVTdGF0ZS5vblB1cmNoYXNlZFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDE2LFxyXG4gICAga2V5OiBcImZpcnN0UmVhbGl0eVwiLFxyXG4gICAgbmFtZTogXCJGaXJzdCBSZWFsaXR5XCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJDb21wbGV0ZSB5b3VyIGZpcnN0IFJlYWxpdHlcIixcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IHRydWUsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULlJFQUxJVFlfUkVTRVRfQUZURVIsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogMTcsXHJcbiAgICBrZXk6IFwidXBncmFkZUJsYWNrSG9sZVwiLFxyXG4gICAgbmFtZTogXCJCbGFjayBIb2xlXCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJVbmxvY2sgdGhlIEJsYWNrIEhvbGVcIixcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IHRydWUsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkJMQUNLX0hPTEVfVU5MT0NLRUQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogMTgsXHJcbiAgICBrZXk6IFwiYWxsUmVhbGl0eVVwZ3JhZGVzXCIsXHJcbiAgICBuYW1lOiBcIkFsbCBSZWFsaXR5IFVwZ3JhZGVzXCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJQdXJjaGFzZSBhbGwgUmVhbGl0eSBVcGdyYWRlc1wiLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gUmVhbGl0eVVwZ3JhZGVzLmFsbEJvdWdodCxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuUkVBTElUWV9VUEdSQURFX0JPVUdIVCxcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiAxOSxcclxuICAgIGtleTogXCJjb21wbGV0ZVRlcmVzYVJlYWxpdHlcIixcclxuICAgIG5hbWU6IFwiVGVyZXNhJ3MgUmVhbGl0eVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQ29tcGxldGUgVGVyZXNhJ3MgUmVhbGl0eVwiLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gVGVyZXNhLmlzUnVubmluZyxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuUkVBTElUWV9SRVNFVF9CRUZPUkUsXHJcbiAgfSxcclxuICB7XHJcbiAgICBpZDogMjAsXHJcbiAgICBrZXk6IFwiY29tcGxldGVFZmZhcmlnUmVhbGl0eVwiLFxyXG4gICAgbmFtZTogXCJFZmZhcmlnJ3MgUmVhbGl0eVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQ29tcGxldGUgYWxsIHRpZXJzIG9mIEVmZmFyaWcncyBSZWFsaXR5XCIsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBFZmZhcmlnLmN1cnJlbnRTdGFnZSA9PT0gRUZGQVJJR19TVEFHRVMuQ09NUExFVEVELFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5SRUFMSVRZX1JFU0VUX0FGVEVSLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDIxLFxyXG4gICAga2V5OiBcImNvbXBsZXRlRW5zbGF2ZWRSZWFsaXR5XCIsXHJcbiAgICBuYW1lOiBcIlRoZSBOYW1lbGVzcyBPbmVzJyBSZWFsaXR5XCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJDb21wbGV0ZSBUaGUgTmFtZWxlc3MgT25lcycgUmVhbGl0eVwiLFxyXG4gICAgY2hlY2tSZXF1aXJlbWVudDogKCkgPT4gRW5zbGF2ZWQuaXNSdW5uaW5nLFxyXG4gICAgY2hlY2tFdmVudDogR0FNRV9FVkVOVC5SRUFMSVRZX1JFU0VUX0JFRk9SRSxcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiAyMixcclxuICAgIGtleTogXCJjb21wbGV0ZTM2VkFjaGlldmVtZW50XCIsXHJcbiAgICBuYW1lOiBcIkFsbCBiYXNpYyBWLUFjaGlldmVtZW50c1wiLFxyXG4gICAgZGVzY3JpcHRpb246ICgpID0+IGBDb21wbGV0ZSAke2Zvcm1hdEludCgzNil9IFYtQWNoaWV2ZW1lbnRzYCxcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IHRydWUsXHJcbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCB1bm5lY2Vzc2FyeSBvdmVyaGVhZCwgdGhpcyBpcyBjaGVja2VkIHdpdGhpbiBWLmNoZWNrRm9yVW5sb2NrcyBpbnN0ZWFkIG9mIGV2ZXJ5IHRpY2tcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiAyMyxcclxuICAgIGtleTogXCJjb21wbGV0ZVJhTWVtb3JpZXNcIixcclxuICAgIG5hbWU6IFwiUmVnYWluIFJhJ3MgTWVtb3JpZXNcIixcclxuICAgIGRlc2NyaXB0aW9uOiBcIlJlZ2FpbiBhbGwgb2YgUmEncyBDZWxlc3RpYWwgTWVtb3JpZXNcIixcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IFJhLnRvdGFsUGV0TGV2ZWwgPj0gUmEubWF4VG90YWxQZXRMZXZlbCxcclxuICAgIGNoZWNrRXZlbnQ6IEdBTUVfRVZFTlQuR0FNRV9USUNLX0FGVEVSLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgaWQ6IDI0LFxyXG4gICAga2V5OiBcImNvbXBsZXRlRnVsbERlc3RhYmlsaXplXCIsXHJcbiAgICBuYW1lOiBcIkZ1bGwgRGVzdGFiaWxpemF0aW9uXCIsXHJcbiAgICBkZXNjcmlwdGlvbjogXCJEaXNhYmxlIGFsbCBEaW1lbnNpb25zIHdpdGhpbiBMYWkndGVsYSdzIFJlYWxpdHlcIixcclxuICAgIGNoZWNrUmVxdWlyZW1lbnQ6ICgpID0+IExhaXRlbGEuaXNGdWxseURlc3RhYmlsaXplZCxcclxuICAgIC8vIERlc3RhYmlsaXphdGlvbiBpc24ndCBhIHJlYWxpdHkgcmVzZXQgYmVjYXVzZSBpdCBzaG9ydGN1dHMgZ2FtZUxvb3A7IHRoaXMgaXMgY2hlY2tlZCBpbiBsYWl0ZWxhUmVhbGl0eVRpY2tcclxuICB9LFxyXG4gIHtcclxuICAgIGlkOiAyNSxcclxuICAgIGtleTogXCJjb21wbGV0ZUZ1bGxHYW1lXCIsXHJcbiAgICBuYW1lOiBcIkdhbWUgQ29tcGxldGVkIVwiLFxyXG4gICAgZGVzY3JpcHRpb246IFwiQ29tcGxldGUgdGhlIGVudGlyZSBnYW1lXCIsXHJcbiAgICBjaGVja1JlcXVpcmVtZW50OiAoKSA9PiBBY2hpZXZlbWVudCgxODgpLmlzVW5sb2NrZWQsXHJcbiAgICBjaGVja0V2ZW50OiBHQU1FX0VWRU5ULkFDSElFVkVNRU5UX1VOTE9DS0VELFxyXG4gIH0sXHJcbl07XHJcbiJdLCJuYW1lcyI6WyJzcGVlZHJ1bk1pbGVzdG9uZXMiLCJpZCIsImtleSIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsImNoZWNrUmVxdWlyZW1lbnQiLCJjaGVja0V2ZW50IiwiR0FNRV9FVkVOVCIsIkRJTUJPT1NUX0FGVEVSIiwiR0FMQVhZX1JFU0VUX0FGVEVSIiwiQklHX0NSVU5DSF9BRlRFUiIsIk5vcm1hbENoYWxsZW5nZSIsImlzQ29tcGxldGVkIiwiTm9ybWFsQ2hhbGxlbmdlcyIsImFsbCIsImNvdW50V2hlcmUiLCJjIiwicGxheWVyIiwiYnJlYWsiLCJCUkVBS19JTkZJTklUWSIsImZvcm1hdCIsImZvcm1hdFBlcmNlbnRzIiwiSW5maW5pdHlDaGFsbGVuZ2UiLCJyZXBsaWNhbnRpIiwidW5sIiwiUkVQTElDQU5USV9USUNLX0FGVEVSIiwiRVRFUk5JVFlfUkVTRVRfQUZURVIiLCJFdGVybml0eU1pbGVzdG9uZSIsImV2ZXJ5IiwibSIsImlzUmVhY2hlZCIsIkV0ZXJuaXR5Q2hhbGxlbmdlcyIsImNvbXBsZXRpb25zIiwiRXRlcm5pdHlDaGFsbGVuZ2UiLCJkaWxhdGlvbiIsImFjdGl2ZSIsIkVURVJOSVRZX1JFU0VUX0JFRk9SRSIsIlJFQUxJVFlfUkVTRVRfQUZURVIiLCJCTEFDS19IT0xFX1VOTE9DS0VEIiwiUmVhbGl0eVVwZ3JhZGVzIiwiYWxsQm91Z2h0IiwiUkVBTElUWV9VUEdSQURFX0JPVUdIVCIsIlRlcmVzYSIsImlzUnVubmluZyIsIlJFQUxJVFlfUkVTRVRfQkVGT1JFIiwiRWZmYXJpZyIsImN1cnJlbnRTdGFnZSIsIkVGRkFSSUdfU1RBR0VTIiwiQ09NUExFVEVEIiwiRW5zbGF2ZWQiLCJmb3JtYXRJbnQiLCJSYSIsInRvdGFsUGV0TGV2ZWwiLCJtYXhUb3RhbFBldExldmVsIiwiR0FNRV9USUNLX0FGVEVSIiwiTGFpdGVsYSIsImlzRnVsbHlEZXN0YWJpbGl6ZWQiLCJBY2hpZXZlbWVudCIsImlzVW5sb2NrZWQiLCJBQ0hJRVZFTUVOVF9VTkxPQ0tFRCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/core/secret-formula/speedrun-milestones.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/tab-notifications.js": +/*!******************************************************!*\ + !*** ./src/core/secret-formula/tab-notifications.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"tabNotifications\": () => (/* binding */ tabNotifications)\n/* harmony export */ });\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ \"./src/core/constants.js\");\n\nconst tabNotifications = {\n firstInfinity: {\n id: 0,\n tabsToHighLight: [{\n parent: \"infinity\",\n tab: \"upgrades\"\n }, {\n parent: \"challenges\",\n tab: \"normal\"\n }, {\n parent: \"statistics\",\n tab: \"multipliers\"\n }],\n condition: () => !PlayerProgress.realityUnlocked() && !PlayerProgress.eternityUnlocked() && !PlayerProgress.infinityUnlocked(),\n events: [GAME_EVENT.BIG_CRUNCH_BEFORE]\n },\n breakInfinity: {\n id: 1,\n tabsToHighLight: [{\n parent: \"infinity\",\n tab: \"break\"\n }],\n condition: () => !PlayerProgress.realityUnlocked() && !PlayerProgress.eternityUnlocked() && Autobuyer.bigCrunch.hasMaxedInterval\n },\n IDUnlock: {\n id: 2,\n tabsToHighLight: [{\n parent: \"dimensions\",\n tab: \"infinity\"\n }],\n condition: () => !PlayerProgress.realityUnlocked() && !PlayerProgress.eternityUnlocked() && !InfinityDimension(2).isUnlocked\n },\n ICUnlock: {\n id: 3,\n tabsToHighLight: [{\n parent: \"challenges\",\n tab: \"infinity\"\n }],\n condition: () => !PlayerProgress.realityUnlocked() && !PlayerProgress.eternityUnlocked()\n },\n replicanti: {\n id: 4,\n tabsToHighLight: [{\n parent: \"infinity\",\n tab: \"replicanti\"\n }],\n condition: () => !PlayerProgress.realityUnlocked() && !PlayerProgress.eternityUnlocked() && Currency.infinityPoints.gte(_constants__WEBPACK_IMPORTED_MODULE_0__.DC.E140),\n events: [GAME_EVENT.BIG_CRUNCH_AFTER]\n },\n firstEternity: {\n id: 5,\n tabsToHighLight: [{\n parent: \"eternity\",\n tab: \"studies\"\n }, {\n parent: \"eternity\",\n tab: \"milestones\"\n }, {\n parent: \"eternity\",\n tab: \"upgrades\"\n }, {\n parent: \"dimensions\",\n tab: \"time\"\n }],\n condition: () => !PlayerProgress.realityUnlocked() && !PlayerProgress.eternityUnlocked(),\n events: [GAME_EVENT.ETERNITY_RESET_BEFORE]\n },\n dilationAfterUnlock: {\n id: 6,\n tabsToHighLight: [{\n parent: \"eternity\",\n tab: \"dilation\"\n }],\n condition: () => !PlayerProgress.realityUnlocked()\n },\n realityUnlock: {\n id: 7,\n tabsToHighLight: [{\n parent: \"eternity\",\n tab: \"studies\"\n }],\n condition: () => !PlayerProgress.realityUnlocked() && TimeStudy.reality.canBeBought,\n events: [GAME_EVENT.ETERNITY_RESET_AFTER, GAME_EVENT.SAVE_CONVERTED_FROM_PREVIOUS_VERSION, GAME_EVENT.OFFLINE_CURRENCY_GAINED, GAME_EVENT.ACHIEVEMENT_UNLOCKED]\n },\n blackHoleUnlock: {\n id: 8,\n tabsToHighLight: [{\n parent: \"reality\",\n tab: \"hole\"\n }],\n condition: () => !BlackHoles.areUnlocked && Currency.realityMachines.gte(100),\n events: [GAME_EVENT.REALITY_RESET_AFTER]\n },\n automatorUnlock: {\n id: 9,\n tabsToHighLight: [{\n parent: \"automation\",\n tab: \"automator\"\n }],\n condition: () => Player.automatorUnlocked,\n events: [GAME_EVENT.REALITY_RESET_AFTER]\n },\n teresaUnlock: {\n id: 10,\n tabsToHighLight: [{\n parent: \"celestials\",\n tab: \"celestial-navigation\"\n }, {\n parent: \"celestials\",\n tab: \"teresa\"\n }],\n condition: () => player.celestials.teresa.pouredAmount === 0 && Teresa.isUnlocked,\n events: [GAME_EVENT.REALITY_UPGRADE_BOUGHT]\n },\n alchemyUnlock: {\n id: 11,\n tabsToHighLight: [{\n parent: \"reality\",\n tab: \"glyphs\"\n }, {\n parent: \"reality\",\n tab: \"alchemy\"\n }],\n condition: () => player.celestials.ra.pets.effarig.level >= 2,\n events: [GAME_EVENT.GAME_TICK_AFTER]\n },\n newAutobuyer: {\n id: 12,\n tabsToHighLight: [{\n parent: \"automation\",\n tab: \"autobuyers\"\n }],\n // Always externally triggered, but needs to be ignored in cel7 because they're unlocked differently\n condition: () => !Pelle.isDoomed\n },\n imaginaryMachineUnlock: {\n id: 13,\n tabsToHighLight: [{\n parent: \"reality\",\n tab: \"imag_upgrades\"\n }],\n condition: () => MachineHandler.isIMUnlocked,\n events: [GAME_EVENT.GAME_TICK_AFTER]\n },\n laitelaUnlock: {\n id: 14,\n tabsToHighLight: [{\n parent: \"celestials\",\n tab: \"laitela\"\n }],\n // Always externally triggered\n condition: () => true\n },\n pelleUnlock: {\n id: 15,\n tabsToHighLight: [{\n parent: \"celestials\",\n tab: \"pelle\"\n }],\n // Always externally triggered\n condition: () => true\n },\n newGlyphCosmetic: {\n id: 16,\n tabsToHighLight: [{\n parent: \"reality\",\n tab: \"glyphs\"\n }],\n // Always externally triggered\n condition: () => true\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS90YWItbm90aWZpY2F0aW9ucy5qcy5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBRU8sTUFBTUMsZ0JBQWdCLEdBQUc7QUFDOUJDLEVBQUFBLGFBQWEsRUFBRTtBQUNiQyxJQUFBQSxFQUFFLEVBQUUsQ0FEUztBQUViQyxJQUFBQSxlQUFlLEVBQUUsQ0FDZjtBQUNFQyxNQUFBQSxNQUFNLEVBQUUsVUFEVjtBQUVFQyxNQUFBQSxHQUFHLEVBQUU7QUFGUCxLQURlLEVBS2Y7QUFDRUQsTUFBQUEsTUFBTSxFQUFFLFlBRFY7QUFFRUMsTUFBQUEsR0FBRyxFQUFFO0FBRlAsS0FMZSxFQVNmO0FBQ0VELE1BQUFBLE1BQU0sRUFBRSxZQURWO0FBRUVDLE1BQUFBLEdBQUcsRUFBRTtBQUZQLEtBVGUsQ0FGSjtBQWdCYkMsSUFBQUEsU0FBUyxFQUFFLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDQyxlQUFmLEVBQUQsSUFDZixDQUFDRCxjQUFjLENBQUNFLGdCQUFmLEVBRGMsSUFFZixDQUFDRixjQUFjLENBQUNHLGdCQUFmLEVBbEJVO0FBbUJiQyxJQUFBQSxNQUFNLEVBQUUsQ0FBQ0MsVUFBVSxDQUFDQyxpQkFBWjtBQW5CSyxHQURlO0FBc0I5QkMsRUFBQUEsYUFBYSxFQUFFO0FBQ2JaLElBQUFBLEVBQUUsRUFBRSxDQURTO0FBRWJDLElBQUFBLGVBQWUsRUFBRSxDQUNmO0FBQ0VDLE1BQUFBLE1BQU0sRUFBRSxVQURWO0FBRUVDLE1BQUFBLEdBQUcsRUFBRTtBQUZQLEtBRGUsQ0FGSjtBQVFiQyxJQUFBQSxTQUFTLEVBQUUsTUFBTSxDQUFDQyxjQUFjLENBQUNDLGVBQWYsRUFBRCxJQUNmLENBQUNELGNBQWMsQ0FBQ0UsZ0JBQWYsRUFEYyxJQUN1Qk0sU0FBUyxDQUFDQyxTQUFWLENBQW9CQztBQVQvQyxHQXRCZTtBQWlDOUJDLEVBQUFBLFFBQVEsRUFBRTtBQUNSaEIsSUFBQUEsRUFBRSxFQUFFLENBREk7QUFFUkMsSUFBQUEs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QUFDK0MsZUFBWjtBQVRjLEdBaExNO0FBMkw5Qk8sRUFBQUEsYUFBYSxFQUFFO0FBQ2JoRSxJQUFBQSxFQUFFLEVBQUUsRUFEUztBQUViQyxJQUFBQSxlQUFlLEVBQUUsQ0FDZjtBQUNFQyxNQUFBQSxNQUFNLEVBQUUsWUFEVjtBQUVFQyxNQUFBQSxHQUFHLEVBQUU7QUFGUCxLQURlLENBRko7QUFRYjtBQUNBQyxJQUFBQSxTQUFTLEVBQUUsTUFBTTtBQVRKLEdBM0xlO0FBc005QjZELEVBQUFBLFdBQVcsRUFBRTtBQUNYakUsSUFBQUEsRUFBRSxFQUFFLEVBRE87QUFFWEMsSUFBQUEsZUFBZSxFQUFFLENBQ2Y7QUFDRUMsTUFBQUEsTUFBTSxFQUFFLFlBRFY7QUFFRUMsTUFBQUEsR0FBRyxFQUFFO0FBRlAsS0FEZSxDQUZOO0FBUVg7QUFDQUMsSUFBQUEsU0FBUyxFQUFFLE1BQU07QUFUTixHQXRNaUI7QUFpTjlCOEQsRUFBQUEsZ0JBQWdCLEVBQUU7QUFDaEJsRSxJQUFBQSxFQUFFLEVBQUUsRUFEWTtBQUVoQkMsSUFBQUEsZUFBZSxFQUFFLENBQ2Y7QUFDRUMsTUFBQUEsTUFBTSxFQUFFLFNBRFY7QUFFRUMsTUFBQUEsR0FBRyxFQUFFO0FBRlAsS0FEZSxDQUZEO0FBUWhCO0FBQ0FDLElBQUFBLFNBQVMsRUFBRSxNQUFNO0FBVEQ7QUFqTlksQ0FBekIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY29yZS9zZWNyZXQtZm9ybXVsYS90YWItbm90aWZpY2F0aW9ucy5qcz8zOTAxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERDIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IHRhYk5vdGlmaWNhdGlvbnMgPSB7XHJcbiAgZmlyc3RJbmZpbml0eToge1xyXG4gICAgaWQ6IDAsXHJcbiAgICB0YWJzVG9IaWdoTGlnaHQ6IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhcmVudDogXCJpbmZpbml0eVwiLFxyXG4gICAgICAgIHRhYjogXCJ1cGdyYWRlc1wiXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJlbnQ6IFwiY2hhbGxlbmdlc1wiLFxyXG4gICAgICAgIHRhYjogXCJub3JtYWxcIlxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGFyZW50OiBcInN0YXRpc3RpY3NcIixcclxuICAgICAgICB0YWI6IFwibXVsdGlwbGllcnNcIlxyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgY29uZGl0aW9uOiAoKSA9PiAhUGxheWVyUHJvZ3Jlc3MucmVhbGl0eVVubG9ja2VkKCkgJiZcclxuICAgICAgIVBsYXllclByb2dyZXNzLmV0ZXJuaXR5VW5sb2NrZWQoKSAmJlxyXG4gICAgICAhUGxheWVyUHJvZ3Jlc3MuaW5maW5pdHlVbmxvY2tlZCgpLFxyXG4gICAgZXZlbnRzOiBbR0FNRV9FVkVOVC5CSUdfQ1JVTkNIX0JFRk9SRV1cclxuICB9LFxyXG4gIGJyZWFrSW5maW5pdHk6IHtcclxuICAgIGlkOiAxLFxyXG4gICAgdGFic1RvSGlnaExpZ2h0OiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJlbnQ6IFwiaW5maW5pdHlcIixcclxuICAgICAgICB0YWI6IFwiYnJlYWtcIlxyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgY29uZGl0aW9uOiAoKSA9PiAhUGxheWVyUHJvZ3Jlc3MucmVhbGl0eVVubG9ja2VkKCkgJiZcclxuICAgICAgIVBsYXllclByb2dyZXNzLmV0ZXJuaXR5VW5sb2NrZWQoKSAmJiBBdXRvYnV5ZXIuYmlnQ3J1bmNoLmhhc01heGVkSW50ZXJ2YWxcclxuICB9LFxyXG4gIElEVW5sb2NrOiB7XHJcbiAgICBpZDogMixcclxuICAgIHRhYnNUb0hpZ2hMaWdodDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGFyZW50OiBcImRpbWVuc2lvbnNcIixcclxuICAgICAgICB0YWI6IFwiaW5maW5pdHlcIlxyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgY29uZGl0aW9uOiAoKSA9PiAhUGxheWVyUHJvZ3Jlc3MucmVhbGl0eVVubG9ja2VkKCkgJiZcclxuICAgICAgIVBsYXllclByb2dyZXNzLmV0ZXJuaXR5VW5sb2NrZWQoKSAmJiAhSW5maW5pdHlEaW1lbnNpb24oMikuaXNVbmxvY2tlZFxyXG4gIH0sXHJcbiAgSUNVbmxvY2s6IHtcclxuICAgIGlkOiAzLFxyXG4gICAgdGFic1RvSGlnaExpZ2h0OiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJlbnQ6IFwiY2hhbGxlbmdlc1wiLFxyXG4gICAgICAgIHRhYjogXCJpbmZpbml0eVwiXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBjb25kaXRpb246ICgpID0+ICFQbGF5ZXJQcm9ncmVzcy5yZWFsaXR5VW5sb2NrZWQoKSAmJlxyXG4gICAgICAhUGxheWVyUHJvZ3Jlc3MuZXRlcm5pdHlVbmxvY2tlZCgpXHJcbiAgfSxcclxuICByZXBsaWNhbnRpOiB7XHJcbiAgICBpZDogNCxcclxuICAgIHRhYnNUb0hpZ2hMaWdodDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGFyZW50OiBcImluZmluaXR5XCIsXHJcbiAgICAgICAgdGFiOiBcInJlcGxpY2FudGlcIlxyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgY29uZGl0aW9uOiAoKSA9PiAhUGxheWVyUHJvZ3Jlc3MucmVhbGl0eVVubG9ja2VkKCkgJiZcclxuICAgICAgIVBsYXllclByb2dyZXNzLmV0ZXJuaXR5VW5sb2NrZWQoKSAmJiBDdXJyZW5jeS5pbmZpbml0eVBvaW50cy5ndGUoREMuRTE0MCksXHJcbiAgICBldmVudHM6IFtHQU1FX0VWRU5ULkJJR19DUlVOQ0hfQUZURVJdXHJcbiAgfSxcclxuICBmaXJzdEV0ZXJuaXR5OiB7XHJcbiAgICBpZDogNSxcclxuICAgIHRhYnNUb0hpZ2hMaWdodDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGFyZW50OiBcImV0ZXJuaXR5XCIsXHJcbiAgICAgICAgdGFiOiBcInN0dWRpZXNcIlxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGFyZW50OiBcImV0ZXJuaXR5XCIsXHJcbiAgICAgICAgdGFiOiBcIm1pbGVzdG9uZXNcIlxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGFyZW50OiBcImV0ZXJuaXR5XCIsXHJcbiAgICAgICAgdGFiOiBcInVwZ3JhZGVzXCJcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhcmVudDogXCJkaW1lbnNpb25zXCIsXHJcbiAgICAgICAgdGFiOiBcInRpbWVcIlxyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgY29uZGl0aW9uOiAoKSA9PiAhUGxheWVyUHJvZ3Jlc3MucmVhbGl0eVVubG9ja2VkKCkgJiZcclxuICAgICAgIVBsYXllclByb2dyZXNzLmV0ZXJuaXR5VW5sb2NrZWQoKSxcclxuICAgIGV2ZW50czogW0dBTUVfRVZFTlQuRVRFUk5JVFlfUkVTRVRfQkVGT1JFXVxyXG4gIH0sXHJcbiAgZGlsYXRpb25BZnRlclVubG9jazoge1xyXG4gICAgaWQ6IDYsXHJcbiAgICB0YWJzVG9IaWdoTGlnaHQ6IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhcmVudDogXCJldGVybml0eVwiLFxyXG4gICAgICAgIHRhYjogXCJkaWxhdGlvblwiXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBjb25kaXRpb246ICgpID0+ICFQbGF5ZXJQcm9ncmVzcy5yZWFsaXR5VW5sb2NrZWQoKVxyXG4gIH0sXHJcbiAgcmVhbGl0eVVubG9jazoge1xyXG4gICAgaWQ6IDcsXHJcbiAgICB0YWJzVG9IaWdoTGlnaHQ6IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhcmVudDogXCJldGVybml0eVwiLFxyXG4gICAgICAgIHRhYjogXCJzdHVkaWVzXCJcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIGNvbmRpdGlvbjogKCkgPT4gIVBsYXllclByb2dyZXNzLnJlYWxpdHlVbmxvY2tlZCgpICYmIFRpbWVTdHVkeS5yZWFsaXR5LmNhbkJlQm91Z2h0LFxyXG4gICAgZXZlbnRzOiBbR0FNRV9FVkVOVC5FVEVSTklUWV9SRVNFVF9BRlRFUiwgR0FNRV9FVkVOVC5TQVZFX0NPTlZFUlRFRF9GUk9NX1BSRVZJT1VTX1ZFUlNJT04sXHJcbiAgICAgIEdBTUVfRVZFTlQuT0ZGTElORV9DVVJSRU5DWV9HQUlORUQsIEdBTUVfRVZFTlQuQUNISUVWRU1FTlRfVU5MT0NLRURdXHJcbiAgfSxcclxuICBibGFja0hvbGVVbmxvY2s6IHtcclxuICAgIGlkOiA4LFxyXG4gICAgdGFic1RvSGlnaExpZ2h0OiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJlbnQ6IFwicmVhbGl0eVwiLFxyXG4gICAgICAgIHRhYjogXCJob2xlXCJcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIGNvbmRpdGlvbjogKCkgPT4gIUJsYWNrSG9sZXMuYXJlVW5sb2NrZWQgJiYgQ3VycmVuY3kucmVhbGl0eU1hY2hpbmVzLmd0ZSgxMDApLFxyXG4gICAgZXZlbnRzOiBbR0FNRV9FVkVOVC5SRUFMSVRZX1JFU0VUX0FGVEVSXVxyXG4gIH0sXHJcbiAgYXV0b21hdG9yVW5sb2NrOiB7XHJcbiAgICBpZDogOSxcclxuICAgIHRhYnNUb0hpZ2hMaWdodDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGFyZW50OiBcImF1dG9tYXRpb25cIixcclxuICAgICAgICB0YWI6IFwiYXV0b21hdG9yXCJcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIGNvbmRpdGlvbjogKCkgPT4gUGxheWVyLmF1dG9tYXRvclVubG9ja2VkLFxyXG4gICAgZXZlbnRzOiBbR0FNRV9FVkVOVC5SRUFMSVRZX1JFU0VUX0FGVEVSXVxyXG4gIH0sXHJcbiAgdGVyZXNhVW5sb2NrOiB7XHJcbiAgICBpZDogMTAsXHJcbiAgICB0YWJzVG9IaWdoTGlnaHQ6IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhcmVudDogXCJjZWxlc3RpYWxzXCIsXHJcbiAgICAgICAgdGFiOiBcImNlbGVzdGlhbC1uYXZpZ2F0aW9uXCJcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhcmVudDogXCJjZWxlc3RpYWxzXCIsXHJcbiAgICAgICAgdGFiOiBcInRlcmVzYVwiXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBjb25kaXRpb246ICgpID0+IHBsYXllci5jZWxlc3RpYWxzLnRlcmVzYS5wb3VyZWRBbW91bnQgPT09IDAgJiYgVGVyZXNhLmlzVW5sb2NrZWQsXHJcbiAgICBldmVudHM6IFtHQU1FX0VWRU5ULlJFQUxJVFlfVVBHUkFERV9CT1VHSFRdXHJcbiAgfSxcclxuICBhbGNoZW15VW5sb2NrOiB7XHJcbiAgICBpZDogMTEsXHJcbiAgICB0YWJzVG9IaWdoTGlnaHQ6IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhcmVudDogXCJyZWFsaXR5XCIsXHJcbiAgICAgICAgdGFiOiBcImdseXBoc1wiXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJlbnQ6IFwicmVhbGl0eVwiLFxyXG4gICAgICAgIHRhYjogXCJhbGNoZW15XCJcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIGNvbmRpdGlvbjogKCkgPT4gcGxheWVyLmNlbGVzdGlhbHMucmEucGV0cy5lZmZhcmlnLmxldmVsID49IDIsXHJcbiAgICBldmVudHM6IFtHQU1FX0VWRU5ULkdBTUVfVElDS19BRlRFUl1cclxuICB9LFxyXG4gIG5ld0F1dG9idXllcjoge1xyXG4gICAgaWQ6IDEyLFxyXG4gICAgdGFic1RvSGlnaExpZ2h0OiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJlbnQ6IFwiYXV0b21hdGlvblwiLFxyXG4gICAgICAgIHRhYjogXCJhdXRvYnV5ZXJzXCJcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICAvLyBBbHdheXMgZXh0ZXJuYWxseSB0cmlnZ2VyZWQsIGJ1dCBuZWVkcyB0byBiZSBpZ25vcmVkIGluIGNlbDcgYmVjYXVzZSB0aGV5J3JlIHVubG9ja2VkIGRpZmZlcmVudGx5XHJcbiAgICBjb25kaXRpb246ICgpID0+ICFQZWxsZS5pc0Rvb21lZCxcclxuICB9LFxyXG4gIGltYWdpbmFyeU1hY2hpbmVVbmxvY2s6IHtcclxuICAgIGlkOiAxMyxcclxuICAgIHRhYnNUb0hpZ2hMaWdodDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGFyZW50OiBcInJlYWxpdHlcIixcclxuICAgICAgICB0YWI6IFwiaW1hZ191cGdyYWRlc1wiXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBjb25kaXRpb246ICgpID0+IE1hY2hpbmVIYW5kbGVyLmlzSU1VbmxvY2tlZCxcclxuICAgIGV2ZW50czogW0dBTUVfRVZFTlQuR0FNRV9USUNLX0FGVEVSXVxyXG4gIH0sXHJcbiAgbGFpdGVsYVVubG9jazoge1xyXG4gICAgaWQ6IDE0LFxyXG4gICAgdGFic1RvSGlnaExpZ2h0OiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJlbnQ6IFwiY2VsZXN0aWFsc1wiLFxyXG4gICAgICAgIHRhYjogXCJsYWl0ZWxhXCJcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICAvLyBBbHdheXMgZXh0ZXJuYWxseSB0cmlnZ2VyZWRcclxuICAgIGNvbmRpdGlvbjogKCkgPT4gdHJ1ZSxcclxuICB9LFxyXG4gIHBlbGxlVW5sb2NrOiB7XHJcbiAgICBpZDogMTUsXHJcbiAgICB0YWJzVG9IaWdoTGlnaHQ6IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhcmVudDogXCJjZWxlc3RpYWxzXCIsXHJcbiAgICAgICAgdGFiOiBcInBlbGxlXCJcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICAvLyBBbHdheXMgZXh0ZXJuYWxseSB0cmlnZ2VyZWRcclxuICAgIGNvbmRpdGlvbjogKCkgPT4gdHJ1ZSxcclxuICB9LFxyXG4gIG5ld0dseXBoQ29zbWV0aWM6IHtcclxuICAgIGlkOiAxNixcclxuICAgIHRhYnNUb0hpZ2hMaWdodDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGFyZW50OiBcInJlYWxpdHlcIixcclxuICAgICAgICB0YWI6IFwiZ2x5cGhzXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgLy8gQWx3YXlzIGV4dGVybmFsbHkgdHJpZ2dlcmVkXHJcbiAgICBjb25kaXRpb246ICgpID0+IHRydWUsXHJcbiAgfSxcclxufTtcclxuIl0sIm5hbWVzIjpbIkRDIiwidGFiTm90aWZpY2F0aW9ucyIsImZpcnN0SW5maW5pdHkiLCJpZCIsInRhYnNUb0hpZ2hMaWdodCIsInBhcmVudCIsInRhYiIsImNvbmRpdGlvbiIsIlBsYXllclByb2dyZXNzIiwicmVhbGl0eVVubG9ja2VkIiwiZXRlcm5pdHlVbmxvY2tlZCIsImluZmluaXR5VW5sb2NrZWQiLCJldmVudHMiLCJHQU1FX0VWRU5UIiwiQklHX0NSVU5DSF9CRUZPUkUiLCJicmVha0luZmluaXR5IiwiQXV0b2J1eWVyIiwiYmlnQ3J1bmNoIiwiaGFzTWF4ZWRJbnRlcnZhbCIsIklEVW5sb2NrIiwiSW5maW5pdHlEaW1lbnNpb24iLCJpc1VubG9ja2VkIiwiSUNVbmxvY2siLCJyZXBsaWNhbnRpIiwiQ3VycmVuY3kiLCJpbmZpbml0eVBvaW50cyIsImd0ZSIsIkUxNDAiLCJCSUdfQ1JVTkNIX0FGVEVSIiwiZmlyc3RFdGVybml0eSIsIkVURVJOSVRZX1JFU0VUX0JFRk9SRSIsImRpbGF0aW9uQWZ0ZXJVbmxvY2siLCJyZWFsaXR5VW5sb2NrIiwiVGltZVN0dWR5IiwicmVhbGl0eSIsImNhbkJlQm91Z2h0IiwiRVRFUk5JVFlfUkVTRVRfQUZURVIiLCJTQVZFX0NPTlZFUlRFRF9GUk9NX1BSRVZJT1VTX1ZFUlNJT04iLCJPRkZMSU5FX0NVUlJFTkNZX0dBSU5FRCIsIkFDSElFVkVNRU5UX1VOTE9DS0VEIiwiYmxhY2tIb2xlVW5sb2NrIiwiQmxhY2tIb2xlcyIsImFyZVVubG9ja2VkIiwicmVhbGl0eU1hY2hpbmVzIiwiUkVBTElUWV9SRVNFVF9BRlRFUiIsImF1dG9tYXRvclVubG9jayIsIlBsYXllciIsImF1dG9tYXRvclVubG9ja2VkIiwidGVyZXNhVW5sb2NrIiwicGxheWVyIiwiY2VsZXN0aWFscyIsInRlcmVzYSIsInBvdXJlZEFtb3VudCIsIlRlcmVzYSIsIlJFQUxJVFlfVVBHUkFERV9CT1VHSFQiLCJhbGNoZW15VW5sb2NrIiwicmEiLCJwZXRzIiwiZWZmYXJpZyIsImxldmVsIiwiR0FNRV9USUNLX0FGVEVSIiwibmV3QXV0b2J1eWVyIiwiUGVsbGUiLCJpc0Rvb21lZCIsImltYWdpbmFyeU1hY2hpbmVVbmxvY2siLCJNYWNoaW5lSGFuZGxlciIsImlzSU1VbmxvY2tlZCIsImxhaXRlbGFVbmxvY2siLCJwZWxsZVVubG9jayIsIm5ld0dseXBoQ29zbWV0aWMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/core/secret-formula/tab-notifications.js\n"); + +/***/ }), + +/***/ "./src/core/secret-formula/tabs.js": +/*!*****************************************!*\ + !*** ./src/core/secret-formula/tabs.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"tabs\": () => (/* binding */ tabs)\n/* harmony export */ });\nconst tabs = [{\n key: \"dimensions\",\n name: \"Dimensions\",\n hideAt: 2.9,\n id: 0,\n hidable: true,\n subtabs: [{\n key: \"antimatter\",\n name: \"Antimatter Dimensions\",\n symbol: \"Ω\",\n component: \"AntimatterDimensionsTab\",\n id: 0,\n hidable: true\n }, {\n key: \"infinity\",\n name: \"Infinity Dimensions\",\n hideAt: 2.7,\n symbol: \"∞\",\n component: \"InfinityDimensionsTab\",\n condition: () => PlayerProgress.realityUnlocked() || PlayerProgress.eternityUnlocked() || InfinityDimension(1).isUnlocked,\n id: 1,\n hidable: true\n }, {\n key: \"time\",\n name: \"Time Dimensions\",\n hideAt: 2.6,\n symbol: \"Δ\",\n component: \"TimeDimensionsTab\",\n condition: () => PlayerProgress.eternityUnlocked(),\n id: 2,\n hidable: true\n }]\n}, {\n key: \"options\",\n name: \"Options\",\n hideAt: 1.6,\n id: 1,\n hidable: false,\n subtabs: [{\n key: \"saving\",\n name: \"Saving\",\n symbol: \"\",\n component: \"OptionsSavingTab\",\n id: 0,\n hidable: false\n }, {\n key: \"visual\",\n name: \"Visual\",\n symbol: \"\",\n component: \"OptionsVisualTab\",\n id: 1,\n hidable: false\n }, {\n key: \"gameplay\",\n name: \"Gameplay\",\n symbol: \"\",\n component: \"OptionsGameplayTab\",\n id: 2,\n hidable: false\n }]\n}, {\n key: \"statistics\",\n name: \"Statistics\",\n hideAt: 1.7,\n id: 2,\n hidable: true,\n subtabs: [{\n key: \"statistics\",\n name: \"Statistics\",\n symbol: \"\",\n component: \"StatisticsTab\",\n id: 0,\n hidable: true\n }, {\n key: \"challenges\",\n name: \"Challenge records\",\n symbol: \"\",\n component: \"ChallengeRecordsTab\",\n condition: () => PlayerProgress.realityUnlocked() || PlayerProgress.eternityUnlocked() || PlayerProgress.challengeCompleted(),\n id: 1,\n hidable: true\n }, {\n key: \"prestige runs\",\n name: \"Past Prestige Runs\",\n symbol: \"\",\n component: \"PastPrestigeRunsTab\",\n condition: () => PlayerProgress.infinityUnlocked(),\n id: 2,\n hidable: true\n }, {\n key: \"multipliers\",\n name: \"Multiplier Breakdown\",\n symbol: \"\",\n component: \"MultiplierBreakdownTab\",\n condition: () => PlayerProgress.infinityUnlocked(),\n id: 3,\n hidable: true\n }, {\n key: \"glyph sets\",\n name: \"Glyph Set Records\",\n symbol: \"\",\n component: \"GlyphSetRecordsTab\",\n condition: () => PlayerProgress.realityUnlocked(),\n id: 4,\n hidable: true\n }, {\n key: \"speedrun milestones\",\n name: \"Speedrun Milestones\",\n symbol: \"\",\n component: \"SpeedrunMilestonesTab\",\n condition: () => player.speedrun.isActive,\n id: 5,\n hidable: true\n }, {\n key: \"speedrun records\",\n name: \"Speedrun Records\",\n symbol: \"\",\n component: \"PreviousSpeedrunTab\",\n condition: () => Object.keys(player.speedrun.previousRuns).length > 0,\n id: 6,\n hidable: true\n }]\n}, {\n key: \"achievements\",\n name: \"Achievements\",\n hideAt: 1.9,\n id: 3,\n hidable: true,\n subtabs: [{\n key: \"normal\",\n name: \"Achievements\",\n symbol: \"\",\n component: \"NormalAchievementsTab\",\n id: 0,\n hidable: true\n }, {\n key: \"secret\",\n name: \"Secret Achievements\",\n symbol: \"\",\n component: \"SecretAchievementTab\",\n id: 1,\n hidable: true\n }]\n}, {\n key: \"automation\",\n name: \"Automation\",\n id: 4,\n hideAt: 2.1,\n condition: () => player.records.totalAntimatter.gte(1e40),\n hidable: true,\n subtabs: [{\n key: \"autobuyers\",\n name: \"Autobuyers\",\n symbol: \"\",\n component: \"AutobuyersTab\",\n id: 0,\n hidable: true\n }, {\n key: \"automator\",\n name: \"Automator\",\n symbol: \"\",\n component: \"AutomatorTab\",\n condition: () => PlayerProgress.realityUnlocked(),\n id: 1,\n hidable: true\n }]\n}, {\n key: \"challenges\",\n name: \"Challenges\",\n hideAt: 2,\n condition: () => PlayerProgress.realityUnlocked() || PlayerProgress.eternityUnlocked() || PlayerProgress.infinityUnlocked(),\n id: 5,\n hidable: true,\n subtabs: [{\n key: \"normal\",\n name: \"Challenges\",\n symbol: \"Ω\",\n component: \"NormalChallengesTab\",\n id: 0,\n hidable: true\n }, {\n key: \"infinity\",\n name: \"Infinity Challenges\",\n symbol: \"∞\",\n component: \"infinity-challenges-tab\",\n condition: () => PlayerProgress.realityUnlocked() || PlayerProgress.hasBroken() || Pelle.isDoomed,\n id: 1,\n hidable: true\n }, {\n key: \"eternity\",\n name: \"Eternity Challenges\",\n symbol: \"Δ\",\n component: \"eternity-challenges-tab\",\n condition: () => PlayerProgress.realityUnlocked() || player.challenge.eternity.unlocked !== 0 || EternityChallenges.all.some(ec => ec.completions > 0),\n id: 2,\n hidable: true\n }]\n}, {\n key: \"infinity\",\n name: \"Infinity\",\n hideAt: 2.2,\n UIClass: \"o-tab-btn--infinity\",\n before: \"InfinityPointsHeader\",\n id: 6,\n condition: () => PlayerProgress.infinityUnlocked(),\n hidable: true,\n subtabs: [{\n key: \"upgrades\",\n name: \"Infinity Upgrades\",\n symbol: \"\",\n component: \"InfinityUpgradesTab\",\n condition: () => PlayerProgress.realityUnlocked() || PlayerProgress.eternityUnlocked() || PlayerProgress.infinityUnlocked(),\n id: 0,\n hidable: true\n }, {\n key: \"break\",\n name: \"Break Infinity\",\n symbol: \"∝\",\n component: \"BreakInfinityTab\",\n condition: () => PlayerProgress.realityUnlocked() || PlayerProgress.eternityUnlocked() || PlayerProgress.infinityUnlocked(),\n id: 1,\n hidable: true\n }, {\n key: \"replicanti\",\n name: \"Replicanti\",\n symbol: \"Ξ\",\n component: \"ReplicantiTab\",\n condition: () => PlayerProgress.realityUnlocked() || PlayerProgress.eternityUnlocked() || PlayerProgress.infinityUnlocked(),\n id: 2,\n hidable: true\n }]\n}, {\n key: \"eternity\",\n name: \"Eternity\",\n hideAt: 1.8,\n UIClass: \"o-tab-btn--eternity\",\n condition: () => PlayerProgress.realityUnlocked() || PlayerProgress.eternityUnlocked(),\n before: \"EternityPointsHeader\",\n id: 7,\n hidable: true,\n subtabs: [{\n key: \"studies\",\n name: \"Time Studies\",\n symbol: \"\",\n component: \"TimeStudiesTab\",\n id: 0,\n hidable: true\n }, {\n key: \"upgrades\",\n name: \"Eternity Upgrades\",\n symbol: \"\",\n component: \"EternityUpgradesTab\",\n id: 1,\n hidable: true\n }, {\n key: \"milestones\",\n name: \"Eternity Milestones\",\n symbol: \"\",\n component: \"EternityMilestonesTab\",\n id: 2,\n hidable: true\n }, {\n key: \"dilation\",\n name: \"Time Dilation\",\n symbol: \"Ψ\",\n component: \"TimeDilationTab\",\n condition: () => PlayerProgress.dilationUnlocked() || PlayerProgress.realityUnlocked(),\n id: 3,\n hidable: true\n }]\n}, {\n key: \"reality\",\n name: \"Reality\",\n hideAt: 2.3,\n UIClass: \"o-tab-btn--reality\",\n condition: () => PlayerProgress.realityUnlocked() || TimeStudy.reality.isBought,\n id: 8,\n hidable: true,\n subtabs: [{\n key: \"glyphs\",\n name: \"Glyphs\",\n symbol: \"\",\n component: \"GlyphsTab\",\n id: 0,\n hidable: true\n }, {\n key: \"upgrades\",\n name: \"Reality Upgrades\",\n symbol: \"\",\n component: \"RealityUpgradesTab\",\n id: 1,\n hidable: true\n }, {\n key: \"imag_upgrades\",\n name: \"Imaginary Upgrades\",\n symbol: \"\",\n component: \"ImaginaryUpgradesTab\",\n condition: () => MachineHandler.isIMUnlocked,\n id: 2,\n hidable: true\n }, {\n key: \"perks\",\n name: \"Perks\",\n symbol: \"\",\n component: \"PerksTab\",\n id: 3,\n hidable: true\n }, {\n key: \"hole\",\n name: \"Black Hole\",\n symbol: \"\",\n component: \"BlackHoleTab\",\n condition: () => PlayerProgress.realityUnlocked(),\n id: 4,\n hidable: true\n }, {\n key: \"alchemy\",\n name: \"Glyph Alchemy\",\n symbol: \"\",\n component: \"AlchemyTab\",\n condition: () => Ra.unlocks.unlockGlyphAlchemy.canBeApplied,\n id: 5,\n hidable: true\n }]\n}, {\n key: \"celestials\",\n name: \"Celestials\",\n hideAt: 2.4,\n UIClass: \"o-tab-btn--celestial\",\n condition: () => Teresa.isUnlocked,\n id: 9,\n hidable: true,\n subtabs: [{\n key: \"celestial-navigation\",\n name: \"Celestial Navigation\",\n symbol: \"\",\n component: \"CelestialNavigationTab\",\n id: 0,\n hidable: true\n }, {\n key: \"teresa\",\n name: \"Teresa\",\n symbol: \"Ϟ\",\n component: \"TeresaTab\",\n id: 1,\n hidable: true\n }, {\n key: \"effarig\",\n name: \"Effarig\",\n symbol: \"Ϙ\",\n component: \"EffarigTab\",\n condition: () => TeresaUnlocks.effarig.isUnlocked,\n id: 2,\n hidable: true\n }, {\n key: \"enslaved\",\n name: \"The Nameless Ones\",\n symbol: \"
\n pause 10s
\n eternity respec
\"://,\"
\":/<\\/b>/,\"\")||t.parseEndTag(\"bold\",\"