@k8slens/element-components 3.9.0 → 3.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +239 -207
- package/dist/src/plugins/anchor/anchor.d.ts +18 -0
- package/dist/src/plugins/anchor/anchor.d.ts.map +1 -1
- package/dist/src/plugins/drop-down-menu/drop-down-menu.d.ts +4 -2
- package/dist/src/plugins/drop-down-menu/drop-down-menu.d.ts.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1285,9 +1285,9 @@ __export(test_util_runnable_injectable_exports, {
|
|
|
1285
1285
|
});
|
|
1286
1286
|
var import_test_utils = require("@k8slens/test-utils");
|
|
1287
1287
|
|
|
1288
|
-
// import-glob:./**/*.global-override-for-injectable.(ts|tsx)/proof-of-uniqueness/
|
|
1288
|
+
// import-glob:./**/*.global-override-for-injectable.(ts|tsx)/proof-of-uniqueness/6045a95b-8cd0-4b74-94bc-f119f537229d
|
|
1289
1289
|
var modules = [];
|
|
1290
|
-
var
|
|
1290
|
+
var a95b_8cd0_4b74_94bc_f119f537229d_default = modules;
|
|
1291
1291
|
|
|
1292
1292
|
// src/plugins/draggable-and-droppable/make-sure-drag-and-drop-events-have-time-to-happen/make-sure-drag-and-drop-events-have-time-to-happen.default-override.ts
|
|
1293
1293
|
var make_sure_drag_and_drop_events_have_time_to_happen_default_override_exports = {};
|
|
@@ -1316,19 +1316,19 @@ var remove_css_module_clutter_default_override_default = () => {
|
|
|
1316
1316
|
removeCssModuleClutterForUnitTesting();
|
|
1317
1317
|
};
|
|
1318
1318
|
|
|
1319
|
-
// import-glob:./**/*.default-override.(ts|tsx)/proof-of-uniqueness/
|
|
1319
|
+
// import-glob:./**/*.default-override.(ts|tsx)/proof-of-uniqueness/277dee9f-1b8f-4966-b437-871acfa4cddb
|
|
1320
1320
|
var modules2 = [make_sure_drag_and_drop_events_have_time_to_happen_default_override_exports, tooltip_delay_default_override_exports, remove_css_module_clutter_default_override_exports];
|
|
1321
|
-
var
|
|
1321
|
+
var dee9f_1b8f_4966_b437_871acfa4cddb_default = modules2;
|
|
1322
1322
|
|
|
1323
1323
|
// src/test-util-runnable.injectable.ts
|
|
1324
1324
|
var testUtilRunnableInjectable = (0, import_test_utils.getTestUtilRunnableForOverrides)({
|
|
1325
|
-
globalOverrides:
|
|
1326
|
-
defaultOverrides:
|
|
1325
|
+
globalOverrides: a95b_8cd0_4b74_94bc_f119f537229d_default,
|
|
1326
|
+
defaultOverrides: dee9f_1b8f_4966_b437_871acfa4cddb_default
|
|
1327
1327
|
});
|
|
1328
1328
|
|
|
1329
|
-
// import-glob:./**/*.injectable.(ts|tsx)/proof-of-uniqueness/
|
|
1329
|
+
// import-glob:./**/*.injectable.(ts|tsx)/proof-of-uniqueness/c4df7a08-572b-485c-887a-d608b504f521
|
|
1330
1330
|
var modules3 = [is_mac_injectable_exports, on_right_trigger_injectable_exports, dragged_item_state_injectable_exports, item_being_dragged_injectable_exports, make_sure_drag_and_drop_events_have_time_to_happen_injectable_exports, focusable_html_element_ref_set_injectable_exports, focusable_item_state_injectable_exports, keyboard_navigation_state_injectable_exports, do_focus_injectable_exports, item_being_focused_injectable_exports, computed_now_injectable_exports, hovered_item_state_injectable_exports, item_being_hovered_injectable_exports, context_is_being_hovered_injectable_exports, tooltip_delay_injectable_exports, test_util_runnable_injectable_exports];
|
|
1331
|
-
var
|
|
1331
|
+
var c4df7a08_572b_485c_887a_d608b504f521_default = modules3;
|
|
1332
1332
|
|
|
1333
1333
|
// lens-stylesheet:/home/runner/work/lens-desktop-monorepo/lens-desktop-monorepo/packages/technical-features/_low-level/element-components/src/plugins/anchor/anchor.module.scss
|
|
1334
1334
|
var anchor_module_exports = {};
|
|
@@ -1507,7 +1507,7 @@ __export(offset_children_module_exports, {
|
|
|
1507
1507
|
stylesheet: () => stylesheet28
|
|
1508
1508
|
});
|
|
1509
1509
|
var import_stylesheet_contracts28 = require("@k8slens/stylesheet-contracts");
|
|
1510
|
-
var stylesheet28 = (0, import_stylesheet_contracts28.asStylesheet)({ id: "@k8slens/element-components/src/plugins/offset-children/offset-children.module.scss", css: ".offset-children-module__offset-children__top--zero___8lyGi > * {\n transform: translateY(0px);\n}\n.offset-children-module__offset-children__bottom--zero___DbI3j > * {\n transform: translateY(0px);\n}\n.offset-children-module__offset-children__left--zero___ihnSX > * {\n transform: translateX(0px);\n}\n.offset-children-module__offset-children__right--zero___Q4LXO > * {\n transform: translateX(0px);\n}\n.offset-children-module__offset-children__top--4xs___LfM0x > * {\n transform: translateY(-1px);\n}\n.offset-children-module__offset-children__bottom--4xs___Yeyw6 > * {\n transform: translateY(1px);\n}\n.offset-children-module__offset-children__left--4xs___TAaDK > * {\n transform: translateX(-1px);\n}\n.offset-children-module__offset-children__right--4xs___6iWUo > * {\n transform: translateX(1px);\n}\n.offset-children-module__offset-children__top--3xs___urkig > * {\n transform: translateY(-2px);\n}\n.offset-children-module__offset-children__bottom--3xs___yXH3z > * {\n transform: translateY(2px);\n}\n.offset-children-module__offset-children__left--3xs___gAzVA > * {\n transform: translateX(-2px);\n}\n.offset-children-module__offset-children__right--3xs___Wr48c > * {\n transform: translateX(2px);\n}\n.offset-children-module__offset-children__top--xxs___dqTTS > * {\n transform: translateY(-4px);\n}\n.offset-children-module__offset-children__bottom--xxs___Ep66R > * {\n transform: translateY(4px);\n}\n.offset-children-module__offset-children__left--xxs___9vPYd > * {\n transform: translateX(-4px);\n}\n.offset-children-module__offset-children__right--xxs___juuKp > * {\n transform: translateX(4px);\n}\n.offset-children-module__offset-children__top--xs___nw5aa > * {\n transform: translateY(-8px);\n}\n.offset-children-module__offset-children__bottom--xs___JgC6l > * {\n transform: translateY(8px);\n}\n.offset-children-module__offset-children__left--xs___cxtVx > * {\n transform: translateX(-8px);\n}\n.offset-children-module__offset-children__right--xs___2iP5g > * {\n transform: translateX(8px);\n}\n.offset-children-module__offset-children__top--s___Hm2ip > * {\n transform: translateY(-12px);\n}\n.offset-children-module__offset-children__bottom--s___Wa38N > * {\n transform: translateY(12px);\n}\n.offset-children-module__offset-children__left--s___WWBFh > * {\n transform: translateX(-12px);\n}\n.offset-children-module__offset-children__right--s___wzFV9 > * {\n transform: translateX(12px);\n}\n.offset-children-module__offset-children__top--m___ZjOCM > * {\n transform: translateY(-16px);\n}\n.offset-children-module__offset-children__bottom--m___ipDkW > * {\n transform: translateY(16px);\n}\n.offset-children-module__offset-children__left--m___Y8qDW > * {\n transform: translateX(-16px);\n}\n.offset-children-module__offset-children__right--m___4XJfv > * {\n transform: translateX(16px);\n}\n.offset-children-module__offset-children__top--l___QvTRo > * {\n transform: translateY(-20px);\n}\n.offset-children-module__offset-children__bottom--l___EGkAR > * {\n transform: translateY(20px);\n}\n.offset-children-module__offset-children__left--l___UnUHv > * {\n transform: translateX(-20px);\n}\n.offset-children-module__offset-children__right--l___jVNNX > * {\n transform: translateX(20px);\n}\n.offset-children-module__offset-children__top--xl___ENccX > * {\n transform: translateY(-24px);\n}\n.offset-children-module__offset-children__bottom--xl___bmrsa > * {\n transform: translateY(24px);\n}\n.offset-children-module__offset-children__left--xl___Kjo-c > * {\n transform: translateX(-24px);\n}\n.offset-children-module__offset-children__right--xl___DHRuy > * {\n transform: translateX(24px);\n}\n.offset-children-module__offset-children__top--xxl___onjeA > * {\n transform: translateY(-28px);\n}\n.offset-children-module__offset-children__bottom--xxl___v-1Tl > * {\n transform: translateY(28px);\n}\n.offset-children-module__offset-children__left--xxl___i-c2h > * {\n transform: translateX(-28px);\n}\n.offset-children-module__offset-children__right--xxl___qG085 > * {\n transform: translateX(28px);\n}\n.offset-children-module__offset-children__top--3xl___L9msQ > * {\n transform: translateY(-32px);\n}\n.offset-children-module__offset-children__bottom--3xl___wMMbm > * {\n transform: translateY(32px);\n}\n.offset-children-module__offset-children__left--3xl___bSSOr > * {\n transform: translateX(-32px);\n}\n.offset-children-module__offset-children__right--3xl___e9W7v > * {\n transform: translateX(32px);\n}\n.offset-children-module__offset-children__top--4xl___VAk-x > * {\n transform: translateY(-36px);\n}\n.offset-children-module__offset-children__bottom--4xl___Dyy5X > * {\n transform: translateY(36px);\n}\n.offset-children-module__offset-children__left--4xl___X0x5a > * {\n transform: translateX(-36px);\n}\n.offset-children-module__offset-children__right--4xl___Qul-j > * {\n transform: translateX(36px);\n}\n.offset-children-module__offset-children__top--5xl___eW5Qk > * {\n transform: translateY(-40px);\n}\n.offset-children-module__offset-children__bottom--5xl___pia-Z > * {\n transform: translateY(40px);\n}\n.offset-children-module__offset-children__left--5xl___iAAho > * {\n transform: translateX(-40px);\n}\n.offset-children-module__offset-children__right--5xl___xjuCL > * {\n transform: translateX(40px);\n}\n.offset-children-module__offset-children__top--6xl___C0Wvk > * {\n transform: translateY(-44px);\n}\n.offset-children-module__offset-children__bottom--6xl___84zp- > * {\n transform: translateY(44px);\n}\n.offset-children-module__offset-children__left--6xl___iueBF > * {\n transform: translateX(-44px);\n}\n.offset-children-module__offset-children__right--6xl___UNQ-B > * {\n transform: translateX(44px);\n}\n.offset-children-module__offset-children__top--7xl___hPclc > * {\n transform: translateY(-48px);\n}\n.offset-children-module__offset-children__bottom--7xl___5RZwQ > * {\n transform: translateY(48px);\n}\n.offset-children-module__offset-children__left--7xl___HIp6B > * {\n transform: translateX(-48px);\n}\n.offset-children-module__offset-children__right--7xl___FiOEI > * {\n transform: translateX(48px);\n}\n.offset-children-module__offset-children__top--8xl___gt4fu > * {\n transform: translateY(-52px);\n}\n.offset-children-module__offset-children__bottom--8xl___fPEOD > * {\n transform: translateY(52px);\n}\n.offset-children-module__offset-children__left--8xl___-tTfP > * {\n transform: translateX(-52px);\n}\n.offset-children-module__offset-children__right--8xl___dUXRh > * {\n transform: translateX(52px);\n}\n.offset-children-module__offset-children__top--9xl___kRNA6 > * {\n transform: translateY(-56px);\n}\n.offset-children-module__offset-children__bottom--9xl___jbHaB > * {\n transform: translateY(56px);\n}\n.offset-children-module__offset-children__left--9xl___SFgPl > * {\n transform: translateX(-56px);\n}\n.offset-children-module__offset-children__right--9xl___TJieH > * {\n transform: translateX(56px);\n}\n.offset-children-module__offset-children__top--10xl___-utOn > * {\n transform: translateY(-60px);\n}\n.offset-children-module__offset-children__bottom--10xl___a59wT > * {\n transform: translateY(60px);\n}\n.offset-children-module__offset-children__left--10xl___Kceze > * {\n transform: translateX(-60px);\n}\n.offset-children-module__offset-children__right--10xl___NomYu > * {\n transform: translateX(60px);\n}\n.offset-children-module__offset-children__top--11xl___SYtgn > * {\n transform: translateY(-64px);\n}\n.offset-children-module__offset-children__bottom--11xl___P62u4 > * {\n transform: translateY(64px);\n}\n.offset-children-module__offset-children__left--11xl___g0ooe > * {\n transform: translateX(-64px);\n}\n.offset-children-module__offset-children__right--11xl___EOWL- > * {\n transform: translateX(64px);\n}" });
|
|
1510
|
+
var stylesheet28 = (0, import_stylesheet_contracts28.asStylesheet)({ id: "@k8slens/element-components/src/plugins/offset-children/offset-children.module.scss", css: ".offset-children-module__offset-children__top--zero___8lyGi > * {\n transform: translateY(-0px);\n}\n.offset-children-module__offset-children__bottom--zero___DbI3j > * {\n transform: translateY(0px);\n}\n.offset-children-module__offset-children__left--zero___ihnSX > * {\n transform: translateX(-0px);\n}\n.offset-children-module__offset-children__right--zero___Q4LXO > * {\n transform: translateX(0px);\n}\n.offset-children-module__offset-children__top--4xs___LfM0x > * {\n transform: translateY(-1px);\n}\n.offset-children-module__offset-children__bottom--4xs___Yeyw6 > * {\n transform: translateY(1px);\n}\n.offset-children-module__offset-children__left--4xs___TAaDK > * {\n transform: translateX(-1px);\n}\n.offset-children-module__offset-children__right--4xs___6iWUo > * {\n transform: translateX(1px);\n}\n.offset-children-module__offset-children__top--3xs___urkig > * {\n transform: translateY(-2px);\n}\n.offset-children-module__offset-children__bottom--3xs___yXH3z > * {\n transform: translateY(2px);\n}\n.offset-children-module__offset-children__left--3xs___gAzVA > * {\n transform: translateX(-2px);\n}\n.offset-children-module__offset-children__right--3xs___Wr48c > * {\n transform: translateX(2px);\n}\n.offset-children-module__offset-children__top--xxs___dqTTS > * {\n transform: translateY(-4px);\n}\n.offset-children-module__offset-children__bottom--xxs___Ep66R > * {\n transform: translateY(4px);\n}\n.offset-children-module__offset-children__left--xxs___9vPYd > * {\n transform: translateX(-4px);\n}\n.offset-children-module__offset-children__right--xxs___juuKp > * {\n transform: translateX(4px);\n}\n.offset-children-module__offset-children__top--xs___nw5aa > * {\n transform: translateY(-8px);\n}\n.offset-children-module__offset-children__bottom--xs___JgC6l > * {\n transform: translateY(8px);\n}\n.offset-children-module__offset-children__left--xs___cxtVx > * {\n transform: translateX(-8px);\n}\n.offset-children-module__offset-children__right--xs___2iP5g > * {\n transform: translateX(8px);\n}\n.offset-children-module__offset-children__top--s___Hm2ip > * {\n transform: translateY(-12px);\n}\n.offset-children-module__offset-children__bottom--s___Wa38N > * {\n transform: translateY(12px);\n}\n.offset-children-module__offset-children__left--s___WWBFh > * {\n transform: translateX(-12px);\n}\n.offset-children-module__offset-children__right--s___wzFV9 > * {\n transform: translateX(12px);\n}\n.offset-children-module__offset-children__top--m___ZjOCM > * {\n transform: translateY(-16px);\n}\n.offset-children-module__offset-children__bottom--m___ipDkW > * {\n transform: translateY(16px);\n}\n.offset-children-module__offset-children__left--m___Y8qDW > * {\n transform: translateX(-16px);\n}\n.offset-children-module__offset-children__right--m___4XJfv > * {\n transform: translateX(16px);\n}\n.offset-children-module__offset-children__top--l___QvTRo > * {\n transform: translateY(-20px);\n}\n.offset-children-module__offset-children__bottom--l___EGkAR > * {\n transform: translateY(20px);\n}\n.offset-children-module__offset-children__left--l___UnUHv > * {\n transform: translateX(-20px);\n}\n.offset-children-module__offset-children__right--l___jVNNX > * {\n transform: translateX(20px);\n}\n.offset-children-module__offset-children__top--xl___ENccX > * {\n transform: translateY(-24px);\n}\n.offset-children-module__offset-children__bottom--xl___bmrsa > * {\n transform: translateY(24px);\n}\n.offset-children-module__offset-children__left--xl___Kjo-c > * {\n transform: translateX(-24px);\n}\n.offset-children-module__offset-children__right--xl___DHRuy > * {\n transform: translateX(24px);\n}\n.offset-children-module__offset-children__top--xxl___onjeA > * {\n transform: translateY(-28px);\n}\n.offset-children-module__offset-children__bottom--xxl___v-1Tl > * {\n transform: translateY(28px);\n}\n.offset-children-module__offset-children__left--xxl___i-c2h > * {\n transform: translateX(-28px);\n}\n.offset-children-module__offset-children__right--xxl___qG085 > * {\n transform: translateX(28px);\n}\n.offset-children-module__offset-children__top--3xl___L9msQ > * {\n transform: translateY(-32px);\n}\n.offset-children-module__offset-children__bottom--3xl___wMMbm > * {\n transform: translateY(32px);\n}\n.offset-children-module__offset-children__left--3xl___bSSOr > * {\n transform: translateX(-32px);\n}\n.offset-children-module__offset-children__right--3xl___e9W7v > * {\n transform: translateX(32px);\n}\n.offset-children-module__offset-children__top--4xl___VAk-x > * {\n transform: translateY(-36px);\n}\n.offset-children-module__offset-children__bottom--4xl___Dyy5X > * {\n transform: translateY(36px);\n}\n.offset-children-module__offset-children__left--4xl___X0x5a > * {\n transform: translateX(-36px);\n}\n.offset-children-module__offset-children__right--4xl___Qul-j > * {\n transform: translateX(36px);\n}\n.offset-children-module__offset-children__top--5xl___eW5Qk > * {\n transform: translateY(-40px);\n}\n.offset-children-module__offset-children__bottom--5xl___pia-Z > * {\n transform: translateY(40px);\n}\n.offset-children-module__offset-children__left--5xl___iAAho > * {\n transform: translateX(-40px);\n}\n.offset-children-module__offset-children__right--5xl___xjuCL > * {\n transform: translateX(40px);\n}\n.offset-children-module__offset-children__top--6xl___C0Wvk > * {\n transform: translateY(-44px);\n}\n.offset-children-module__offset-children__bottom--6xl___84zp- > * {\n transform: translateY(44px);\n}\n.offset-children-module__offset-children__left--6xl___iueBF > * {\n transform: translateX(-44px);\n}\n.offset-children-module__offset-children__right--6xl___UNQ-B > * {\n transform: translateX(44px);\n}\n.offset-children-module__offset-children__top--7xl___hPclc > * {\n transform: translateY(-48px);\n}\n.offset-children-module__offset-children__bottom--7xl___5RZwQ > * {\n transform: translateY(48px);\n}\n.offset-children-module__offset-children__left--7xl___HIp6B > * {\n transform: translateX(-48px);\n}\n.offset-children-module__offset-children__right--7xl___FiOEI > * {\n transform: translateX(48px);\n}\n.offset-children-module__offset-children__top--8xl___gt4fu > * {\n transform: translateY(-52px);\n}\n.offset-children-module__offset-children__bottom--8xl___fPEOD > * {\n transform: translateY(52px);\n}\n.offset-children-module__offset-children__left--8xl___-tTfP > * {\n transform: translateX(-52px);\n}\n.offset-children-module__offset-children__right--8xl___dUXRh > * {\n transform: translateX(52px);\n}\n.offset-children-module__offset-children__top--9xl___kRNA6 > * {\n transform: translateY(-56px);\n}\n.offset-children-module__offset-children__bottom--9xl___jbHaB > * {\n transform: translateY(56px);\n}\n.offset-children-module__offset-children__left--9xl___SFgPl > * {\n transform: translateX(-56px);\n}\n.offset-children-module__offset-children__right--9xl___TJieH > * {\n transform: translateX(56px);\n}\n.offset-children-module__offset-children__top--10xl___-utOn > * {\n transform: translateY(-60px);\n}\n.offset-children-module__offset-children__bottom--10xl___a59wT > * {\n transform: translateY(60px);\n}\n.offset-children-module__offset-children__left--10xl___Kceze > * {\n transform: translateX(-60px);\n}\n.offset-children-module__offset-children__right--10xl___NomYu > * {\n transform: translateX(60px);\n}\n.offset-children-module__offset-children__top--11xl___SYtgn > * {\n transform: translateY(-64px);\n}\n.offset-children-module__offset-children__bottom--11xl___P62u4 > * {\n transform: translateY(64px);\n}\n.offset-children-module__offset-children__left--11xl___g0ooe > * {\n transform: translateX(-64px);\n}\n.offset-children-module__offset-children__right--11xl___EOWL- > * {\n transform: translateX(64px);\n}" });
|
|
1511
1511
|
var offset_children_module_default = { "offset-children__top--zero": "offset-children-module__offset-children__top--zero___8lyGi", "offset-children__bottom--zero": "offset-children-module__offset-children__bottom--zero___DbI3j", "offset-children__left--zero": "offset-children-module__offset-children__left--zero___ihnSX", "offset-children__right--zero": "offset-children-module__offset-children__right--zero___Q4LXO", "offset-children__top--4xs": "offset-children-module__offset-children__top--4xs___LfM0x", "offset-children__bottom--4xs": "offset-children-module__offset-children__bottom--4xs___Yeyw6", "offset-children__left--4xs": "offset-children-module__offset-children__left--4xs___TAaDK", "offset-children__right--4xs": "offset-children-module__offset-children__right--4xs___6iWUo", "offset-children__top--3xs": "offset-children-module__offset-children__top--3xs___urkig", "offset-children__bottom--3xs": "offset-children-module__offset-children__bottom--3xs___yXH3z", "offset-children__left--3xs": "offset-children-module__offset-children__left--3xs___gAzVA", "offset-children__right--3xs": "offset-children-module__offset-children__right--3xs___Wr48c", "offset-children__top--xxs": "offset-children-module__offset-children__top--xxs___dqTTS", "offset-children__bottom--xxs": "offset-children-module__offset-children__bottom--xxs___Ep66R", "offset-children__left--xxs": "offset-children-module__offset-children__left--xxs___9vPYd", "offset-children__right--xxs": "offset-children-module__offset-children__right--xxs___juuKp", "offset-children__top--xs": "offset-children-module__offset-children__top--xs___nw5aa", "offset-children__bottom--xs": "offset-children-module__offset-children__bottom--xs___JgC6l", "offset-children__left--xs": "offset-children-module__offset-children__left--xs___cxtVx", "offset-children__right--xs": "offset-children-module__offset-children__right--xs___2iP5g", "offset-children__top--s": "offset-children-module__offset-children__top--s___Hm2ip", "offset-children__bottom--s": "offset-children-module__offset-children__bottom--s___Wa38N", "offset-children__left--s": "offset-children-module__offset-children__left--s___WWBFh", "offset-children__right--s": "offset-children-module__offset-children__right--s___wzFV9", "offset-children__top--m": "offset-children-module__offset-children__top--m___ZjOCM", "offset-children__bottom--m": "offset-children-module__offset-children__bottom--m___ipDkW", "offset-children__left--m": "offset-children-module__offset-children__left--m___Y8qDW", "offset-children__right--m": "offset-children-module__offset-children__right--m___4XJfv", "offset-children__top--l": "offset-children-module__offset-children__top--l___QvTRo", "offset-children__bottom--l": "offset-children-module__offset-children__bottom--l___EGkAR", "offset-children__left--l": "offset-children-module__offset-children__left--l___UnUHv", "offset-children__right--l": "offset-children-module__offset-children__right--l___jVNNX", "offset-children__top--xl": "offset-children-module__offset-children__top--xl___ENccX", "offset-children__bottom--xl": "offset-children-module__offset-children__bottom--xl___bmrsa", "offset-children__left--xl": "offset-children-module__offset-children__left--xl___Kjo-c", "offset-children__right--xl": "offset-children-module__offset-children__right--xl___DHRuy", "offset-children__top--xxl": "offset-children-module__offset-children__top--xxl___onjeA", "offset-children__bottom--xxl": "offset-children-module__offset-children__bottom--xxl___v-1Tl", "offset-children__left--xxl": "offset-children-module__offset-children__left--xxl___i-c2h", "offset-children__right--xxl": "offset-children-module__offset-children__right--xxl___qG085", "offset-children__top--3xl": "offset-children-module__offset-children__top--3xl___L9msQ", "offset-children__bottom--3xl": "offset-children-module__offset-children__bottom--3xl___wMMbm", "offset-children__left--3xl": "offset-children-module__offset-children__left--3xl___bSSOr", "offset-children__right--3xl": "offset-children-module__offset-children__right--3xl___e9W7v", "offset-children__top--4xl": "offset-children-module__offset-children__top--4xl___VAk-x", "offset-children__bottom--4xl": "offset-children-module__offset-children__bottom--4xl___Dyy5X", "offset-children__left--4xl": "offset-children-module__offset-children__left--4xl___X0x5a", "offset-children__right--4xl": "offset-children-module__offset-children__right--4xl___Qul-j", "offset-children__top--5xl": "offset-children-module__offset-children__top--5xl___eW5Qk", "offset-children__bottom--5xl": "offset-children-module__offset-children__bottom--5xl___pia-Z", "offset-children__left--5xl": "offset-children-module__offset-children__left--5xl___iAAho", "offset-children__right--5xl": "offset-children-module__offset-children__right--5xl___xjuCL", "offset-children__top--6xl": "offset-children-module__offset-children__top--6xl___C0Wvk", "offset-children__bottom--6xl": "offset-children-module__offset-children__bottom--6xl___84zp-", "offset-children__left--6xl": "offset-children-module__offset-children__left--6xl___iueBF", "offset-children__right--6xl": "offset-children-module__offset-children__right--6xl___UNQ-B", "offset-children__top--7xl": "offset-children-module__offset-children__top--7xl___hPclc", "offset-children__bottom--7xl": "offset-children-module__offset-children__bottom--7xl___5RZwQ", "offset-children__left--7xl": "offset-children-module__offset-children__left--7xl___HIp6B", "offset-children__right--7xl": "offset-children-module__offset-children__right--7xl___FiOEI", "offset-children__top--8xl": "offset-children-module__offset-children__top--8xl___gt4fu", "offset-children__bottom--8xl": "offset-children-module__offset-children__bottom--8xl___fPEOD", "offset-children__left--8xl": "offset-children-module__offset-children__left--8xl___-tTfP", "offset-children__right--8xl": "offset-children-module__offset-children__right--8xl___dUXRh", "offset-children__top--9xl": "offset-children-module__offset-children__top--9xl___kRNA6", "offset-children__bottom--9xl": "offset-children-module__offset-children__bottom--9xl___jbHaB", "offset-children__left--9xl": "offset-children-module__offset-children__left--9xl___SFgPl", "offset-children__right--9xl": "offset-children-module__offset-children__right--9xl___TJieH", "offset-children__top--10xl": "offset-children-module__offset-children__top--10xl___-utOn", "offset-children__bottom--10xl": "offset-children-module__offset-children__bottom--10xl___a59wT", "offset-children__left--10xl": "offset-children-module__offset-children__left--10xl___Kceze", "offset-children__right--10xl": "offset-children-module__offset-children__right--10xl___NomYu", "offset-children__top--11xl": "offset-children-module__offset-children__top--11xl___SYtgn", "offset-children__bottom--11xl": "offset-children-module__offset-children__bottom--11xl___P62u4", "offset-children__left--11xl": "offset-children-module__offset-children__left--11xl___g0ooe", "offset-children__right--11xl": "offset-children-module__offset-children__right--11xl___EOWL-" };
|
|
1512
1512
|
|
|
1513
1513
|
// lens-stylesheet:/home/runner/work/lens-desktop-monorepo/lens-desktop-monorepo/packages/technical-features/_low-level/element-components/src/plugins/offset/offset.module.scss
|
|
@@ -1517,7 +1517,7 @@ __export(offset_module_exports, {
|
|
|
1517
1517
|
stylesheet: () => stylesheet29
|
|
1518
1518
|
});
|
|
1519
1519
|
var import_stylesheet_contracts29 = require("@k8slens/stylesheet-contracts");
|
|
1520
|
-
var stylesheet29 = (0, import_stylesheet_contracts29.asStylesheet)({ id: "@k8slens/element-components/src/plugins/offset/offset.module.scss", css: ".offset-module__offset__top--zero___aprOr {\n transform: translateY(0px);\n}\n.offset-module__offset__bottom--zero___bFNy4 {\n transform: translateY(0px);\n}\n.offset-module__offset__left--zero___5KdMx {\n transform: translateX(0px);\n}\n.offset-module__offset__right--zero___Drj0u {\n transform: translateX(0px);\n}\n.offset-module__offset__top--4xs___Fa8ze {\n transform: translateY(-1px);\n}\n.offset-module__offset__bottom--4xs___Jc7Zw {\n transform: translateY(1px);\n}\n.offset-module__offset__left--4xs___t7jGz {\n transform: translateX(-1px);\n}\n.offset-module__offset__right--4xs___2mcLZ {\n transform: translateX(1px);\n}\n.offset-module__offset__top--3xs___hHxAK {\n transform: translateY(-2px);\n}\n.offset-module__offset__bottom--3xs___qP3Lv {\n transform: translateY(2px);\n}\n.offset-module__offset__left--3xs___NmD7i {\n transform: translateX(-2px);\n}\n.offset-module__offset__right--3xs___9Ylue {\n transform: translateX(2px);\n}\n.offset-module__offset__top--xxs___ZAKxo {\n transform: translateY(-4px);\n}\n.offset-module__offset__bottom--xxs___k9F4x {\n transform: translateY(4px);\n}\n.offset-module__offset__left--xxs___EEf4D {\n transform: translateX(-4px);\n}\n.offset-module__offset__right--xxs___-J75K {\n transform: translateX(4px);\n}\n.offset-module__offset__top--xs___irpna {\n transform: translateY(-8px);\n}\n.offset-module__offset__bottom--xs___3GXoH {\n transform: translateY(8px);\n}\n.offset-module__offset__left--xs___7WYJI {\n transform: translateX(-8px);\n}\n.offset-module__offset__right--xs___qY-lO {\n transform: translateX(8px);\n}\n.offset-module__offset__top--s___NdRKq {\n transform: translateY(-12px);\n}\n.offset-module__offset__bottom--s___YKf9e {\n transform: translateY(12px);\n}\n.offset-module__offset__left--s___mixpA {\n transform: translateX(-12px);\n}\n.offset-module__offset__right--s___m6jf5 {\n transform: translateX(12px);\n}\n.offset-module__offset__top--m___EXkqi {\n transform: translateY(-16px);\n}\n.offset-module__offset__bottom--m___OvlYr {\n transform: translateY(16px);\n}\n.offset-module__offset__left--m___XS-PG {\n transform: translateX(-16px);\n}\n.offset-module__offset__right--m___o0zZ- {\n transform: translateX(16px);\n}\n.offset-module__offset__top--l___0bGaP {\n transform: translateY(-20px);\n}\n.offset-module__offset__bottom--l___S1-LW {\n transform: translateY(20px);\n}\n.offset-module__offset__left--l___hS1b3 {\n transform: translateX(-20px);\n}\n.offset-module__offset__right--l___vQ4Yz {\n transform: translateX(20px);\n}\n.offset-module__offset__top--xl___6MfKV {\n transform: translateY(-24px);\n}\n.offset-module__offset__bottom--xl___dgbWW {\n transform: translateY(24px);\n}\n.offset-module__offset__left--xl___0aWB5 {\n transform: translateX(-24px);\n}\n.offset-module__offset__right--xl___yPz8O {\n transform: translateX(24px);\n}\n.offset-module__offset__top--xxl___ivJRd {\n transform: translateY(-28px);\n}\n.offset-module__offset__bottom--xxl___ZtE6Z {\n transform: translateY(28px);\n}\n.offset-module__offset__left--xxl___4lK-E {\n transform: translateX(-28px);\n}\n.offset-module__offset__right--xxl___EM8rB {\n transform: translateX(28px);\n}\n.offset-module__offset__top--3xl___A9Bkn {\n transform: translateY(-32px);\n}\n.offset-module__offset__bottom--3xl___zC8-a {\n transform: translateY(32px);\n}\n.offset-module__offset__left--3xl___WrL-T {\n transform: translateX(-32px);\n}\n.offset-module__offset__right--3xl___neWap {\n transform: translateX(32px);\n}\n.offset-module__offset__top--4xl___BWQ9i {\n transform: translateY(-36px);\n}\n.offset-module__offset__bottom--4xl___8X4kE {\n transform: translateY(36px);\n}\n.offset-module__offset__left--4xl___Hc40T {\n transform: translateX(-36px);\n}\n.offset-module__offset__right--4xl___sRjGQ {\n transform: translateX(36px);\n}\n.offset-module__offset__top--5xl___6uRXY {\n transform: translateY(-40px);\n}\n.offset-module__offset__bottom--5xl___nWc6n {\n transform: translateY(40px);\n}\n.offset-module__offset__left--5xl___VkWzJ {\n transform: translateX(-40px);\n}\n.offset-module__offset__right--5xl___cngKE {\n transform: translateX(40px);\n}\n.offset-module__offset__top--6xl___tr7hH {\n transform: translateY(-44px);\n}\n.offset-module__offset__bottom--6xl___CYU1M {\n transform: translateY(44px);\n}\n.offset-module__offset__left--6xl___0IuMb {\n transform: translateX(-44px);\n}\n.offset-module__offset__right--6xl___-1swo {\n transform: translateX(44px);\n}\n.offset-module__offset__top--7xl___N7-Xd {\n transform: translateY(-48px);\n}\n.offset-module__offset__bottom--7xl___-pAhy {\n transform: translateY(48px);\n}\n.offset-module__offset__left--7xl___mxVrk {\n transform: translateX(-48px);\n}\n.offset-module__offset__right--7xl___nzulP {\n transform: translateX(48px);\n}\n.offset-module__offset__top--8xl___eM-7W {\n transform: translateY(-52px);\n}\n.offset-module__offset__bottom--8xl___enpEm {\n transform: translateY(52px);\n}\n.offset-module__offset__left--8xl___jiFYn {\n transform: translateX(-52px);\n}\n.offset-module__offset__right--8xl___FNqNs {\n transform: translateX(52px);\n}\n.offset-module__offset__top--9xl___-Cmh9 {\n transform: translateY(-56px);\n}\n.offset-module__offset__bottom--9xl___twE3t {\n transform: translateY(56px);\n}\n.offset-module__offset__left--9xl___75mub {\n transform: translateX(-56px);\n}\n.offset-module__offset__right--9xl___kCSsC {\n transform: translateX(56px);\n}\n.offset-module__offset__top--10xl___jlbhZ {\n transform: translateY(-60px);\n}\n.offset-module__offset__bottom--10xl___reyTq {\n transform: translateY(60px);\n}\n.offset-module__offset__left--10xl___9p3cn {\n transform: translateX(-60px);\n}\n.offset-module__offset__right--10xl___t-vo7 {\n transform: translateX(60px);\n}\n.offset-module__offset__top--11xl___0nrZa {\n transform: translateY(-64px);\n}\n.offset-module__offset__bottom--11xl___wcfWg {\n transform: translateY(64px);\n}\n.offset-module__offset__left--11xl___sItg5 {\n transform: translateX(-64px);\n}\n.offset-module__offset__right--11xl___NUp-n {\n transform: translateX(64px);\n}" });
|
|
1520
|
+
var stylesheet29 = (0, import_stylesheet_contracts29.asStylesheet)({ id: "@k8slens/element-components/src/plugins/offset/offset.module.scss", css: ".offset-module__offset__top--zero___aprOr {\n transform: translateY(-0px);\n}\n.offset-module__offset__bottom--zero___bFNy4 {\n transform: translateY(0px);\n}\n.offset-module__offset__left--zero___5KdMx {\n transform: translateX(-0px);\n}\n.offset-module__offset__right--zero___Drj0u {\n transform: translateX(0px);\n}\n.offset-module__offset__top--4xs___Fa8ze {\n transform: translateY(-1px);\n}\n.offset-module__offset__bottom--4xs___Jc7Zw {\n transform: translateY(1px);\n}\n.offset-module__offset__left--4xs___t7jGz {\n transform: translateX(-1px);\n}\n.offset-module__offset__right--4xs___2mcLZ {\n transform: translateX(1px);\n}\n.offset-module__offset__top--3xs___hHxAK {\n transform: translateY(-2px);\n}\n.offset-module__offset__bottom--3xs___qP3Lv {\n transform: translateY(2px);\n}\n.offset-module__offset__left--3xs___NmD7i {\n transform: translateX(-2px);\n}\n.offset-module__offset__right--3xs___9Ylue {\n transform: translateX(2px);\n}\n.offset-module__offset__top--xxs___ZAKxo {\n transform: translateY(-4px);\n}\n.offset-module__offset__bottom--xxs___k9F4x {\n transform: translateY(4px);\n}\n.offset-module__offset__left--xxs___EEf4D {\n transform: translateX(-4px);\n}\n.offset-module__offset__right--xxs___-J75K {\n transform: translateX(4px);\n}\n.offset-module__offset__top--xs___irpna {\n transform: translateY(-8px);\n}\n.offset-module__offset__bottom--xs___3GXoH {\n transform: translateY(8px);\n}\n.offset-module__offset__left--xs___7WYJI {\n transform: translateX(-8px);\n}\n.offset-module__offset__right--xs___qY-lO {\n transform: translateX(8px);\n}\n.offset-module__offset__top--s___NdRKq {\n transform: translateY(-12px);\n}\n.offset-module__offset__bottom--s___YKf9e {\n transform: translateY(12px);\n}\n.offset-module__offset__left--s___mixpA {\n transform: translateX(-12px);\n}\n.offset-module__offset__right--s___m6jf5 {\n transform: translateX(12px);\n}\n.offset-module__offset__top--m___EXkqi {\n transform: translateY(-16px);\n}\n.offset-module__offset__bottom--m___OvlYr {\n transform: translateY(16px);\n}\n.offset-module__offset__left--m___XS-PG {\n transform: translateX(-16px);\n}\n.offset-module__offset__right--m___o0zZ- {\n transform: translateX(16px);\n}\n.offset-module__offset__top--l___0bGaP {\n transform: translateY(-20px);\n}\n.offset-module__offset__bottom--l___S1-LW {\n transform: translateY(20px);\n}\n.offset-module__offset__left--l___hS1b3 {\n transform: translateX(-20px);\n}\n.offset-module__offset__right--l___vQ4Yz {\n transform: translateX(20px);\n}\n.offset-module__offset__top--xl___6MfKV {\n transform: translateY(-24px);\n}\n.offset-module__offset__bottom--xl___dgbWW {\n transform: translateY(24px);\n}\n.offset-module__offset__left--xl___0aWB5 {\n transform: translateX(-24px);\n}\n.offset-module__offset__right--xl___yPz8O {\n transform: translateX(24px);\n}\n.offset-module__offset__top--xxl___ivJRd {\n transform: translateY(-28px);\n}\n.offset-module__offset__bottom--xxl___ZtE6Z {\n transform: translateY(28px);\n}\n.offset-module__offset__left--xxl___4lK-E {\n transform: translateX(-28px);\n}\n.offset-module__offset__right--xxl___EM8rB {\n transform: translateX(28px);\n}\n.offset-module__offset__top--3xl___A9Bkn {\n transform: translateY(-32px);\n}\n.offset-module__offset__bottom--3xl___zC8-a {\n transform: translateY(32px);\n}\n.offset-module__offset__left--3xl___WrL-T {\n transform: translateX(-32px);\n}\n.offset-module__offset__right--3xl___neWap {\n transform: translateX(32px);\n}\n.offset-module__offset__top--4xl___BWQ9i {\n transform: translateY(-36px);\n}\n.offset-module__offset__bottom--4xl___8X4kE {\n transform: translateY(36px);\n}\n.offset-module__offset__left--4xl___Hc40T {\n transform: translateX(-36px);\n}\n.offset-module__offset__right--4xl___sRjGQ {\n transform: translateX(36px);\n}\n.offset-module__offset__top--5xl___6uRXY {\n transform: translateY(-40px);\n}\n.offset-module__offset__bottom--5xl___nWc6n {\n transform: translateY(40px);\n}\n.offset-module__offset__left--5xl___VkWzJ {\n transform: translateX(-40px);\n}\n.offset-module__offset__right--5xl___cngKE {\n transform: translateX(40px);\n}\n.offset-module__offset__top--6xl___tr7hH {\n transform: translateY(-44px);\n}\n.offset-module__offset__bottom--6xl___CYU1M {\n transform: translateY(44px);\n}\n.offset-module__offset__left--6xl___0IuMb {\n transform: translateX(-44px);\n}\n.offset-module__offset__right--6xl___-1swo {\n transform: translateX(44px);\n}\n.offset-module__offset__top--7xl___N7-Xd {\n transform: translateY(-48px);\n}\n.offset-module__offset__bottom--7xl___-pAhy {\n transform: translateY(48px);\n}\n.offset-module__offset__left--7xl___mxVrk {\n transform: translateX(-48px);\n}\n.offset-module__offset__right--7xl___nzulP {\n transform: translateX(48px);\n}\n.offset-module__offset__top--8xl___eM-7W {\n transform: translateY(-52px);\n}\n.offset-module__offset__bottom--8xl___enpEm {\n transform: translateY(52px);\n}\n.offset-module__offset__left--8xl___jiFYn {\n transform: translateX(-52px);\n}\n.offset-module__offset__right--8xl___FNqNs {\n transform: translateX(52px);\n}\n.offset-module__offset__top--9xl___-Cmh9 {\n transform: translateY(-56px);\n}\n.offset-module__offset__bottom--9xl___twE3t {\n transform: translateY(56px);\n}\n.offset-module__offset__left--9xl___75mub {\n transform: translateX(-56px);\n}\n.offset-module__offset__right--9xl___kCSsC {\n transform: translateX(56px);\n}\n.offset-module__offset__top--10xl___jlbhZ {\n transform: translateY(-60px);\n}\n.offset-module__offset__bottom--10xl___reyTq {\n transform: translateY(60px);\n}\n.offset-module__offset__left--10xl___9p3cn {\n transform: translateX(-60px);\n}\n.offset-module__offset__right--10xl___t-vo7 {\n transform: translateX(60px);\n}\n.offset-module__offset__top--11xl___0nrZa {\n transform: translateY(-64px);\n}\n.offset-module__offset__bottom--11xl___wcfWg {\n transform: translateY(64px);\n}\n.offset-module__offset__left--11xl___sItg5 {\n transform: translateX(-64px);\n}\n.offset-module__offset__right--11xl___NUp-n {\n transform: translateX(64px);\n}" });
|
|
1521
1521
|
var offset_module_default = { "offset__top--zero": "offset-module__offset__top--zero___aprOr", "offset__bottom--zero": "offset-module__offset__bottom--zero___bFNy4", "offset__left--zero": "offset-module__offset__left--zero___5KdMx", "offset__right--zero": "offset-module__offset__right--zero___Drj0u", "offset__top--4xs": "offset-module__offset__top--4xs___Fa8ze", "offset__bottom--4xs": "offset-module__offset__bottom--4xs___Jc7Zw", "offset__left--4xs": "offset-module__offset__left--4xs___t7jGz", "offset__right--4xs": "offset-module__offset__right--4xs___2mcLZ", "offset__top--3xs": "offset-module__offset__top--3xs___hHxAK", "offset__bottom--3xs": "offset-module__offset__bottom--3xs___qP3Lv", "offset__left--3xs": "offset-module__offset__left--3xs___NmD7i", "offset__right--3xs": "offset-module__offset__right--3xs___9Ylue", "offset__top--xxs": "offset-module__offset__top--xxs___ZAKxo", "offset__bottom--xxs": "offset-module__offset__bottom--xxs___k9F4x", "offset__left--xxs": "offset-module__offset__left--xxs___EEf4D", "offset__right--xxs": "offset-module__offset__right--xxs___-J75K", "offset__top--xs": "offset-module__offset__top--xs___irpna", "offset__bottom--xs": "offset-module__offset__bottom--xs___3GXoH", "offset__left--xs": "offset-module__offset__left--xs___7WYJI", "offset__right--xs": "offset-module__offset__right--xs___qY-lO", "offset__top--s": "offset-module__offset__top--s___NdRKq", "offset__bottom--s": "offset-module__offset__bottom--s___YKf9e", "offset__left--s": "offset-module__offset__left--s___mixpA", "offset__right--s": "offset-module__offset__right--s___m6jf5", "offset__top--m": "offset-module__offset__top--m___EXkqi", "offset__bottom--m": "offset-module__offset__bottom--m___OvlYr", "offset__left--m": "offset-module__offset__left--m___XS-PG", "offset__right--m": "offset-module__offset__right--m___o0zZ-", "offset__top--l": "offset-module__offset__top--l___0bGaP", "offset__bottom--l": "offset-module__offset__bottom--l___S1-LW", "offset__left--l": "offset-module__offset__left--l___hS1b3", "offset__right--l": "offset-module__offset__right--l___vQ4Yz", "offset__top--xl": "offset-module__offset__top--xl___6MfKV", "offset__bottom--xl": "offset-module__offset__bottom--xl___dgbWW", "offset__left--xl": "offset-module__offset__left--xl___0aWB5", "offset__right--xl": "offset-module__offset__right--xl___yPz8O", "offset__top--xxl": "offset-module__offset__top--xxl___ivJRd", "offset__bottom--xxl": "offset-module__offset__bottom--xxl___ZtE6Z", "offset__left--xxl": "offset-module__offset__left--xxl___4lK-E", "offset__right--xxl": "offset-module__offset__right--xxl___EM8rB", "offset__top--3xl": "offset-module__offset__top--3xl___A9Bkn", "offset__bottom--3xl": "offset-module__offset__bottom--3xl___zC8-a", "offset__left--3xl": "offset-module__offset__left--3xl___WrL-T", "offset__right--3xl": "offset-module__offset__right--3xl___neWap", "offset__top--4xl": "offset-module__offset__top--4xl___BWQ9i", "offset__bottom--4xl": "offset-module__offset__bottom--4xl___8X4kE", "offset__left--4xl": "offset-module__offset__left--4xl___Hc40T", "offset__right--4xl": "offset-module__offset__right--4xl___sRjGQ", "offset__top--5xl": "offset-module__offset__top--5xl___6uRXY", "offset__bottom--5xl": "offset-module__offset__bottom--5xl___nWc6n", "offset__left--5xl": "offset-module__offset__left--5xl___VkWzJ", "offset__right--5xl": "offset-module__offset__right--5xl___cngKE", "offset__top--6xl": "offset-module__offset__top--6xl___tr7hH", "offset__bottom--6xl": "offset-module__offset__bottom--6xl___CYU1M", "offset__left--6xl": "offset-module__offset__left--6xl___0IuMb", "offset__right--6xl": "offset-module__offset__right--6xl___-1swo", "offset__top--7xl": "offset-module__offset__top--7xl___N7-Xd", "offset__bottom--7xl": "offset-module__offset__bottom--7xl___-pAhy", "offset__left--7xl": "offset-module__offset__left--7xl___mxVrk", "offset__right--7xl": "offset-module__offset__right--7xl___nzulP", "offset__top--8xl": "offset-module__offset__top--8xl___eM-7W", "offset__bottom--8xl": "offset-module__offset__bottom--8xl___enpEm", "offset__left--8xl": "offset-module__offset__left--8xl___jiFYn", "offset__right--8xl": "offset-module__offset__right--8xl___FNqNs", "offset__top--9xl": "offset-module__offset__top--9xl___-Cmh9", "offset__bottom--9xl": "offset-module__offset__bottom--9xl___twE3t", "offset__left--9xl": "offset-module__offset__left--9xl___75mub", "offset__right--9xl": "offset-module__offset__right--9xl___kCSsC", "offset__top--10xl": "offset-module__offset__top--10xl___jlbhZ", "offset__bottom--10xl": "offset-module__offset__bottom--10xl___reyTq", "offset__left--10xl": "offset-module__offset__left--10xl___9p3cn", "offset__right--10xl": "offset-module__offset__right--10xl___t-vo7", "offset__top--11xl": "offset-module__offset__top--11xl___0nrZa", "offset__bottom--11xl": "offset-module__offset__bottom--11xl___wcfWg", "offset__left--11xl": "offset-module__offset__left--11xl___sItg5", "offset__right--11xl": "offset-module__offset__right--11xl___NUp-n" };
|
|
1522
1522
|
|
|
1523
1523
|
// lens-stylesheet:/home/runner/work/lens-desktop-monorepo/lens-desktop-monorepo/packages/technical-features/_low-level/element-components/src/plugins/outline/outline.module.scss
|
|
@@ -1600,14 +1600,14 @@ var import_stylesheet_contracts37 = require("@k8slens/stylesheet-contracts");
|
|
|
1600
1600
|
var stylesheet37 = (0, import_stylesheet_contracts37.asStylesheet)({ id: "@k8slens/element-components/src/plugins/width/width.module.scss", css: ".width-module__max-width--full___noIkT {\n max-width: 100%;\n}\n.width-module__max-width--content___yksUr {\n max-width: 900px;\n}\n.width-module__max-width--zero___8NUF1 {\n max-width: 0px;\n}\n.width-module__max-width--4xs___gHlLI {\n max-width: 1px;\n}\n.width-module__max-width--3xs___rdoP8 {\n max-width: 2px;\n}\n.width-module__max-width--xxs___jlp8v {\n max-width: 4px;\n}\n.width-module__max-width--xs___kQsWx {\n max-width: 8px;\n}\n.width-module__max-width--s___MgGaz {\n max-width: 12px;\n}\n.width-module__max-width--m___aFzSc {\n max-width: 16px;\n}\n.width-module__max-width--l___iKlaH {\n max-width: 20px;\n}\n.width-module__max-width--xl___4zUdC {\n max-width: 24px;\n}\n.width-module__max-width--xxl___58z3P {\n max-width: 28px;\n}\n.width-module__max-width--3xl___2YXnH {\n max-width: 32px;\n}\n.width-module__max-width--4xl___jFJ9V {\n max-width: 36px;\n}\n.width-module__max-width--5xl___7-VQG {\n max-width: 40px;\n}\n.width-module__max-width--6xl___PS37J {\n max-width: 44px;\n}\n.width-module__max-width--7xl___sSBwk {\n max-width: 48px;\n}\n.width-module__max-width--8xl___V3IHy {\n max-width: 52px;\n}\n.width-module__max-width--9xl___4VWEM {\n max-width: 56px;\n}\n.width-module__max-width--10xl___z97TQ {\n max-width: 60px;\n}\n.width-module__max-width--11xl___jxenX {\n max-width: 64px;\n}\n\n.width-module__min-width___qnlYC {\n /* As wide as the content wants to be, so it never has to wrap to fit its surroundings. */\n}\n.width-module__min-width--fit___2W-TD {\n min-width: max-content;\n}\n.width-module__min-width--zero___9429S {\n min-width: 0px;\n}\n.width-module__min-width--4xs___3TGM- {\n min-width: 1px;\n}\n.width-module__min-width--3xs___R6j32 {\n min-width: 2px;\n}\n.width-module__min-width--xxs___vjKdC {\n min-width: 4px;\n}\n.width-module__min-width--xs___V-L1s {\n min-width: 8px;\n}\n.width-module__min-width--s___dIfZm {\n min-width: 12px;\n}\n.width-module__min-width--m___JH5IP {\n min-width: 16px;\n}\n.width-module__min-width--l___GgkE8 {\n min-width: 20px;\n}\n.width-module__min-width--xl___aGLui {\n min-width: 24px;\n}\n.width-module__min-width--xxl___zQOtT {\n min-width: 28px;\n}\n.width-module__min-width--3xl___JevDZ {\n min-width: 32px;\n}\n.width-module__min-width--4xl___1e6N1 {\n min-width: 36px;\n}\n.width-module__min-width--5xl___Kumto {\n min-width: 40px;\n}\n.width-module__min-width--6xl___YEkm8 {\n min-width: 44px;\n}\n.width-module__min-width--7xl___vX1FY {\n min-width: 48px;\n}\n.width-module__min-width--8xl___VbQhk {\n min-width: 52px;\n}\n.width-module__min-width--9xl___eUKQi {\n min-width: 56px;\n}\n.width-module__min-width--10xl___ZoN3N {\n min-width: 60px;\n}\n.width-module__min-width--11xl___BNFjA {\n min-width: 64px;\n}\n\n.width-module__width--full___1mpiz {\n width: 100%;\n}\n.width-module__width--stretch___Rqw00 {\n width: stretch;\n}\n.width-module__width--zero___INdVv {\n width: 0px;\n}\n.width-module__width--4xs___dRUhW {\n width: 1px;\n}\n.width-module__width--3xs___oRJ0z {\n width: 2px;\n}\n.width-module__width--xxs___Hyl9R {\n width: 4px;\n}\n.width-module__width--xs___G3jQz {\n width: 8px;\n}\n.width-module__width--s___-mzqm {\n width: 12px;\n}\n.width-module__width--m___mEZ77 {\n width: 16px;\n}\n.width-module__width--l___qyIN7 {\n width: 20px;\n}\n.width-module__width--xl___mO25I {\n width: 24px;\n}\n.width-module__width--xxl___EGQMp {\n width: 28px;\n}\n.width-module__width--3xl___Hul7- {\n width: 32px;\n}\n.width-module__width--4xl___zOPbS {\n width: 36px;\n}\n.width-module__width--5xl___xbqni {\n width: 40px;\n}\n.width-module__width--6xl___Nmbf9 {\n width: 44px;\n}\n.width-module__width--7xl___B0nvw {\n width: 48px;\n}\n.width-module__width--8xl___W1HDP {\n width: 52px;\n}\n.width-module__width--9xl___KJL8U {\n width: 56px;\n}\n.width-module__width--10xl___94z19 {\n width: 60px;\n}\n.width-module__width--11xl___jB-Ln {\n width: 64px;\n}" });
|
|
1601
1601
|
var width_module_default = { "max-width--full": "width-module__max-width--full___noIkT", "max-width--content": "width-module__max-width--content___yksUr", "max-width--zero": "width-module__max-width--zero___8NUF1", "max-width--4xs": "width-module__max-width--4xs___gHlLI", "max-width--3xs": "width-module__max-width--3xs___rdoP8", "max-width--xxs": "width-module__max-width--xxs___jlp8v", "max-width--xs": "width-module__max-width--xs___kQsWx", "max-width--s": "width-module__max-width--s___MgGaz", "max-width--m": "width-module__max-width--m___aFzSc", "max-width--l": "width-module__max-width--l___iKlaH", "max-width--xl": "width-module__max-width--xl___4zUdC", "max-width--xxl": "width-module__max-width--xxl___58z3P", "max-width--3xl": "width-module__max-width--3xl___2YXnH", "max-width--4xl": "width-module__max-width--4xl___jFJ9V", "max-width--5xl": "width-module__max-width--5xl___7-VQG", "max-width--6xl": "width-module__max-width--6xl___PS37J", "max-width--7xl": "width-module__max-width--7xl___sSBwk", "max-width--8xl": "width-module__max-width--8xl___V3IHy", "max-width--9xl": "width-module__max-width--9xl___4VWEM", "max-width--10xl": "width-module__max-width--10xl___z97TQ", "max-width--11xl": "width-module__max-width--11xl___jxenX", "min-width": "width-module__min-width___qnlYC", "min-width--fit": "width-module__min-width--fit___2W-TD", "min-width--zero": "width-module__min-width--zero___9429S", "min-width--4xs": "width-module__min-width--4xs___3TGM-", "min-width--3xs": "width-module__min-width--3xs___R6j32", "min-width--xxs": "width-module__min-width--xxs___vjKdC", "min-width--xs": "width-module__min-width--xs___V-L1s", "min-width--s": "width-module__min-width--s___dIfZm", "min-width--m": "width-module__min-width--m___JH5IP", "min-width--l": "width-module__min-width--l___GgkE8", "min-width--xl": "width-module__min-width--xl___aGLui", "min-width--xxl": "width-module__min-width--xxl___zQOtT", "min-width--3xl": "width-module__min-width--3xl___JevDZ", "min-width--4xl": "width-module__min-width--4xl___1e6N1", "min-width--5xl": "width-module__min-width--5xl___Kumto", "min-width--6xl": "width-module__min-width--6xl___YEkm8", "min-width--7xl": "width-module__min-width--7xl___vX1FY", "min-width--8xl": "width-module__min-width--8xl___VbQhk", "min-width--9xl": "width-module__min-width--9xl___eUKQi", "min-width--10xl": "width-module__min-width--10xl___ZoN3N", "min-width--11xl": "width-module__min-width--11xl___BNFjA", "width--full": "width-module__width--full___1mpiz", "width--stretch": "width-module__width--stretch___Rqw00", "width--zero": "width-module__width--zero___INdVv", "width--4xs": "width-module__width--4xs___dRUhW", "width--3xs": "width-module__width--3xs___oRJ0z", "width--xxs": "width-module__width--xxs___Hyl9R", "width--xs": "width-module__width--xs___G3jQz", "width--s": "width-module__width--s___-mzqm", "width--m": "width-module__width--m___mEZ77", "width--l": "width-module__width--l___qyIN7", "width--xl": "width-module__width--xl___mO25I", "width--xxl": "width-module__width--xxl___EGQMp", "width--3xl": "width-module__width--3xl___Hul7-", "width--4xl": "width-module__width--4xl___zOPbS", "width--5xl": "width-module__width--5xl___xbqni", "width--6xl": "width-module__width--6xl___Nmbf9", "width--7xl": "width-module__width--7xl___B0nvw", "width--8xl": "width-module__width--8xl___W1HDP", "width--9xl": "width-module__width--9xl___KJL8U", "width--10xl": "width-module__width--10xl___94z19", "width--11xl": "width-module__width--11xl___jB-Ln" };
|
|
1602
1602
|
|
|
1603
|
-
// import-glob:./**/!(_*).(scss|css)/proof-of-uniqueness/
|
|
1603
|
+
// import-glob:./**/!(_*).(scss|css)/proof-of-uniqueness/e9014225-2a25-4d02-ac3c-68ae2daf8c4a
|
|
1604
1604
|
var modules4 = [absolute_module_exports, anchor_module_exports, background_color_module_exports, block_module_exports, border_module_exports, box_shadow_module_exports, color_module_exports, cursor_module_exports, display_contents_module_exports, draggable_module_exports, enabled_module_exports, faded_module_exports, flex_child_module_exports, flex_module_exports, font_module_exports, gradient_module_exports, grayscale_module_exports, grid_module_exports, height_module_exports, hidden_module_exports, interactive_module_exports, invisible_backdrop_module_exports, margin_module_exports, no_pointer_events_module_exports, offset_children_module_exports, offset_module_exports, outline_module_exports, overflow_module_exports, padding_module_exports, popover_module_exports, relative_module_exports, text_align_module_exports, tint_module_exports, tooltip_module_exports, transition_module_exports, visually_hidden_module_exports, width_module_exports];
|
|
1605
|
-
var
|
|
1605
|
+
var e9014225_2a25_4d02_ac3c_68ae2daf8c4a_default = modules4;
|
|
1606
1606
|
|
|
1607
1607
|
// src/feature.ts
|
|
1608
1608
|
var elementComponentFeature = (0, import_feature_core.getFeature)({
|
|
1609
1609
|
id: "element-component",
|
|
1610
|
-
register: (di) => (0, import_feature_core2.registerInjectablesFromModules)(di, [...
|
|
1610
|
+
register: (di) => (0, import_feature_core2.registerInjectablesFromModules)(di, [...c4df7a08_572b_485c_887a_d608b504f521_default, ...e9014225_2a25_4d02_ac3c_68ae2daf8c4a_default])
|
|
1611
1611
|
// No feature dependencies: a design system everyone may install cannot drag
|
|
1612
1612
|
// Lens features into the closure. The clock the hoverable plugin needs is
|
|
1613
1613
|
// local, and the platform is read directly.
|
|
@@ -2700,12 +2700,190 @@ var invisibleBackdropPlugin = (0, import_element_component50.getPlugin)((props)
|
|
|
2700
2700
|
});
|
|
2701
2701
|
|
|
2702
2702
|
// src/plugins/drop-down-menu/drop-down-menu.tsx
|
|
2703
|
-
var
|
|
2703
|
+
var import_element_component52 = require("@k8slens/element-component");
|
|
2704
2704
|
var import_drop_down_menu_contracts = require("@k8slens/drop-down-menu-contracts");
|
|
2705
|
-
var
|
|
2705
|
+
var import_public_utilities14 = require("@k8slens/public-utilities");
|
|
2706
2706
|
var import_use_inject10 = require("@k8slens/use-inject");
|
|
2707
|
+
var import_react16 = require("react");
|
|
2708
|
+
|
|
2709
|
+
// src/plugins/anchor/anchor.tsx
|
|
2710
|
+
var import_element_component51 = require("@k8slens/element-component");
|
|
2711
|
+
var import_public_utilities13 = require("@k8slens/public-utilities");
|
|
2707
2712
|
var import_react15 = require("react");
|
|
2708
2713
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
2714
|
+
var defaultGap = "xs";
|
|
2715
|
+
var anchorNameContext = (0, import_react15.createContext)(void 0);
|
|
2716
|
+
var anchorableClassName = anchor_module_default.anchor;
|
|
2717
|
+
var useAnchorNameFor = (elementRef, isAnchoring) => {
|
|
2718
|
+
const enclosingAnchorName = (0, import_react15.useContext)(anchorNameContext);
|
|
2719
|
+
const anchorsItself = isAnchoring && enclosingAnchorName === void 0;
|
|
2720
|
+
const ownAnchorNameRef = (0, import_react15.useRef)(void 0);
|
|
2721
|
+
if (anchorsItself && ownAnchorNameRef.current === void 0) {
|
|
2722
|
+
ownAnchorNameRef.current = `--anchor-own-${++ownAnchorNameCount}`;
|
|
2723
|
+
}
|
|
2724
|
+
const ownAnchorName = ownAnchorNameRef.current;
|
|
2725
|
+
(0, import_react15.useEffect)(() => {
|
|
2726
|
+
const element = elementRef.current;
|
|
2727
|
+
if (!anchorsItself || !element || ownAnchorName === void 0) {
|
|
2728
|
+
return;
|
|
2729
|
+
}
|
|
2730
|
+
element.style.setProperty(anchorNameProperty, ownAnchorName);
|
|
2731
|
+
return () => {
|
|
2732
|
+
element.style.removeProperty(anchorNameProperty);
|
|
2733
|
+
if (element.getAttribute("style") === "") {
|
|
2734
|
+
element.removeAttribute("style");
|
|
2735
|
+
}
|
|
2736
|
+
};
|
|
2737
|
+
}, [anchorsItself, ownAnchorName, elementRef]);
|
|
2738
|
+
return enclosingAnchorName ?? ownAnchorName;
|
|
2739
|
+
};
|
|
2740
|
+
var ownAnchorNameCount = 0;
|
|
2741
|
+
var AnchorNameProvider = anchorNameContext.Provider;
|
|
2742
|
+
var AnchorWrapperComponent = ({
|
|
2743
|
+
isAnchor,
|
|
2744
|
+
anchoredAt,
|
|
2745
|
+
contributeRef,
|
|
2746
|
+
contributeProps,
|
|
2747
|
+
children
|
|
2748
|
+
}) => {
|
|
2749
|
+
const ownAnchorName = toAnchorName((0, import_react15.useId)());
|
|
2750
|
+
const inheritedAnchorName = (0, import_react15.useContext)(anchorNameContext);
|
|
2751
|
+
const elementRef = (0, import_react15.useRef)(null);
|
|
2752
|
+
const pointRef = (0, import_react15.useRef)(null);
|
|
2753
|
+
contributeRef(
|
|
2754
|
+
(0, import_react15.useCallback)((element) => {
|
|
2755
|
+
elementRef.current = element;
|
|
2756
|
+
}, [])
|
|
2757
|
+
);
|
|
2758
|
+
const position = typeof anchoredAt === "string" ? anchoredAt : anchoredAt == null ? void 0 : anchoredAt.position;
|
|
2759
|
+
const point = typeof anchoredAt === "object" ? anchoredAt.point : void 0;
|
|
2760
|
+
const gap = typeof anchoredAt === "object" ? anchoredAt.gap ?? defaultGap : defaultGap;
|
|
2761
|
+
if (position && !point && !inheritedAnchorName) {
|
|
2762
|
+
throw new Error(
|
|
2763
|
+
`Tried to position an element at "${position}" without an anchor. Either give an ancestor the $anchor prop, or anchor to a point instead.`
|
|
2764
|
+
);
|
|
2765
|
+
}
|
|
2766
|
+
const anchorNameToPositionAgainst = point ? ownAnchorName : inheritedAnchorName;
|
|
2767
|
+
if (anchoredAt !== void 0) {
|
|
2768
|
+
contributeProps({ popover: "manual" });
|
|
2769
|
+
}
|
|
2770
|
+
(0, import_react15.useEffect)(() => {
|
|
2771
|
+
const element = elementRef.current;
|
|
2772
|
+
if (!element) {
|
|
2773
|
+
return;
|
|
2774
|
+
}
|
|
2775
|
+
if (isAnchor) {
|
|
2776
|
+
element.style.setProperty(anchorNameProperty, ownAnchorName);
|
|
2777
|
+
}
|
|
2778
|
+
if (position) {
|
|
2779
|
+
element.style.setProperty(positionProperty, position);
|
|
2780
|
+
element.style.setProperty(gapProperty, `${tShirtSizeInPixels(gap)}px`);
|
|
2781
|
+
element.style.setProperty(marginPropertyTowardsAnchor(position), `${tShirtSizeInPixels(gap)}px`);
|
|
2782
|
+
if (anchorNameToPositionAgainst) {
|
|
2783
|
+
element.style.setProperty(positionAnchorProperty, anchorNameToPositionAgainst);
|
|
2784
|
+
}
|
|
2785
|
+
if (point) {
|
|
2786
|
+
element.style.setProperty(pointXProperty, `${point.x}px`);
|
|
2787
|
+
element.style.setProperty(pointYProperty, `${point.y}px`);
|
|
2788
|
+
}
|
|
2789
|
+
}
|
|
2790
|
+
});
|
|
2791
|
+
(0, import_react15.useEffect)(() => {
|
|
2792
|
+
const element = pointRef.current;
|
|
2793
|
+
if (!element || !isPopoverCapable2(element)) {
|
|
2794
|
+
return;
|
|
2795
|
+
}
|
|
2796
|
+
element.showPopover();
|
|
2797
|
+
return () => {
|
|
2798
|
+
if (element.isConnected) {
|
|
2799
|
+
element.hidePopover();
|
|
2800
|
+
}
|
|
2801
|
+
};
|
|
2802
|
+
}, []);
|
|
2803
|
+
(0, import_react15.useEffect)(() => {
|
|
2804
|
+
const element = elementRef.current;
|
|
2805
|
+
if (!position || !element || !isPopoverCapable2(element)) {
|
|
2806
|
+
return;
|
|
2807
|
+
}
|
|
2808
|
+
element.showPopover();
|
|
2809
|
+
return () => {
|
|
2810
|
+
if (element.isConnected) {
|
|
2811
|
+
element.hidePopover();
|
|
2812
|
+
}
|
|
2813
|
+
};
|
|
2814
|
+
}, [position]);
|
|
2815
|
+
const content = point ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
2816
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
2817
|
+
"div",
|
|
2818
|
+
{
|
|
2819
|
+
ref: pointRef,
|
|
2820
|
+
popover: "manual",
|
|
2821
|
+
"data-anchor-point-test": true,
|
|
2822
|
+
className: anchor_module_default.anchorPoint,
|
|
2823
|
+
style: {
|
|
2824
|
+
[anchorNameProperty]: ownAnchorName,
|
|
2825
|
+
[pointXProperty]: `${point.x}px`,
|
|
2826
|
+
[pointYProperty]: `${point.y}px`
|
|
2827
|
+
}
|
|
2828
|
+
}
|
|
2829
|
+
),
|
|
2830
|
+
children
|
|
2831
|
+
] }) : children;
|
|
2832
|
+
if (isAnchor) {
|
|
2833
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(anchorNameContext.Provider, { value: ownAnchorName, children: content });
|
|
2834
|
+
}
|
|
2835
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: content });
|
|
2836
|
+
};
|
|
2837
|
+
var anchorPlugin = (0, import_element_component51.getPlugin)((props) => {
|
|
2838
|
+
const { $anchor, $anchoredAt, $className } = props;
|
|
2839
|
+
if (!$anchor && $anchoredAt === void 0) {
|
|
2840
|
+
return { $anchor: void 0, $anchoredAt: void 0 };
|
|
2841
|
+
}
|
|
2842
|
+
return {
|
|
2843
|
+
$anchor: void 0,
|
|
2844
|
+
$anchoredAt: void 0,
|
|
2845
|
+
// Rising to the top layer is a technicality of positioning, but the browser makes it a look:
|
|
2846
|
+
// colours of its own, a border, padding, and a margin that would center the element. Undo that,
|
|
2847
|
+
// so an element positioned this way looks like it does anywhere else, and let whatever it says
|
|
2848
|
+
// about itself win.
|
|
2849
|
+
...$anchoredAt !== void 0 && {
|
|
2850
|
+
$color: props.$color ?? "inherit",
|
|
2851
|
+
$backgroundColor: props.$backgroundColor ?? "transparent",
|
|
2852
|
+
$border: { width: "zero", ...props.$border },
|
|
2853
|
+
$padding: props.$padding ?? "zero",
|
|
2854
|
+
$margin: props.$margin ?? "zero",
|
|
2855
|
+
$overflow: props.$overflow ?? "visible"
|
|
2856
|
+
},
|
|
2857
|
+
$className: (0, import_public_utilities13.cssNames)($className, {
|
|
2858
|
+
[anchor_module_default.anchor]: !!$anchor,
|
|
2859
|
+
[anchor_module_default.anchoredAt]: $anchoredAt !== void 0
|
|
2860
|
+
}),
|
|
2861
|
+
$wrapper: {
|
|
2862
|
+
Component: AnchorWrapperComponent,
|
|
2863
|
+
props: { isAnchor: !!$anchor, anchoredAt: $anchoredAt }
|
|
2864
|
+
}
|
|
2865
|
+
};
|
|
2866
|
+
});
|
|
2867
|
+
var marginPropertyTowardsAnchor = (position) => {
|
|
2868
|
+
if (position.startsWith("bottom")) {
|
|
2869
|
+
return "margin-top";
|
|
2870
|
+
}
|
|
2871
|
+
if (position.startsWith("top")) {
|
|
2872
|
+
return "margin-bottom";
|
|
2873
|
+
}
|
|
2874
|
+
return position.startsWith("right") ? "margin-left" : "margin-right";
|
|
2875
|
+
};
|
|
2876
|
+
var anchorNameProperty = "--anchor-name";
|
|
2877
|
+
var gapProperty = "--anchor-gap";
|
|
2878
|
+
var positionAnchorProperty = "--anchor-target";
|
|
2879
|
+
var positionProperty = "--anchor-position";
|
|
2880
|
+
var pointXProperty = "--anchor-point-x";
|
|
2881
|
+
var pointYProperty = "--anchor-point-y";
|
|
2882
|
+
var toAnchorName = (id) => `--anchor-${id.replace(/[^a-zA-Z0-9]/g, "")}`;
|
|
2883
|
+
var isPopoverCapable2 = (element) => typeof element.showPopover === "function";
|
|
2884
|
+
|
|
2885
|
+
// src/plugins/drop-down-menu/drop-down-menu.tsx
|
|
2886
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
2709
2887
|
var hoverCloseDelayInMilliseconds = 200;
|
|
2710
2888
|
var DropDownMenuWrapperComponent = ({
|
|
2711
2889
|
dropDownMenu,
|
|
@@ -2713,36 +2891,36 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2713
2891
|
contributeProps,
|
|
2714
2892
|
children
|
|
2715
2893
|
}) => {
|
|
2716
|
-
const [isOpen, setIsOpen] = (0,
|
|
2717
|
-
const [takesFocus, setTakesFocus] = (0,
|
|
2718
|
-
const [cursor, setCursor] = (0,
|
|
2719
|
-
const closeTimerRef = (0,
|
|
2894
|
+
const [isOpen, setIsOpen] = (0, import_react16.useState)(false);
|
|
2895
|
+
const [takesFocus, setTakesFocus] = (0, import_react16.useState)(true);
|
|
2896
|
+
const [cursor, setCursor] = (0, import_react16.useState)(void 0);
|
|
2897
|
+
const closeTimerRef = (0, import_react16.useRef)(void 0);
|
|
2720
2898
|
const onRightTrigger = (0, import_use_inject10.useSyncInject)(onRightTriggerInjectable);
|
|
2721
|
-
const elementRef = (0,
|
|
2722
|
-
const menuRef = (0,
|
|
2723
|
-
const elementTakesFocusBackRef = (0,
|
|
2899
|
+
const elementRef = (0, import_react16.useRef)(null);
|
|
2900
|
+
const menuRef = (0, import_react16.useRef)(null);
|
|
2901
|
+
const elementTakesFocusBackRef = (0, import_react16.useRef)(false);
|
|
2724
2902
|
contributeRef(
|
|
2725
|
-
(0,
|
|
2903
|
+
(0, import_react16.useCallback)((element) => {
|
|
2726
2904
|
elementRef.current = element;
|
|
2727
2905
|
}, [])
|
|
2728
2906
|
);
|
|
2729
|
-
const toggle = (0,
|
|
2907
|
+
const toggle = (0, import_react16.useCallback)(() => {
|
|
2730
2908
|
setTakesFocus(true);
|
|
2731
2909
|
setIsOpen((wasOpen) => !wasOpen);
|
|
2732
2910
|
}, []);
|
|
2733
|
-
const close = (0,
|
|
2911
|
+
const close = (0, import_react16.useCallback)(() => {
|
|
2734
2912
|
var _a;
|
|
2735
2913
|
const focused = document.activeElement;
|
|
2736
2914
|
elementTakesFocusBackRef.current = focused === null || focused === document.body || ((_a = menuRef.current) == null ? void 0 : _a.contains(focused)) === true;
|
|
2737
2915
|
setIsOpen(false);
|
|
2738
2916
|
}, []);
|
|
2739
|
-
const cancelScheduledClose = (0,
|
|
2917
|
+
const cancelScheduledClose = (0, import_react16.useCallback)(() => {
|
|
2740
2918
|
if (closeTimerRef.current !== void 0) {
|
|
2741
2919
|
clearTimeout(closeTimerRef.current);
|
|
2742
2920
|
closeTimerRef.current = void 0;
|
|
2743
2921
|
}
|
|
2744
2922
|
}, []);
|
|
2745
|
-
const open = (0,
|
|
2923
|
+
const open = (0, import_react16.useCallback)(
|
|
2746
2924
|
(openedBy) => {
|
|
2747
2925
|
cancelScheduledClose();
|
|
2748
2926
|
setTakesFocus(openedBy === "keyboard");
|
|
@@ -2750,12 +2928,12 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2750
2928
|
},
|
|
2751
2929
|
[cancelScheduledClose]
|
|
2752
2930
|
);
|
|
2753
|
-
const scheduleClose = (0,
|
|
2931
|
+
const scheduleClose = (0, import_react16.useCallback)(() => {
|
|
2754
2932
|
cancelScheduledClose();
|
|
2755
2933
|
closeTimerRef.current = setTimeout(close, hoverCloseDelayInMilliseconds);
|
|
2756
2934
|
}, [cancelScheduledClose, close]);
|
|
2757
|
-
(0,
|
|
2758
|
-
(0,
|
|
2935
|
+
(0, import_react16.useEffect)(() => cancelScheduledClose, [cancelScheduledClose]);
|
|
2936
|
+
(0, import_react16.useEffect)(() => {
|
|
2759
2937
|
if (!isOpen) {
|
|
2760
2938
|
return void 0;
|
|
2761
2939
|
}
|
|
@@ -2773,8 +2951,9 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2773
2951
|
});
|
|
2774
2952
|
};
|
|
2775
2953
|
}, [isOpen]);
|
|
2954
|
+
const anchorName = useAnchorNameFor(elementRef, isOpen);
|
|
2776
2955
|
const openOn = dropDownMenu.openOn ?? "click";
|
|
2777
|
-
const closeOnArrowLeft = (0,
|
|
2956
|
+
const closeOnArrowLeft = (0, import_react16.useCallback)(
|
|
2778
2957
|
(event) => {
|
|
2779
2958
|
if (event.key === "ArrowLeft") {
|
|
2780
2959
|
event.preventDefault();
|
|
@@ -2785,7 +2964,7 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2785
2964
|
[close]
|
|
2786
2965
|
);
|
|
2787
2966
|
const outsideClickMarkingProps = useOnOutsideClick(
|
|
2788
|
-
(0,
|
|
2967
|
+
(0, import_react16.useCallback)(() => {
|
|
2789
2968
|
if (isOpen) {
|
|
2790
2969
|
setIsOpen(false);
|
|
2791
2970
|
}
|
|
@@ -2803,7 +2982,7 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2803
2982
|
// exactly as its click is: whatever encloses the element (a menu row with an
|
|
2804
2983
|
// action of its own, say) must not take the same press for being activated too.
|
|
2805
2984
|
onKeyDown: (event) => {
|
|
2806
|
-
(0,
|
|
2985
|
+
(0, import_public_utilities14.onTrigger)(event, () => {
|
|
2807
2986
|
event.stopPropagation();
|
|
2808
2987
|
toggle();
|
|
2809
2988
|
});
|
|
@@ -2819,6 +2998,7 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2819
2998
|
onKeyDown: (event) => {
|
|
2820
2999
|
onRightTrigger(event, () => {
|
|
2821
3000
|
event.stopPropagation();
|
|
3001
|
+
setCursor(void 0);
|
|
2822
3002
|
toggle();
|
|
2823
3003
|
});
|
|
2824
3004
|
}
|
|
@@ -2839,7 +3019,7 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2839
3019
|
}
|
|
2840
3020
|
}
|
|
2841
3021
|
});
|
|
2842
|
-
return /* @__PURE__ */ (0,
|
|
3022
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
2843
3023
|
children,
|
|
2844
3024
|
isOpen && // Marked as inside for the outside-click detection above: the menu is a sibling of the
|
|
2845
3025
|
// element in the DOM, but part of the same thing as far as a user is concerned.
|
|
@@ -2856,7 +3036,7 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2856
3036
|
// Only focus stops, not blur: whatever encloses the element tells focus leaving it apart
|
|
2857
3037
|
// from focus moving within it by where focus went, and has to hear of it leaving from the
|
|
2858
3038
|
// menu as much as from anywhere else.
|
|
2859
|
-
/* @__PURE__ */ (0,
|
|
3039
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2860
3040
|
"span",
|
|
2861
3041
|
{
|
|
2862
3042
|
...outsideClickMarkingProps,
|
|
@@ -2865,7 +3045,7 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2865
3045
|
onClick: stopPropagation2,
|
|
2866
3046
|
onFocus: stopPropagation2,
|
|
2867
3047
|
onKeyDown: openOn === "hover" ? closeOnArrowLeft : void 0,
|
|
2868
|
-
children: /* @__PURE__ */ (0,
|
|
3048
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(AnchorNameProvider, { value: anchorName, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2869
3049
|
import_drop_down_menu_contracts.DropDownMenu,
|
|
2870
3050
|
{
|
|
2871
3051
|
spec: dropDownMenu,
|
|
@@ -2874,189 +3054,41 @@ var DropDownMenuWrapperComponent = ({
|
|
|
2874
3054
|
onClose: close,
|
|
2875
3055
|
onMenuHoverChange: openOn === "hover" ? (menuIsHovered) => menuIsHovered ? cancelScheduledClose() : scheduleClose() : void 0
|
|
2876
3056
|
}
|
|
2877
|
-
)
|
|
3057
|
+
) })
|
|
2878
3058
|
}
|
|
2879
3059
|
)
|
|
2880
3060
|
] });
|
|
2881
3061
|
};
|
|
2882
3062
|
var displayContents = { display: "contents" };
|
|
2883
3063
|
var stopPropagation2 = (event) => event.stopPropagation();
|
|
2884
|
-
var dropDownMenuPlugin = (0,
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
return { $dropDownMenu: void 0 };
|
|
2889
|
-
}
|
|
2890
|
-
const opensOnClick = ($dropDownMenu.openOn ?? "click") === "click";
|
|
2891
|
-
const cannotBeUsed = isDisabled(props);
|
|
2892
|
-
return {
|
|
2893
|
-
$dropDownMenu: void 0,
|
|
2894
|
-
...$dropDownMenu.openOn === "hover" ? {} : { tabIndex: props.tabIndex ?? 0 },
|
|
2895
|
-
// An element that answers a click with a menu is a button, and the cursor is how it says so
|
|
2896
|
-
// -- or says that it cannot right now. Both would otherwise come from a click handler such an
|
|
2897
|
-
// element has no reason to have. Only a click: something right-clicked is not a button, and a
|
|
2898
|
-
// row that reveals a menu on hover is a row.
|
|
2899
|
-
...opensOnClick && {
|
|
2900
|
-
role: role ?? "button",
|
|
2901
|
-
$cursor: $cursor ?? (cannotBeUsed ? "not-allowed" : "pointer")
|
|
2902
|
-
},
|
|
2903
|
-
$wrapper: {
|
|
2904
|
-
Component: DropDownMenuWrapperComponent,
|
|
2905
|
-
props: { dropDownMenu: $dropDownMenu }
|
|
2906
|
-
}
|
|
2907
|
-
};
|
|
2908
|
-
}
|
|
2909
|
-
);
|
|
2910
|
-
|
|
2911
|
-
// src/plugins/anchor/anchor.tsx
|
|
2912
|
-
var import_element_component52 = require("@k8slens/element-component");
|
|
2913
|
-
var import_public_utilities14 = require("@k8slens/public-utilities");
|
|
2914
|
-
var import_react16 = require("react");
|
|
2915
|
-
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
2916
|
-
var defaultGap = "xs";
|
|
2917
|
-
var anchorNameContext = (0, import_react16.createContext)(void 0);
|
|
2918
|
-
var AnchorWrapperComponent = ({
|
|
2919
|
-
isAnchor,
|
|
2920
|
-
anchoredAt,
|
|
2921
|
-
contributeRef,
|
|
2922
|
-
contributeProps,
|
|
2923
|
-
children
|
|
2924
|
-
}) => {
|
|
2925
|
-
const ownAnchorName = toAnchorName((0, import_react16.useId)());
|
|
2926
|
-
const inheritedAnchorName = (0, import_react16.useContext)(anchorNameContext);
|
|
2927
|
-
const elementRef = (0, import_react16.useRef)(null);
|
|
2928
|
-
const pointRef = (0, import_react16.useRef)(null);
|
|
2929
|
-
contributeRef(
|
|
2930
|
-
(0, import_react16.useCallback)((element) => {
|
|
2931
|
-
elementRef.current = element;
|
|
2932
|
-
}, [])
|
|
2933
|
-
);
|
|
2934
|
-
const position = typeof anchoredAt === "string" ? anchoredAt : anchoredAt == null ? void 0 : anchoredAt.position;
|
|
2935
|
-
const point = typeof anchoredAt === "object" ? anchoredAt.point : void 0;
|
|
2936
|
-
const gap = typeof anchoredAt === "object" ? anchoredAt.gap ?? defaultGap : defaultGap;
|
|
2937
|
-
if (position && !point && !inheritedAnchorName) {
|
|
2938
|
-
throw new Error(
|
|
2939
|
-
`Tried to position an element at "${position}" without an anchor. Either give an ancestor the $anchor prop, or anchor to a point instead.`
|
|
2940
|
-
);
|
|
2941
|
-
}
|
|
2942
|
-
const anchorNameToPositionAgainst = point ? ownAnchorName : inheritedAnchorName;
|
|
2943
|
-
if (anchoredAt !== void 0) {
|
|
2944
|
-
contributeProps({ popover: "manual" });
|
|
2945
|
-
}
|
|
2946
|
-
(0, import_react16.useEffect)(() => {
|
|
2947
|
-
const element = elementRef.current;
|
|
2948
|
-
if (!element) {
|
|
2949
|
-
return;
|
|
2950
|
-
}
|
|
2951
|
-
if (isAnchor) {
|
|
2952
|
-
element.style.setProperty(anchorNameProperty, ownAnchorName);
|
|
2953
|
-
}
|
|
2954
|
-
if (position) {
|
|
2955
|
-
element.style.setProperty(positionProperty, position);
|
|
2956
|
-
element.style.setProperty(gapProperty, `${tShirtSizeInPixels(gap)}px`);
|
|
2957
|
-
element.style.setProperty(marginPropertyTowardsAnchor(position), `${tShirtSizeInPixels(gap)}px`);
|
|
2958
|
-
if (anchorNameToPositionAgainst) {
|
|
2959
|
-
element.style.setProperty(positionAnchorProperty, anchorNameToPositionAgainst);
|
|
2960
|
-
}
|
|
2961
|
-
if (point) {
|
|
2962
|
-
element.style.setProperty(pointXProperty, `${point.x}px`);
|
|
2963
|
-
element.style.setProperty(pointYProperty, `${point.y}px`);
|
|
2964
|
-
}
|
|
2965
|
-
}
|
|
2966
|
-
});
|
|
2967
|
-
(0, import_react16.useEffect)(() => {
|
|
2968
|
-
const element = pointRef.current;
|
|
2969
|
-
if (!element || !isPopoverCapable2(element)) {
|
|
2970
|
-
return;
|
|
2971
|
-
}
|
|
2972
|
-
element.showPopover();
|
|
2973
|
-
return () => {
|
|
2974
|
-
if (element.isConnected) {
|
|
2975
|
-
element.hidePopover();
|
|
2976
|
-
}
|
|
2977
|
-
};
|
|
2978
|
-
}, []);
|
|
2979
|
-
(0, import_react16.useEffect)(() => {
|
|
2980
|
-
const element = elementRef.current;
|
|
2981
|
-
if (!position || !element || !isPopoverCapable2(element)) {
|
|
2982
|
-
return;
|
|
2983
|
-
}
|
|
2984
|
-
element.showPopover();
|
|
2985
|
-
return () => {
|
|
2986
|
-
if (element.isConnected) {
|
|
2987
|
-
element.hidePopover();
|
|
2988
|
-
}
|
|
2989
|
-
};
|
|
2990
|
-
}, [position]);
|
|
2991
|
-
const content = point ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
|
|
2992
|
-
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
2993
|
-
"div",
|
|
2994
|
-
{
|
|
2995
|
-
ref: pointRef,
|
|
2996
|
-
popover: "manual",
|
|
2997
|
-
"data-anchor-point-test": true,
|
|
2998
|
-
className: anchor_module_default.anchorPoint,
|
|
2999
|
-
style: {
|
|
3000
|
-
[anchorNameProperty]: ownAnchorName,
|
|
3001
|
-
[pointXProperty]: `${point.x}px`,
|
|
3002
|
-
[pointYProperty]: `${point.y}px`
|
|
3003
|
-
}
|
|
3004
|
-
}
|
|
3005
|
-
),
|
|
3006
|
-
children
|
|
3007
|
-
] }) : children;
|
|
3008
|
-
if (isAnchor) {
|
|
3009
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(anchorNameContext.Provider, { value: ownAnchorName, children: content });
|
|
3010
|
-
}
|
|
3011
|
-
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: content });
|
|
3012
|
-
};
|
|
3013
|
-
var anchorPlugin = (0, import_element_component52.getPlugin)((props) => {
|
|
3014
|
-
const { $anchor, $anchoredAt, $className } = props;
|
|
3015
|
-
if (!$anchor && $anchoredAt === void 0) {
|
|
3016
|
-
return { $anchor: void 0, $anchoredAt: void 0 };
|
|
3064
|
+
var dropDownMenuPlugin = (0, import_element_component52.getPlugin)((props) => {
|
|
3065
|
+
const { $dropDownMenu, $cursor, $className, role } = props;
|
|
3066
|
+
if ($dropDownMenu === void 0) {
|
|
3067
|
+
return { $dropDownMenu: void 0 };
|
|
3017
3068
|
}
|
|
3069
|
+
const opensOnClick = ($dropDownMenu.openOn ?? "click") === "click";
|
|
3070
|
+
const cannotBeUsed = isDisabled(props);
|
|
3018
3071
|
return {
|
|
3019
|
-
$
|
|
3020
|
-
|
|
3021
|
-
//
|
|
3022
|
-
//
|
|
3023
|
-
//
|
|
3024
|
-
//
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
$
|
|
3028
|
-
$border: { width: "zero", ...props.$border },
|
|
3029
|
-
$padding: props.$padding ?? "zero",
|
|
3030
|
-
$margin: props.$margin ?? "zero",
|
|
3031
|
-
$overflow: props.$overflow ?? "visible"
|
|
3072
|
+
$dropDownMenu: void 0,
|
|
3073
|
+
...$dropDownMenu.openOn === "hover" ? {} : { tabIndex: props.tabIndex ?? 0 },
|
|
3074
|
+
// An element that answers a click with a menu is a button, and the cursor is how it says so
|
|
3075
|
+
// -- or says that it cannot right now. Both would otherwise come from a click handler such an
|
|
3076
|
+
// element has no reason to have. Only a click: something right-clicked is not a button, and a
|
|
3077
|
+
// row that reveals a menu on hover is a row.
|
|
3078
|
+
...opensOnClick && {
|
|
3079
|
+
role: role ?? "button",
|
|
3080
|
+
$cursor: $cursor ?? (cannotBeUsed ? "not-allowed" : "pointer")
|
|
3032
3081
|
},
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3082
|
+
// The element may turn out to be the anchor of its own menu, which only its wrapper can tell,
|
|
3083
|
+
// rendering within whatever anchors enclose the element; this lets the name it is then given
|
|
3084
|
+
// take effect.
|
|
3085
|
+
$className: (0, import_public_utilities14.cssNames)($className, anchorableClassName),
|
|
3037
3086
|
$wrapper: {
|
|
3038
|
-
Component:
|
|
3039
|
-
props: {
|
|
3087
|
+
Component: DropDownMenuWrapperComponent,
|
|
3088
|
+
props: { dropDownMenu: $dropDownMenu }
|
|
3040
3089
|
}
|
|
3041
3090
|
};
|
|
3042
3091
|
});
|
|
3043
|
-
var marginPropertyTowardsAnchor = (position) => {
|
|
3044
|
-
if (position.startsWith("bottom")) {
|
|
3045
|
-
return "margin-top";
|
|
3046
|
-
}
|
|
3047
|
-
if (position.startsWith("top")) {
|
|
3048
|
-
return "margin-bottom";
|
|
3049
|
-
}
|
|
3050
|
-
return position.startsWith("right") ? "margin-left" : "margin-right";
|
|
3051
|
-
};
|
|
3052
|
-
var anchorNameProperty = "--anchor-name";
|
|
3053
|
-
var gapProperty = "--anchor-gap";
|
|
3054
|
-
var positionAnchorProperty = "--anchor-target";
|
|
3055
|
-
var positionProperty = "--anchor-position";
|
|
3056
|
-
var pointXProperty = "--anchor-point-x";
|
|
3057
|
-
var pointYProperty = "--anchor-point-y";
|
|
3058
|
-
var toAnchorName = (id) => `--anchor-${id.replace(/[^a-zA-Z0-9]/g, "")}`;
|
|
3059
|
-
var isPopoverCapable2 = (element) => typeof element.showPopover === "function";
|
|
3060
3092
|
|
|
3061
3093
|
// src/elements.ts
|
|
3062
3094
|
var sharedPlugins = [
|
|
@@ -3303,4 +3335,4 @@ var useLocalHoverable = () => {
|
|
|
3303
3335
|
useOnOutsideClick,
|
|
3304
3336
|
usePopoverIsOpen
|
|
3305
3337
|
});
|
|
3306
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2NvbXB1dGVkLW5vdy5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MiLCAiLi4vc3JjL2VsZW1lbnRzL21pbmltYWwtZGl2LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtY29ybmVyLXN0eWxlcy50cyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvZ2V0LXNpZGUtc3R5bGVzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvdy50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9yZWYvcmVmLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWUudHMiLCAiLi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2dldC1kcmFnZ2FibGUtY29udGV4dC50cyIsICIuLi9zcmMvZmVhdHVyZS50cyIsICIuLi9zcmMvcGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy90ZXN0LXV0aWwtcnVubmFibGUuaW5qZWN0YWJsZS50cyIsICJpbXBvcnQtZ2xvYjouLyoqLyouZ2xvYmFsLW92ZXJyaWRlLWZvci1pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvNzFkYTBjMmYtOWU5ZC00ZGI4LWI1MjUtOTJhYmYwZDRhNTNlIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmRlZmF1bHQtb3ZlcnJpZGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cyIsICIuLi9zcmMvcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzIiwgImltcG9ydC1nbG9iOi4vKiovKi5kZWZhdWx0LW92ZXJyaWRlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvM2FkZTQ5Y2ItMWMxZC00MGJlLTkyM2EtYTkzNDcyNzY1NDNiIiwgImltcG9ydC1nbG9iOi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvNDA2ZjA5MjAtY2QyZS00NzZjLWI3MGYtZDRiMWMzNTUwZWFiIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvY29sb3IvY29sb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2N1cnNvci9jdXJzb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzIiwgImltcG9ydC1nbG9iOi4vKiovIShfKikuKHNjc3N8Y3NzKS9wcm9vZi1vZi11bmlxdWVuZXNzLzQ5MTg5MTFmLWMyYTUtNDAxNi1iMzlmLTE5YTg2NzA0YjcyNCIsICIuLi9zcmMvcGx1Z2lucy9fc2hhcmVkL3NpemVzLnRzIiwgIi4uL3NyYy9lbGVtZW50cy50cyIsICIuLi9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvY29sb3IvY29sb3IudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQudHMiLCAiLi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2Ryb3BwYWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24udHMiLCAiLi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldC50cyIsICIuLi9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4udHMiLCAiLi4vc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi50cyIsICIuLi9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC50cyIsICIuLi9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3RpbnQvdGludC50cyIsICIuLi9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZm9jdXNhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXVwZGF0ZS13aGVuLXByb3BzLWNoYW5nZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19wcml2YXRlL3VzZS1jbGVhbnVwLW9uLXVubW91bnQudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvbi50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvaGFuZGxlLWZvY3VzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS9oYW5kbGUtYmx1ci50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXByb2dyYW1tYXRpYy1mb2N1c2luZy50cyIsICIuLi9zcmMvcGx1Z2lucy9hcmVhL2FyZWEudHMiLCAiLi4vc3JjL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudC50cyIsICIuLi9zcmMvcGx1Z2lucy9zaXplL3NpemUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24udHMiLCAiLi4vc3JjL3BsdWdpbnMvYmxvY2svYmxvY2sudHN4IiwgIi4uL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZS50cyIsICIuLi9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS50cyIsICIuLi9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS50c3giLCAiLi4vc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2dldC1mb2N1c2FibGUtY29udGV4dC50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZS1pdGVtLWNvbnRleHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB0eXBlIHsgQmxvY2tQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Jsb2NrL2Jsb2NrXCI7XG5leHBvcnQgdHlwZSB7IEFuY2hvcmVkQXQsIEFuY2hvclBsdWdpblByb3BzLCBBbmNob3JQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2FuY2hvci9hbmNob3JcIjtcbmV4cG9ydCB7IHVzZU9uT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5leHBvcnQgdHlwZSB7IE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcbmV4cG9ydCB0eXBlIHsgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuZXhwb3J0IHR5cGUgeyBUZXh0QWxpZ25QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnblwiO1xuXG5leHBvcnQgeyB0eXBlIERvRm9jdXMsIHR5cGUgRG9Gb2N1c0ZvciwgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHsgaXRlbUJlaW5nRm9jdXNlZEluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlXCI7XG5leHBvcnQgdHlwZSB7IEl0ZW1CZWluZ0ZvY3VzZWQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGVcIjtcbmV4cG9ydCB7IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzLCBpc0Rpc2FibGVkIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkXCI7XG5leHBvcnQgdHlwZSB7IEdyYXlzY2FsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZVwiO1xuZXhwb3J0IHR5cGUgeyBUaW50UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90aW50L3RpbnRcIjtcbmV4cG9ydCB0eXBlIHsgRmFkZWRQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5cbmV4cG9ydCB0eXBlIHsgU2lkZVN0eWxlcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtc2lkZS1zdHlsZXNcIjtcbmV4cG9ydCB0eXBlIHsgQ29ybmVyU3R5bGVzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2dldC1jb3JuZXItc3R5bGVzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsXG4gIEJhY2tncm91bmRDb2xvcixcbiAgQmFja2dyb3VuZENvbG9yQWxpYXMsXG4gICRCYWNrZ3JvdW5kQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgT3V0bGluZVdpZHRoLFxuICAkT3V0bGluZVByb3BzLFxuICBPdXRsaW5lUGx1Z2luUHJvcHMsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nQ29udGVudEFyZ3MsXG4gIEZsb2F0aW5nQ29udGVudEZhY3RvcnksXG4gICRGbG9hdGluZ1Byb3BzLFxuICBGbG9hdGluZ1BsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mbG9hdGluZy9mbG9hdGluZ1wiO1xuXG5leHBvcnQgdHlwZSB7IFBhZGRpbmdQbHVnaW5Qcm9wcywgRGlyZWN0aW9uYWxQYWRkaW5nIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5leHBvcnQgdHlwZSB7IE1hcmdpblBsdWdpblByb3BzLCBEaXJlY3Rpb25hbE1hcmdpbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW5cIjtcbmV4cG9ydCB0eXBlIHsgT3ZlcmZsb3dQbHVnaW5Qcm9wcywgT3ZlcmZsb3cgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG5leHBvcnQgdHlwZSB7IEJveFNoYWRvd1BsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzLFxuICAkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nXCI7XG5leHBvcnQgeyBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZS1ieS1kcmFnZ2luZ1wiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEhvdmVyYWJsZUNvbnRleHQsXG4gICRIb3ZlcmFibGVQcm9wcyxcbiAgSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEhvdmVyYWJsZVBsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBob3ZlcmFibGVQbHVnaW4sIGdldEhvdmVyYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBSZWZQbHVnaW5Qcm9wcywgJFJlZlByb3AsIFJlZkxpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIHsgQWJzb2x1dGVQbHVnaW5Qcm9wcywgQWJzb2x1dGVQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5leHBvcnQgdHlwZSB7IEhpZGRlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlblwiO1xuZXhwb3J0IHR5cGUgeyBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzXCI7XG5leHBvcnQgdHlwZSB7IE9mZnNldFBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldFwiO1xuZXhwb3J0IHR5cGUgeyBPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlblwiO1xuZXhwb3J0IHR5cGUgeyBSZWxhdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVHJhbnNpdGlvblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5leHBvcnQgdHlwZSB7ICRJbnRlcmFjdGl2ZVByb3BzLCBJbnRlcmFjdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW5cIjtcblxuZXhwb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIEN1cnNvclBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvclwiO1xuZXhwb3J0IHR5cGUgeyBEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuXG5leHBvcnQgeyBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSB7IFRvb2x0aXBQbHVnaW5Qcm9wcywgJFRvb2x0aXBQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuZXhwb3J0IHsgU3R5bGVkVG9vbHRpcENvbnRhaW5lciwgZ2V0VG9vbHRpcFByb3BzLCBzdXBwcmVzc1Rvb2x0aXAgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXBcIjtcblxuZXhwb3J0IHR5cGUgeyBEcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBnZXREcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB7IGVsZW1lbnRDb21wb25lbnRGZWF0dXJlIH0gZnJvbSBcIi4vc3JjL2ZlYXR1cmVcIjtcblxuZXhwb3J0IHR5cGUgeyBTaXplUGx1Z2luUHJvcHMsICRTaXplUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9zaXplL3NpemVcIjtcblxuZXhwb3J0IHR5cGUgeyBXaWR0aFBsdWdpblByb3BzLCAkV2lkdGhQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoXCI7XG5cbmV4cG9ydCB0eXBlIHsgU3R5bGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlXCI7XG5cbmV4cG9ydCB0eXBlIHsgSGVpZ2h0UGx1Z2luUHJvcHMsICRIZWlnaHRQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHRcIjtcblxuZXhwb3J0IHR5cGUgeyBGb250UGx1Z2luUHJvcHMsIEZvbnRTaXplLCBGb250TGluZUhlaWdodCB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvbnQvZm9udFwiO1xuXG5leHBvcnQgdHlwZSB7IEdyaWRQbHVnaW5Qcm9wcywgR3JpZFByb3BzLCBHcmlkQ29sdW1ucyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIERyYWdnYWJsZVBsdWdpblByb3BzLFxuICBEcm9wcGFibGVQbHVnaW5Qcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIHsgQ29sb3JQbHVnaW5Qcm9wcywgJENvbG9yUHJvcHMsIFRleHRDb2xvciwgVGV4dENvbG9yQWxpYXMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuZXhwb3J0IHR5cGUgeyBDbGFzc05hbWVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEJvcmRlclBsdWdpblByb3BzLFxuICBCb3JkZXJDb2xvckFsaWFzLFxuICBCb3JkZXJDb2xvcixcbiAgJEJvcmRlclByb3BzLFxuICAkQm9yZGVyQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2JvcmRlclwiO1xuXG5leHBvcnQgdHlwZSB7IEJvcmRlclJhZGl1c1NpemUsIEJvcmRlcldpZHRoLCBCb3JkZXJTaWRlIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcbmV4cG9ydCB7IHRTaGlydFNpemVJblBpeGVscywgc2l6ZVVuaXRJblBpeGVscyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgeyBEaXJlY3Rpb24sIFNob3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUge1xuICBDbGlja0hhbmRsZXIsXG4gIENsaWNrSGFuZGxlckRldGFpbHMsXG4gIENsaWNrUGx1Z2luUHJvcHMsXG4gIFBvc2l0aW9uMmQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcblxuZXhwb3J0IHR5cGUge1xuICBGbGV4UGx1Z2luUHJvcHMsXG4gIEhvcml6b250YWxGbGV4UHJvcHMsXG4gIE1heGltYWxGbGV4UHJvcHMsXG4gIFNpbXBsZUZsZXhQcm9wLFxuICBWZXJ0aWNhbEZsZXhQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZmxleC9mbGV4XCI7XG5cbmltcG9ydCB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyxcbiAgc2hvd0Nzc01vZHVsZUNsdXR0ZXJGb3JQcm9kdWN0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHsgcmVtb3ZlQ3NzTW9kdWxlQ2x1dHRlckZvclVuaXRUZXN0aW5nLCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gfTtcblxuZXhwb3J0IHtcbiAgQ2xpY2thYmxlRGl2LFxuICBOYXYsXG4gIFN2ZyxcbiAgRGl2LFxuICBCdXR0b24sXG4gIEksXG4gIElucHV0LFxuICBGb3JtLFxuICBTcGFuLFxuICBUZXh0QXJlYSxcbiAgQSxcbiAgQ29kZSxcbiAgUHJlLFxuICBIMSxcbiAgSDIsXG4gIEgzLFxuICBINCxcbiAgSDUsXG4gIEg2LFxuICBQLFxuICBDbGlja2FibGVMaSxcbiAgTGksXG4gIE9sLFxuICBVbCxcbiAgVGgsXG4gIFRkLFxuICBUcixcbiAgVGFibGUsXG4gIExhYmVsLFxuICBUQm9keSxcbiAgRGlhbG9nLFxuICBDYW52YXMsXG4gIEltZyxcbn0gZnJvbSBcIi4vc3JjL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQ29tbW9uUHJvcHMsXG4gIENsaWNrYWJsZURpdlByb3BzLFxuICBDbGlja2FibGVMaVByb3BzLFxuICBOYXZQcm9wcyxcbiAgU3ZnUHJvcHMsXG4gIERpdlByb3BzLFxuICBCdXR0b25Qcm9wcyxcbiAgSVByb3BzLFxuICBJbnB1dFByb3BzLFxuICBGb3JtUHJvcHMsXG4gIFNwYW5Qcm9wcyxcbiAgVGV4dEFyZWFQcm9wcyxcbiAgQVByb3BzLFxuICBDb2RlUHJvcHMsXG4gIFByZVByb3BzLFxuICBIMVByb3BzLFxuICBIMlByb3BzLFxuICBIM1Byb3BzLFxuICBINFByb3BzLFxuICBINVByb3BzLFxuICBINlByb3BzLFxuICBQUHJvcHMsXG4gIExpUHJvcHMsXG4gIE9sUHJvcHMsXG4gIFVsUHJvcHMsXG4gIFRoUHJvcHMsXG4gIFRkUHJvcHMsXG4gIFRyUHJvcHMsXG4gIFRhYmxlUHJvcHMsXG4gIExhYmVsUHJvcHMsXG4gIFRCb2R5UHJvcHMsXG4gIERpYWxvZ1Byb3BzLFxuICBDYW52YXNQcm9wcyxcbiAgSW1nUHJvcHMsXG59IGZyb20gXCIuL3NyYy9lbGVtZW50c1wiO1xuXG5leHBvcnQge1xuICBnZXRGb2N1c2FibGVDb250ZXh0LFxuICBnZXRLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmV4cG9ydCB0eXBlIHtcbiAgJEZvY3VzYWJsZVByb3BzLFxuICBBbnlGb2N1c2FibGVDb250ZXh0LFxuICBGb2N1c2FibGVDb250ZXh0LFxuICBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG4gIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSwgdXNlRm9jdXNhYmxlSXRlbSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGUtaXRlbS1jb250ZXh0XCI7XG5leHBvcnQgeyB1c2VDbG9zZVBvcG92ZXIsIHVzZVBvcG92ZXJJc09wZW4sIGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuZXhwb3J0IHsgdXNlTG9jYWxIb3ZlcmFibGUgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZVwiO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHBvaW50ZXItZG93biBsYW5kcyBvdXRzaWRlIHRoZSBlbGVtZW50J3MgUmVhY3QgdHJlZS4gVGhlIHRyZWUgaW5jbHVkZXMgY29udGVudFxuICAgKiB0aGUgZWxlbWVudCBwb3J0YWxzIGVsc2V3aGVyZSwgc28gcG9ydGFsZWQgY2hpbGRyZW4gY291bnQgYXMgaW5zaWRlLiBDYXZlYXQ6IGFuIG91dHNpZGVcbiAgICogcG9pbnRlci1kb3duIHdob3NlIHByb3BhZ2F0aW9uIHRvIHRoZSBkb2N1bWVudCBpcyBzdG9wcGVkIG5hdGl2ZWx5IGdvZXMgdW5kZXRlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5ICRvbk91dHNpZGVDbGljaz86IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBSZWFjdC10cmVlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uOiBhIGNhcHR1cmUtcGhhc2UgaGFuZGxlciBvbiB0aGUgZWxlbWVudCByZWNvcmRzIHRoZVxuICogcG9pbnRlci1kb3duIGV2ZW50cyBvZiBpdHMgb3duIFJlYWN0IHRyZWUgKHBvcnRhbHMgaW5jbHVkZWQsIHNpbmNlIFJlYWN0IGV2ZW50cyBwcm9wYWdhdGVcbiAqIHRocm91Z2ggdGhlbSksIGFuZCBhIGRvY3VtZW50LWxldmVsIGxpc3RlbmVyIHJlcG9ydHMgZXZlcnkgcG9pbnRlci1kb3duIGl0IGRpZCBub3QgcmVjb3JkLlxuICogUmV0dXJucyB0aGUgcHJvcHMgbWFya2luZyB0aGUgZWxlbWVudCdzIHRyZWU7IGdpdmUgdGhlbSB0byBgY29udHJpYnV0ZVByb3BzYCBvciBzcHJlYWQgdGhlbVxuICogb250byB0aGUgc3VidHJlZSdzIHJvb3QuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VPbk91dHNpZGVDbGljayA9IChvbk91dHNpZGVDbGljazogKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHZvaWQpID0+IHtcbiAgY29uc3QgbGFzdEluc2lkZVBvaW50ZXJEb3duUmVmID0gdXNlUmVmPEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBoYW5kbGVyUmVmID0gdXNlUmVmKG9uT3V0c2lkZUNsaWNrKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGhhbmRsZXJSZWYuY3VycmVudCA9IG9uT3V0c2lkZUNsaWNrO1xuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50ICE9PSBsYXN0SW5zaWRlUG9pbnRlckRvd25SZWYuY3VycmVudCkge1xuICAgICAgICBoYW5kbGVyUmVmLmN1cnJlbnQoZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlRG9jdW1lbnRQb2ludGVyRG93bik7XG5cbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24pO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25Qb2ludGVyRG93bkNhcHR1cmUgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgIGxhc3RJbnNpZGVQb2ludGVyRG93blJlZi5jdXJyZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG4gIH0sIFtdKTtcblxuICByZXR1cm4geyBvblBvaW50ZXJEb3duQ2FwdHVyZSB9O1xufTtcblxudHlwZSBPbk91dHNpZGVDbGlja1dyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgb25PdXRzaWRlQ2xpY2s6IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IE9uT3V0c2lkZUNsaWNrV3JhcHBlckNvbXBvbmVudCA9ICh7IG9uT3V0c2lkZUNsaWNrLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IE9uT3V0c2lkZUNsaWNrV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnRyaWJ1dGVQcm9wcyh1c2VPbk91dHNpZGVDbGljayhvbk91dHNpZGVDbGljaykpO1xuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG59O1xuXG5leHBvcnQgY29uc3Qgb25PdXRzaWRlQ2xpY2tQbHVnaW4gPSBnZXRQbHVnaW48T25PdXRzaWRlQ2xpY2tQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJG9uT3V0c2lkZUNsaWNrIH0gPSBwcm9wcztcblxuICBpZiAoJG9uT3V0c2lkZUNsaWNrID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBPbk91dHNpZGVDbGlja1dyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBvbk91dHNpZGVDbGljazogJG9uT3V0c2lkZUNsaWNrIH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1odG1sLWVsZW1lbnQtcmVmLXNldC5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgRG9Gb2N1czxUPiA9IChpdGVtOiBUKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgRG9Gb2N1c0ZvciA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBEb0ZvY3VzPFQ+O1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gRG9Gb2N1c0ZvciB9Pih7XG4gIGlkOiBcImRvLWZvY3VzLWZvci1pbmplY3Rpb24tdG9rZW5cIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRvLWZvY3VzLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRSZWZTZXQgPSBkaS5pbmplY3QoZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICAoZm9jdXNhYmxlSXRlbTogVCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtmaXJzdFJlbmRlcmVkRm9jdXNhYmxlRWxlbWVudFJlZl0gPSBnZXRSZWZTZXQoZm9jdXNhYmxlQ29udGV4dCwgZm9jdXNhYmxlSXRlbSk7XG5cbiAgICAgICAgICBpZiAoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIGFzc2VydERlZmluZWQoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYuY3VycmVudCk7XG5cbiAgICAgICAgICAgIGZpcnN0UmVuZGVyZWRGb2N1c2FibGVFbGVtZW50UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIGFzIERvRm9jdXNGb3I7XG4gIH0sXG5cbiAgaW5qZWN0aW9uVG9rZW46IGRvRm9jdXNGb3JJbmplY3Rpb25Ub2tlbixcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG50eXBlIEZvY3VzYWJsZUl0ZW0gPSBhbnk7XG5cbi8vIFR3byBpbnN0YW50aWF0aW9uIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gb25lIGNvbXBvc2l0ZSBrZXk6IHYyIGtleXMgYVxuLy8gc2luZ2xldG9uIGJ5IGFsbCBvZiB0aGVtLCBzbyB0aGUgY29udGV4dCBhbmQgdGhlIGl0ZW0gY29tcG9zZSBieSBpZGVudGl0eSBvblxuLy8gdGhlaXIgb3duLlxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaHRtbC1lbGVtZW50cy1ieS1mb2N1c2FibGUtbWFwXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2FibGVJdGVtPiwgX2l0ZW06IEZvY3VzYWJsZUl0ZW0pID0+XG4gICAgbmV3IFNldDxNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkPj4oKSxcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBJQ29tcHV0ZWRWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgSXRlbUJlaW5nRm9jdXNlZCA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBJQ29tcHV0ZWRWYWx1ZTxUIHwgdW5kZWZpbmVkPjtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0ZvY3VzZWRJbmplY3Rpb25Ub2tlbiA9IGdldEluamVjdGlvblRva2VuMjx7IHNpbmdsZUZhY3Rvcnk6ICgpID0+IEl0ZW1CZWluZ0ZvY3VzZWQgfT4oe1xuICBpZDogXCJpdGVtLWJlaW5nLWZvY3VzZWRcIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgcHJpdmF0ZUl0ZW1CZWluZ0ZvY3VzZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJwcml2YXRlLWl0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRGb2N1c2FibGVJdGVtU3RhdGUgPSBkaS5pbmplY3QoZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0Rm9jdXNhYmxlSXRlbVN0YXRlKGNvbnRleHQpLmdldCgpKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nRm9jdXNlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdGb2N1c2VkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+KSBhcyBJdGVtQmVpbmdGb2N1c2VkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdGb2N1c2VkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImZvY3VzYWJsZS1pdGVtLXN0YXRlXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxhbnk+KSA9PiBvYnNlcnZhYmxlLmJveDx1bmtub3duPigpLFxufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBlbmFibGVkU3R5bGVzIGZyb20gXCIuL2VuYWJsZWQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogVGhpcyBmaWVsZCBoYXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gJGRpc2FibGVkXG4gICAqL1xuICAkZW5hYmxlZD86IGJvb2xlYW47XG4gICRkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZpZWxkIGlzIG92ZXJyaWRkZW4gdmlhICRkaXNhYmxlZCBhbmQgJGVuYWJsZWRcbiAgICovXG4gIGRpc2FibGVkPzogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuYWJsZWRQbHVnaW4gPSBnZXRQbHVnaW48RW5hYmxlZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCBkaXNhYmxlZCA9IGlzRGlzYWJsZWQocHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGRpc2FibGVkID8gZW5hYmxlZFN0eWxlcy5kaXNhYmxlZCA6IHVuZGVmaW5lZF0sXG4gICAgZGlzYWJsZWQsXG4gICAgJGVuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAkZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNEaXNhYmxlZCA9IChwcm9wczogRW5hYmxlZFBsdWdpblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGVuYWJsZWQsICRkaXNhYmxlZCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIHR5cGVvZiAkZW5hYmxlZCA9PT0gXCJib29sZWFuXCIgPyAhJGVuYWJsZWQgOiAoJGRpc2FibGVkID8/IGZhbHNlKTtcbn07XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5lbmFibGVkLW1vZHVsZV9fZGlzYWJsZWRfX19MTDNzdyB7XFxuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkaXNhYmxlZFwiOlwiZW5hYmxlZC1tb2R1bGVfX2Rpc2FibGVkX19fTEwzc3dcIn07IiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IHR5cGUgQ29udGV4dE1hcFZhbHVlLCBob3Zlckl0ZW1TdGF0ZUZvckluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgYWN0aW9uLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGlzRGVmaW5lZCwgbm9vcCwgdHlwZSBTaW5nbGVPck1hbnkgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHR5cGUgeyAkSG92ZXJhYmxlUHJvcHMgfSBmcm9tIFwiLi9ob3ZlcmFibGVcIjtcblxuZXhwb3J0IHR5cGUgJEhvdmVyYWJsZUJ5RHJhZ2dpbmdQcm9wczxUPiA9IFBpY2s8JEhvdmVyYWJsZVByb3BzPFQ+LCBcImNvbnRleHRcIiB8IFwiaXRlbVwiPjtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzPFQgPSBhbnk+ID0ge1xuICAkaG92ZXJhYmxlQnlEcmFnZ2luZz86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzPFQ+Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW5Qcm9wcywgW1JldHVyblR5cGU8dHlwZW9mIHJlZlBsdWdpbjxUPj5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRob3ZlcmFibGVCeURyYWdnaW5nLCAkcmVmIH0gPSBwcm9wcztcblxuICAgIGlmICgkaG92ZXJhYmxlQnlEcmFnZ2luZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAkaG92ZXJhYmxlQnlEcmFnZ2luZzogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gICAgY29uc3QgaG92ZXJhYmxlUHJvcHNSZWYgPSB1c2VSZWYob2JzZXJ2YWJsZS5tYXAodG9Db250ZXh0TWFwKCRob3ZlcmFibGVCeURyYWdnaW5nKSwgeyBkZWVwOiBmYWxzZSB9KSk7XG4gICAgY29uc3QgY29udHJvbGxlciA9IHVzZVJlZihuZXcgQWJvcnRDb250cm9sbGVyKCkpO1xuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcCgkaG92ZXJhYmxlQnlEcmFnZ2luZykpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IGNhbGxiYWNrUmVmID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGFjdGlvbigoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmN1cnJlbnQuYWJvcnQoKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY3VycmVudCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdlbnRlclwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgIGdldFByb3BzOiAoKSA9PiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmdldChjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5jdXJyZW50LnNpZ25hbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdsZWF2ZVwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkU3RhdGUgPSBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KTtcblxuICAgICAgICAgICAgICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICAgICAgICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLmN1cnJlbnQuc2lnbmFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJHJlZjogWyRyZWYsIGNhbGxiYWNrUmVmXSxcbiAgICAgICRob3ZlcmFibGVCeURyYWdnaW5nOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVCeURyYWdnaW5nUHJvcHM8dW5rbm93bj4+IHwgdW5kZWZpbmVkKSA9PiB7XG4gIGNvbnN0IGl0ZW1zID0gW3Byb3BzXS5mbGF0KCkuZmlsdGVyKGlzRGVmaW5lZCk7XG4gIGNvbnN0IHJlc3VsdHM6IFtvYmplY3QsIENvbnRleHRNYXBWYWx1ZV1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgeyBjb250ZXh0LCBpdGVtIH0gb2YgaXRlbXMpIHtcbiAgICByZXN1bHRzLnB1c2goW2NvbnRleHQsIHsgaXRlbSwgZGVsYXk6IDAsIG9uSG92ZXI6IG5vb3AsIG9uVW5ob3Zlcjogbm9vcCB9XSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn07XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBJT2JzZXJ2YWJsZVZhbHVlLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1hcFZhbHVlID0ge1xuICByZWFkb25seSBpdGVtOiB1bmtub3duO1xuICByZWFkb25seSBkZWxheTogbnVtYmVyO1xuICBvbkhvdmVyOiBWb2lkRnVuY3Rpb247XG4gIG9uVW5ob3ZlcjogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJlZEl0ZW1TdGF0ZSA9IHtcbiAgcmVhZG9ubHkgaG92ZXJlZEF0OiBJT2JzZXJ2YWJsZVZhbHVlPG51bWJlcj47XG4gIHJlYWRvbmx5IGdldFByb3BzOiAoKSA9PiBDb250ZXh0TWFwVmFsdWUgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImhvdmVyZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IG9iamVjdCkgPT4gb2JzZXJ2YWJsZS5tYXA8c3RyaW5nLCBIb3ZlcmVkSXRlbVN0YXRlPihbXSwgeyBkZWVwOiBmYWxzZSB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJob3Zlci1pdGVtLXN0YXRlLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRIb3ZlcmVkSXRlbVN0YXRlID0gZGkuaW5qZWN0KGhvdmVyZWRJdGVtU3RhdGVJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiAoY29udGV4dDogb2JqZWN0KSA9PiBnZXRIb3ZlcmVkSXRlbVN0YXRlKGNvbnRleHQpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcyB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgdHlwZSBDb250ZXh0TWFwVmFsdWUsIGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuL2hvdmVyZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIGNvbXBhcmVyLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IG5vb3AgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCB0eXBlIFNpbmdsZU9yTWFueSB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCB0eXBlIEhvdmVyYWJsZUNvbnRleHRPcHRpb25zID0ge1xuICAvKipcbiAgICogSW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBkZWxheT86IG51bWJlcjtcbiAgcmVhZG9ubHkgb25Ib3Zlcj86IFZvaWRGdW5jdGlvbjtcbiAgcmVhZG9ubHkgb25VbmhvdmVyPzogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQ29udGV4dDxIb3ZlcmVkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGhvdmVyYWJsZTogKGl0ZW06IEhvdmVyZWRJdGVtLCBvcHRpb25zPzogSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMpID0+ICRIb3ZlcmFibGVQcm9wczxIb3ZlcmVkSXRlbT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlICRIb3ZlcmFibGVQcm9wczxUSXRlbSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgY29udGV4dDogb2JqZWN0O1xuICByZWFkb25seSBpdGVtOiBUSXRlbTtcbiAgcmVhZG9ubHkgb3B0aW9uczogUmVxdWlyZWQ8SG92ZXJhYmxlQ29udGV4dE9wdGlvbnM+O1xufVxuXG5leHBvcnQgdHlwZSBIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PiA9IHtcbiAgcmVhZG9ubHkgJGhvdmVyYWJsZT86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlUHJvcHM+O1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUVudGVyXCJdO1xuICBvbk1vdXNlTGVhdmU/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUxlYXZlXCJdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEhvdmVyYWJsZUNvbnRleHQgPSA8SG92ZXJlZEl0ZW0sPigpOiBIb3ZlcmFibGVDb250ZXh0PEhvdmVyZWRJdGVtPiA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgaG92ZXJhYmxlOiAoaXRlbTogSG92ZXJlZEl0ZW0sIHsgZGVsYXkgPSAwLCBvbkhvdmVyID0gbm9vcCwgb25VbmhvdmVyID0gbm9vcCB9OiBIb3ZlcmFibGVDb250ZXh0T3B0aW9ucyA9IHt9KSA9PiAoe1xuICAgICAgY29udGV4dCxcbiAgICAgIGl0ZW0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICBvblVuaG92ZXIsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4gPSBSZXR1cm5UeXBlPHR5cGVvZiBob3ZlcmFibGVQbHVnaW48VD4+O1xuXG50eXBlIEhvdmVyYWJsZVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgaG92ZXJhYmxlOiBTaW5nbGVPck1hbnk8JEhvdmVyYWJsZVByb3BzPjtcbiAgcmVhZG9ubHkgb25Nb3VzZUVudGVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICByZWFkb25seSBvbk1vdXNlTGVhdmU/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGhvdmVyYWJsZSxcbiAgb25Nb3VzZUVudGVyLFxuICBvbk1vdXNlTGVhdmUsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBIb3ZlcmFibGVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbik7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcblxuICBjb25zdCBob3ZlcmFibGVQcm9wc1JlZiA9IHVzZVJlZihcbiAgICBvYnNlcnZhYmxlLm1hcCh0b0NvbnRleHRNYXAoaG92ZXJhYmxlKSwgeyBkZWVwOiBmYWxzZSwgZXF1YWxzOiBjb21wYXJlci5zdHJ1Y3R1cmFsIH0pLFxuICApO1xuXG4gIHVzZUVmZmVjdChcbiAgICBhY3Rpb24oKCkgPT4ge1xuICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcChob3ZlcmFibGUpKTtcbiAgICB9KSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CeUNvbnRleHQgPSBuZXcgTWFwPG9iamVjdCwgdW5rbm93bj4oKTtcblxuICAgIHJldHVybiBhdXRvcnVuKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2NvbnRleHQsIHsgaXRlbSwgb25Ib3Zlciwgb25VbmhvdmVyIH1dIG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaG92ZXJlZEl0ZW0gPSBpdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQgYXMgSG92ZXJhYmxlQ29udGV4dDx1bmtub3duPikuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbSA9IGl0ZW1CeUNvbnRleHQuZ2V0KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChob3ZlcmVkSXRlbSA9PT0gaXRlbSkge1xuICAgICAgICAgIG9uSG92ZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmV2aW91c0l0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICBvblVuaG92ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZW1CeUNvbnRleHQuc2V0KGNvbnRleHQsIGhvdmVyZWRJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW2l0ZW1CZWluZ0hvdmVyZWRdKTtcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIGFjdGlvbigoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgY29udGV4dCBvZiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmtleXMoKSkge1xuICAgICAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjayhcbiAgICBhY3Rpb24oKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Nb3VzZUVudGVyPy4oZXZlbnQpO1xuXG4gICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbnRleHQgb2YgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5rZXlzKCkpIHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoY29udGV4dCkuc2V0KGlkLCB7XG4gICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgZ2V0UHJvcHM6ICgpID0+IGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQuZ2V0KGNvbnRleHQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soXG4gICAgYWN0aW9uKChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uTW91c2VMZWF2ZT8uKGV2ZW50KTtcblxuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRTdGF0ZSA9IGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpO1xuXG4gICAgICAgIGhvdmVyZWRTdGF0ZS5kZWxldGUoaWQpO1xuICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgW10sXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICBvbk1vdXNlRW50ZXI6IGhhbmRsZU1vdXNlRW50ZXIsXG4gICAgb25Nb3VzZUxlYXZlOiBoYW5kbGVNb3VzZUxlYXZlLFxuICB9KTtcblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhvdmVyYWJsZVBsdWdpbjxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudD4+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGhvdmVyYWJsZSwgb25Nb3VzZUVudGVyLCBvbk1vdXNlTGVhdmUgfSA9IHByb3BzO1xuXG4gICAgaWYgKCRob3ZlcmFibGUgPT09IHVuZGVmaW5lZCB8fCAoQXJyYXkuaXNBcnJheSgkaG92ZXJhYmxlKSAmJiAkaG92ZXJhYmxlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBob3ZlcmFibGU6ICRob3ZlcmFibGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVQcm9wczx1bmtub3duPj4gfCB1bmRlZmluZWQpID0+IHtcbiAgY29uc3QgaXRlbXMgPSBbcHJvcHNdLmZsYXQoKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgY29uc3QgcmVzdWx0czogW29iamVjdCwgQ29udGV4dE1hcFZhbHVlXVtdID0gW107XG5cbiAgZm9yIChjb25zdCB7IGNvbnRleHQsIGl0ZW0sIG9wdGlvbnMgfSBvZiBpdGVtcykge1xuICAgIHJlc3VsdHMucHVzaChbY29udGV4dCwgeyBpdGVtLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiwgZ2V0SW5qZWN0aW9uVG9rZW4yIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSUNvbXB1dGVkVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4vaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZE5vd0luamVjdGFibGUgfSBmcm9tIFwiLi9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSBJdGVtQmVpbmdIb3ZlcmVkID0gPFQ+KGhvdmVyYWJsZUNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+IElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gSXRlbUJlaW5nSG92ZXJlZCB9Pih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuICBjYXJkaW5hbGl0eTogXCJvbmVcIixcbn0pKCk7XG5cbmV4cG9ydCBjb25zdCBwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcInByaXZhdGUtaXRlbS1iZWluZy1ob3ZlcmVkXCIsXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGdldEhvdmVyZWRJdGVtU3RhdGUgPSBkaS5pbmplY3QoaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUpO1xuICAgIGNvbnN0IGdldENvbXB1dGVkTm93ID0gZGkuaW5qZWN0KGNvbXB1dGVkTm93SW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IG9iamVjdCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZSA9IGdldEhvdmVyZWRJdGVtU3RhdGUoY29udGV4dCk7XG4gICAgICBjb25zdCBjb21wdXRlZE5vdyA9IGdldENvbXB1dGVkTm93KDEpO1xuXG4gICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b3BJdGVtID0gWy4uLmhvdmVyZWRJdGVtU3RhdGUudmFsdWVzKCldLmF0KC0xKTtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0b3BJdGVtPy5nZXRQcm9wcygpO1xuXG4gICAgICAgIGlmICghdG9wSXRlbSB8fCAhcHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2hlbkNvbnNpZGVyZWRIb3ZlcmVkID0gdG9wSXRlbS5ob3ZlcmVkQXQuZ2V0KCkgKyBwcm9wcy5kZWxheTtcbiAgICAgICAgY29uc3Qgbm93ID0gY29tcHV0ZWROb3cuZ2V0KCk7XG5cbiAgICAgICAgcmV0dXJuIG5vdyA+PSB3aGVuQ29uc2lkZXJlZEhvdmVyZWQgPyBwcm9wcy5pdGVtIDogdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nSG92ZXJlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQ+KSBhcyBJdGVtQmVpbmdIb3ZlcmVkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZCwgb2JzZXJ2YWJsZSwgb25CZWNvbWVPYnNlcnZlZCwgb25CZWNvbWVVbm9ic2VydmVkLCBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5cbi8qKlxuICogQSBjbG9jayB0aGF0IGFkdmFuY2VzIG9ubHkgd2hpbGUgc29tZXRoaW5nIG9ic2VydmVzIGl0LCBzbyBhIGhvdmVyIGRlbGF5XG4gKiBrZWVwcyBiZWluZyByZS1ldmFsdWF0ZWQgdW50aWwgaXQgaGFzIGVsYXBzZWQgYW5kIGNvc3RzIG5vdGhpbmcgb25jZSBub2JvZHlcbiAqIGlzIHdhdGNoaW5nLlxuICpcbiAqIExvY2FsIHJhdGhlciB0aGFuIHRha2VuIGZyb20gdGhlIHNoYXJlZCBpbnRlcnZhbCBmZWF0dXJlOiBhIGRlc2lnbiBzeXN0ZW1cbiAqIGNhbm5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZCB0aGUgaG92ZXJhYmxlIHBsdWdpbiBpcyB0aGUgb25seVxuICogdGhpbmcgaGVyZSB0aGF0IG5lZWRzIGEgY2xvY2suIFRoZSBpbnRlcnZhbCBpcyB0aGUgaW5zdGFudGlhdGlvbiBwYXJhbWV0ZXIsXG4gKiBzbyB2MiBrZXlzIG9uZSBjbG9jayBwZXIgaW50ZXJ2YWwuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21wdXRlZE5vd0luamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImNvbXB1dGVkLW5vd1wiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoaW50ZXJ2YWxNczogbnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgbm93ID0gb2JzZXJ2YWJsZS5ib3goRGF0ZS5ub3coKSk7XG5cbiAgICBsZXQgaGFuZGxlOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCB1bmRlZmluZWQ7XG5cbiAgICBvbkJlY29tZU9ic2VydmVkKG5vdywgKCkgPT4ge1xuICAgICAgcnVuSW5BY3Rpb24oKCkgPT4gbm93LnNldChEYXRlLm5vdygpKSk7XG5cbiAgICAgIGhhbmRsZSA9IHNldEludGVydmFsKCgpID0+IHJ1bkluQWN0aW9uKCgpID0+IG5vdy5zZXQoRGF0ZS5ub3coKSkpLCBpbnRlcnZhbE1zKTtcbiAgICB9KTtcblxuICAgIG9uQmVjb21lVW5vYnNlcnZlZChub3csICgpID0+IHtcbiAgICAgIGlmIChoYW5kbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjbGVhckludGVydmFsKGhhbmRsZSk7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZSA9IHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBub3cuZ2V0KCkpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIsIGdldEluamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IElDb21wdXRlZFZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlQ29udGV4dCB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIEl0ZW1CZWluZ0RyYWdnZWQgPSA8VD4oZHJhZ2dhYmxlQ29udGV4dDogRHJhZ2dhYmxlQ29udGV4dDxUPikgPT4gSUNvbXB1dGVkVmFsdWU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjb25zdCBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8eyBzaW5nbGVGYWN0b3J5OiAoKSA9PiBJdGVtQmVpbmdEcmFnZ2VkIH0+KHtcbiAgaWQ6IFwiaXRlbS1iZWluZy1kcmFnZ2VkXCIsXG4gIGNhcmRpbmFsaXR5OiBcIm9uZVwiLFxufSkoKTtcblxuZXhwb3J0IGNvbnN0IHByaXZhdGVJdGVtQmVpbmdEcmFnZ2VkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwicHJpdmF0ZS1pdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0RHJhZ2dlZEl0ZW1TdGF0ZSA9IGRpLmluamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0RHJhZ2dlZEl0ZW1TdGF0ZShjb250ZXh0KS5nZXQoKSk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJpdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0UHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWQgPSBkaS5pbmplY3QocHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICBnZXRQcml2YXRlSXRlbUJlaW5nRHJhZ2dlZChjb250ZXh0KSBhcyBJQ29tcHV0ZWRWYWx1ZTxUPikgYXMgSXRlbUJlaW5nRHJhZ2dlZDtcbiAgfSxcblxuICBpbmplY3Rpb25Ub2tlbjogaXRlbUJlaW5nRHJhZ2dlZEluamVjdGlvblRva2VuLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbi8vIFRoZSBjb250ZXh0IGlzIHRoZSBpbnN0YW50aWF0aW9uIHBhcmFtZXRlciwgc28gdjIga2V5cyBvbmUgc3RhdGUgYm94IHBlclxuLy8gY29udGV4dCBpZGVudGl0eSBcdTIwMTQgd2hhdCB0aGUga2V5ZWRTaW5nbGV0b24gdXNlZCB0byBzcGVsbCBvdXQuXG5leHBvcnQgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRyYWdnZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gb2JzZXJ2YWJsZS5ib3godW5kZWZpbmVkLCB7IGRlZXA6IGZhbHNlIH0pLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEhvdmVyYWJsZVBsdWdpbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBnZXRIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4uL2hvdmVyYWJsZS9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB7IGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB0b29sdGlwRGVsYXlJbmplY3RhYmxlIH0gZnJvbSBcIi4vdG9vbHRpcC1kZWxheS90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vdG9vbHRpcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHsgbm9vcCwgdHlwZSBNYXliZUFzeW5jVm9pZEZ1bmN0aW9uIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IE1pbmltYWxEaXYsIHR5cGUgTWluaW1hbERpdlByb3BzIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzL21pbmltYWwtZGl2XCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIG9ic2VydmFibGUgfSBmcm9tIFwibW9ieFwiO1xuXG50eXBlIFRvb2x0aXBDb250ZW50UHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3Q+ID1cbiAgfCB7XG4gICAgICAvKiogUGxhaW4tdGV4dCBjb250ZW50IG9mIHRoZSB0b29sdGlwLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgQ29udGVudGAuICovXG4gICAgICByZWFkb25seSBjb250ZW50VGV4dDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgQ29udGVudD86IHVuZGVmaW5lZDtcbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IHVuZGVmaW5lZDtcbiAgICB9XG4gIHwge1xuICAgICAgcmVhZG9ubHkgY29udGVudFRleHQ/OiB1bmRlZmluZWQ7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb21wb25lbnQgcmVuZGVyZWQgYXMgdGhlIGNvbnRlbnQgb2YgdGhlIHRvb2x0aXAuIE11c3QgaGF2ZSBhIHN0YWJsZVxuICAgICAgICogaWRlbnRpdHkgKG1vZHVsZSBzY29wZSkgXHUyMDE0IGRhdGEgZmxvd3MgaW4gdGhyb3VnaCBgY29udGVudFByb3BzYCwgbmV2ZXJcbiAgICAgICAqIHRocm91Z2ggY2xvc3VyZSBjYXB0dXJlLlxuICAgICAgICovXG4gICAgICByZWFkb25seSBDb250ZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPFByb3BzPjtcbiAgICAgIC8qKiBUaGUgcHJvcHMgdGhlIHRvb2x0aXAgcGFzc2VzIHRvIGBDb250ZW50YCB3aGVuIHJlbmRlcmluZyBpdC4gKi9cbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IFByb3BzO1xuICAgIH07XG5cbmV4cG9ydCB0eXBlICRUb29sdGlwUHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8bmV2ZXIsIG5ldmVyPj4gPSB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogUGxhY2VtZW50O1xuICByZWFkb25seSBvblRvb2x0aXBTaG93bj86IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59ICYgVG9vbHRpcENvbnRlbnRQcm9wczxQcm9wcz47XG5cbi8qKlxuICogVHlwZS1jaGVja3MgdGhlIHBhaXJpbmcgb2YgYENvbnRlbnRgIGFuZCBgY29udGVudFByb3BzYCBvZiBhbiBvYmplY3QtZm9ybVxuICogYCR0b29sdGlwYDogYGNvbnRlbnRQcm9wc2AgaXMgcmVxdWlyZWQgdG8gYmUgdGhlIHByb3BzIG9mIGBDb250ZW50YCwgYW5kIGl0XG4gKiBpcyByZXF1aXJlZCB0byBiZSBwcmVzZW50IHdoZW4gYENvbnRlbnRgIGhhcyByZXF1aXJlZCBwcm9wcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHMpOiAkVG9vbHRpcFByb3BzPGFueT47XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbHRpcFByb3BzPFByb3BzIGV4dGVuZHMgb2JqZWN0PihcbiAgdG9vbHRpcFByb3BzOiAkVG9vbHRpcFByb3BzPFByb3BzPiAmIHsgcmVhZG9ubHkgY29udGVudFByb3BzOiBQcm9wcyB9LFxuKTogJFRvb2x0aXBQcm9wczxhbnk+O1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHM8YW55Pik6ICRUb29sdGlwUHJvcHM8YW55PiB7XG4gIHJldHVybiB0b29sdGlwUHJvcHM7XG59XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqIE51bGxpc2ggbWVhbnMgbm8gdG9vbHRpcCwgc28gY29uZGl0aW9uYWwgc291cmNlcyAoYHN0cmluZyB8IG51bGxgKSBwYXNzIHRocm91Z2ggYXMtaXMuICovXG4gICR0b29sdGlwPzogc3RyaW5nIHwgJFRvb2x0aXBQcm9wczxhbnk+IHwgbnVsbDtcbn07XG5cbi8qKlxuICogQSB0b29sdGlwIG9mIG5vdGhpbmc6IHRoZSBlbGVtZW50IHRha2VzIHRoZSBob3Zlciwgc28gbm8gZW5jbG9zaW5nIGVsZW1lbnQgc2hvd3MgaXRzIHRvb2x0aXBcbiAqIHdoaWxlIHRoZSBwb2ludGVyIGlzIG92ZXIgdGhpcyBvbmUsIGFuZCBzaG93cyBub3RoaW5nIG9mIGl0cyBvd24uIE51bGxpc2ggYCR0b29sdGlwYCBsZWF2ZXMgdGhlXG4gKiBlbmNsb3NpbmcgdG9vbHRpcCBhbG9uZSBpbnN0ZWFkIFx1MjAxNCB1c2UgdGhpcyB3aGVyZSBhbiBlbGVtZW50IG11c3Qgbm90IGJlIGRlc2NyaWJlZCBieSB3aGF0ZXZlclxuICogZW5jbG9zZXMgaXQsIGEgcGFuZWwgb3BlbmVkIGZyb20gYSByb3cgd2l0aCBhIHRvb2x0aXAgYmVpbmcgdGhlIGNhc2UgdGhhdCBuZWVkcyBpdDogYSB0b29sdGlwXG4gKiBnb2VzIGludG8gdGhlIHRvcCBsYXllciwgc28gaXQgd291bGQgcGFpbnQgb3ZlciB3aGF0IHRoZSBwYW5lbCBpcyB0aGVyZSBmb3IuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogPExpICR0b29sdGlwPXtzdXBwcmVzc1Rvb2x0aXB9PlxuICogICA8U2V0dGluZ3MgLz5cbiAqIDwvTGk+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHN1cHByZXNzVG9vbHRpcDogJFRvb2x0aXBQcm9wcyA9IHsgY29udGVudFRleHQ6IFwiXCIgfTtcblxuY29uc3QgaG92ZXJhYmxlVG9vbHRpcENvbnRleHQgPSBnZXRIb3ZlcmFibGVDb250ZXh0PEhUTUxFbGVtZW50IHwgbnVsbD4oKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IE1pbmltYWxEaXZQcm9wcykgPT4ge1xuICBjb25zdCB7ICRjbGFzc05hbWUsIC4uLnJlc3QgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPE1pbmltYWxEaXZcbiAgICAgICRwYWRkaW5nXG4gICAgICAkYmFja2dyb3VuZENvbG9yPVwiYmFja2dyb3VuZFNlY29uZGFyeVwiXG4gICAgICAkYm9yZGVyPXt7IHJhZGl1czogdHJ1ZSB9fVxuICAgICAgJGZvbnQ9e3sgc2l6ZTogXCJzXCIgfX1cbiAgICAgICRib3hTaGFkb3dcbiAgICAgICRub1BvaW50ZXJFdmVudHNcbiAgICAgICRhYnNvbHV0ZVxuICAgICAgJGNsYXNzTmFtZT17W3N0eWxlcy50b29sdGlwLCAkY2xhc3NOYW1lXX1cbiAgICAgIGRhdGEtdG9vbHRpcC1jb250YWluZXItdGVzdFxuICAgICAgey4uLnJlc3R9XG4gICAgLz5cbiAgKTtcbn07XG5cbnR5cGUgRmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyUHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVmZXJlbmNlOiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIG9uVG9vbHRpcFNob3duOiBWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFBvcG92ZXJDYXBhYmxlID0gSFRNTEVsZW1lbnQgJiB7IHNob3dQb3BvdmVyOiBWb2lkRnVuY3Rpb247IGhpZGVQb3BvdmVyOiBWb2lkRnVuY3Rpb24gfTtcblxuY29uc3QgaXNQb3BvdmVyQ2FwYWJsZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGVsZW1lbnQgaXMgUG9wb3ZlckNhcGFibGUgPT5cbiAgdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8UG9wb3ZlckNhcGFibGU+KS5zaG93UG9wb3ZlciA9PT0gXCJmdW5jdGlvblwiO1xuXG5jb25zdCBGbG9hdGluZ1N0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IEZsb2F0aW5nU3R5bGVkVG9vbHRpcENvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGVudCwgcG9zaXRpb24sIHJlZmVyZW5jZSwgb25Ub29sdGlwU2hvd24gfSA9IHByb3BzO1xuICBjb25zdCBbZmxvYXRpbmcsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IHBvc2l0aW9uLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHdlIGRvbid0IHdhbnQgdG8gY2FsbCBvblRvb2x0aXBTaG93biBldmVyeSB0aW1lIGl0IHVwZGF0ZXMgd2hpbGUgdGhlIHRvb2x0aXAgaXMgYmVpbmcgc2hvd1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgb25Ub29sdGlwU2hvd24oKTtcbiAgfSwgW10pO1xuXG4gIC8vIEludG8gdGhlIHRvcCBsYXllciwgd2hlcmUgYSBkcm9wLWRvd24gbWVudSBhbHJlYWR5IHB1dHMgaXRzZWxmOiBubyB6LWluZGV4IGNhblxuICAvLyBwYWludCBvdmVyIGEgcG9wb3Zlciwgc28gYSB0b29sdGlwIGFueXdoZXJlIG5lYXIgYW4gb3BlbiBtZW51IHdvdWxkIGJlIGhpZGRlblxuICAvLyBiZWhpbmQgaXQuIFNob3duIGFmdGVyIHRoZSBtZW51IG9wZW5lZCwgc28gaXQgbGFuZHMgYWJvdmUgaXQuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFmbG9hdGluZyB8fCAhaXNQb3BvdmVyQ2FwYWJsZShmbG9hdGluZykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmbG9hdGluZy5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChmbG9hdGluZy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBmbG9hdGluZy5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtmbG9hdGluZ10pO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFRvb2x0aXBDb250YWluZXIgJHJlZj17c2V0RmxvYXRpbmd9IHBvcG92ZXI9XCJtYW51YWxcIiBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9TdHlsZWRUb29sdGlwQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFBsdWdpbjxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+ID0gUmV0dXJuVHlwZTx0eXBlb2YgdG9vbHRpcFBsdWdpbjxUPj47XG5cbnR5cGUgTm9ybWFsaXplZFRvb2x0aXBQcm9wcyA9IHtcbiAgcmVhZG9ubHkgY29udGVudFRleHQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IENvbnRlbnQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT47XG4gIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IGFueTtcbiAgcmVhZG9ubHkgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVhZG9ubHkgb25Ub29sdGlwU2hvd246IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFRvb2x0aXBXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHRvb2x0aXA6IE5vcm1hbGl6ZWRUb29sdGlwUHJvcHM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgVG9vbHRpcFdyYXBwZXJDb21wb25lbnQgPSAoeyB0b29sdGlwLCBjb250cmlidXRlUmVmLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IFRvb2x0aXBXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0UmVmZXJlbmNlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnRyaWJ1dGVSZWYoc2V0UmVmZXJlbmNlKTtcblxuICBjb25zdCB0b29sdGlwRGVsYXkgPSB1c2VTeW5jSW5qZWN0KHRvb2x0aXBEZWxheUluamVjdGFibGUpO1xuICBjb25zdCBob3Zlckl0ZW1TdGF0ZUZvciA9IHVzZVN5bmNJbmplY3QoaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlKTtcbiAgY29uc3QgaG92ZXJlZEl0ZW0gPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbikoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICBjb25zdCBpZCA9IHVzZUlkKCk7XG5cbiAgY29uc3QgcmVmZXJlbmNlUmVmID0gdXNlUmVmKHJlZmVyZW5jZSk7XG4gIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlO1xuXG4gIGNvbnN0IHRvb2x0aXBEZWxheVJlZiA9IHVzZVJlZih0b29sdGlwRGVsYXkpO1xuICB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA9IHRvb2x0aXBEZWxheTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIG9uTW91c2VFbnRlcjogYWN0aW9uKCgpID0+IHtcbiAgICAgIGNvbnN0IGhvdmVyZWRBdCA9IERhdGUubm93KCk7XG5cbiAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGhvdmVyYWJsZVRvb2x0aXBDb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgIGdldFByb3BzOiAoKSA9PiAoe1xuICAgICAgICAgIGl0ZW06IHJlZmVyZW5jZVJlZi5jdXJyZW50LFxuICAgICAgICAgIGRlbGF5OiB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA/PyAwLFxuICAgICAgICAgIG9uSG92ZXI6IG5vb3AsXG4gICAgICAgICAgb25VbmhvdmVyOiBub29wLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgIH0pLFxuXG4gICAgb25Nb3VzZUxlYXZlOiBhY3Rpb24oKCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZFN0YXRlID0gaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgfSksXG4gIH0pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICB9KSxcbiAgICBbaG92ZXJJdGVtU3RhdGVGb3IsIGlkXSxcbiAgKTtcblxuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gYXV0b3J1bigoKSA9PiB7XG4gICAgICBjb25zdCBpc0hvdmVyZWQgPSBob3ZlcmVkSXRlbS5nZXQoKSA9PT0gcmVmZXJlbmNlUmVmLmN1cnJlbnQ7XG4gICAgICBzZXRIb3ZlcmVkKGlzSG92ZXJlZCk7XG4gICAgfSk7XG4gIH0sIFtob3ZlcmVkSXRlbV0pO1xuXG4gIGNvbnN0IHsgY29udGVudFRleHQsIENvbnRlbnQsIGNvbnRlbnRQcm9wcywgcG9zaXRpb24sIG9uVG9vbHRpcFNob3duIH0gPSB0b29sdGlwO1xuICBjb25zdCBjb250ZW50ID0gaG92ZXJlZCA/IENvbnRlbnQgPT09IHVuZGVmaW5lZCA/IGNvbnRlbnRUZXh0IDogPENvbnRlbnQgey4uLmNvbnRlbnRQcm9wc30gLz4gOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2NvbnRlbnRcbiAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8RmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyIHsuLi57IGNvbnRlbnQsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biwgcmVmZXJlbmNlIH19IC8+LFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b29sdGlwUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48VG9vbHRpcFBsdWdpblByb3BzLCBbSG92ZXJhYmxlUGx1Z2luPFQ+LCBSZWZQbHVnaW48VD5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICR0b29sdGlwIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiB7IHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlIH07XG5cbiAgICBpZiAoJHRvb2x0aXAgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJHRvb2x0aXA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgY29udGVudFRleHQsXG4gICAgICBDb250ZW50LFxuICAgICAgY29udGVudFByb3BzLFxuICAgICAgcG9zaXRpb24gPSBcImJvdHRvbVwiLFxuICAgICAgb25Ub29sdGlwU2hvd24gPSBub29wLFxuICAgIH06ICRUb29sdGlwUHJvcHM8YW55PiA9IHR5cGVvZiAkdG9vbHRpcCA9PT0gXCJzdHJpbmdcIiA/IHsgY29udGVudFRleHQ6ICR0b29sdGlwIH0gOiAkdG9vbHRpcDtcblxuICAgIHJldHVybiB7XG4gICAgICAkdG9vbHRpcDogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBUb29sdGlwV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICB0b29sdGlwOiB7IGNvbnRlbnRUZXh0LCBDb250ZW50LCBjb250ZW50UHJvcHMsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCB0b29sdGlwRGVsYXlJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJ0b29sdGlwLWRlbGF5XCIsXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IDUwMCxcbn0pO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudG9vbHRpcC1tb2R1bGVfX3Rvb2x0aXBfX192YU9BdSB7XFxuICB6LWluZGV4OiAxMDAwMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XFxuICBtYXgtd2lkdGg6IDYwMHB4O1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLnRvb2x0aXAtbW9kdWxlX190b29sdGlwX19fdmFPQXU6cG9wb3Zlci1vcGVuIHtcXG4gIGluc2V0OiBhdXRvO1xcbiAgbWFyZ2luOiAwO1xcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0b29sdGlwXCI6XCJ0b29sdGlwLW1vZHVsZV9fdG9vbHRpcF9fX3ZhT0F1XCJ9OyIsICJpbXBvcnQgeyBnZXRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBvYnNlcnZlciB9IGZyb20gXCJtb2J4LXJlYWN0XCI7XG5pbXBvcnQgeyBhYnNvbHV0ZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5pbXBvcnQgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB7IGJvcmRlclBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB7IGZvbnRQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9mb250L2ZvbnRcIjtcbmltcG9ydCB7IGJveFNoYWRvd1BsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvd1wiO1xuaW1wb3J0IHsgbm9Qb2ludGVyRXZlbnRzUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHNcIjtcbmltcG9ydCB7IHJlZlBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL3JlZi9yZWZcIjtcbmltcG9ydCB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgcmVsYXRpdmVQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9yZWxhdGl2ZS9yZWxhdGl2ZVwiO1xuaW1wb3J0IHsgaG92ZXJhYmxlUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZVwiO1xuXG5jb25zdCBwbHVnaW5zID0gW1xuICBwYWRkaW5nUGx1Z2luLFxuICBib3hTaGFkb3dQbHVnaW4sXG4gIGJvcmRlclBsdWdpbixcbiAgZm9udFBsdWdpbixcbiAgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICBub1BvaW50ZXJFdmVudHNQbHVnaW4sXG4gIHJlbGF0aXZlUGx1Z2luLFxuICBhYnNvbHV0ZVBsdWdpbixcbiAgY2xhc3NOYW1lUGx1Z2luLFxuXTtcblxuY29uc3QgZ2V0VHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbaG92ZXJhYmxlUGx1Z2luPFQ+KCksIHJlZlBsdWdpbjxUPigpXTtcblxuZXhwb3J0IGNvbnN0IE1pbmltYWxEaXYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnBsdWdpbnMsIC4uLmdldFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBNaW5pbWFsRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTWluaW1hbERpdj47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBhYnNvbHV0ZVN0eWxlcyBmcm9tIFwiLi9hYnNvbHV0ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBvc2l0aW9uID1cbiAgfCBcImFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCJcbiAgfCBcImFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlclwiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBsdWdpblByb3BzID0geyAkYWJzb2x1dGU/OiBBYnNvbHV0ZVBvc2l0aW9uIHwgYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYWJzb2x1dGVQbHVnaW4gPSBnZXRQbHVnaW48QWJzb2x1dGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtcbiAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIHsgW2Fic29sdXRlU3R5bGVzLmFic29sdXRlXTogISFwcm9wcy4kYWJzb2x1dGUgfSxcbiAgICB0eXBlb2YgcHJvcHMuJGFic29sdXRlID09PSBcInN0cmluZ1wiID8gYWJzb2x1dGVTdHlsZXNbYGFic29sdXRlLS0ke3Byb3BzLiRhYnNvbHV0ZX1gXSA6IHVuZGVmaW5lZCxcbiAgXSxcblxuICAkYWJzb2x1dGU6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodF9fX2xKMHByIHtcXG4gIGxlZnQ6IDEwMCU7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0X19fM2cwc0Qge1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMTAwJTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzgge1xcbiAgbGVmdDogMTAwJTtcXG4gIGJvdHRvbTogMTAwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4uYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZS0tYWJzb2x1dGUtYm90dG9tLXRvLXJlbGF0aXZlLWJvdHRvbV9fX0NsbTBtIHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1IHtcXG4gIGxlZnQ6IDUwJTtcXG4gIHRvcDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhYnNvbHV0ZVwiOlwiYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWxlZnQtdG8tcmVsYXRpdmUtY2VudGVyLXJpZ2h0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1jZW50ZXItbGVmdC10by1yZWxhdGl2ZS1jZW50ZXItcmlnaHRfX19sSjBwclwiLFwiYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdF9fXzNnMHNEXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWNlbnRlci10by1yZWxhdGl2ZS1ib3R0b20tcmlnaHRcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzhcIixcImFic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tX19fQ2xtMG1cIixcImFic29sdXRlLS1hYnNvbHV0ZS10b3AtY2VudGVyLXRvLXJlbGF0aXZlLXRvcC1jZW50ZXJcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1XCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHBhZGRpbmdTdHlsZXMgZnJvbSBcIi4vcGFkZGluZy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBEaXJlY3Rpb25hbFBhZGRpbmcgPSB7XG4gIHRvcD86IFRTaGlydFNpemU7XG4gIGJvdHRvbT86IFRTaGlydFNpemU7XG4gIGxlZnQ/OiBUU2hpcnRTaXplO1xuICByaWdodD86IFRTaGlydFNpemU7XG4gIGhvcml6b250YWw/OiBUU2hpcnRTaXplO1xuICB2ZXJ0aWNhbD86IFRTaGlydFNpemU7XG59O1xuXG5leHBvcnQgdHlwZSBQYWRkaW5nUGx1Z2luUHJvcHMgPSB7ICRwYWRkaW5nPzogYm9vbGVhbiB8IERpcmVjdGlvbmFsUGFkZGluZyB8IFRTaGlydFNpemUgfTtcblxuZXhwb3J0IGNvbnN0IHBhZGRpbmdQbHVnaW4gPSBnZXRQbHVnaW48UGFkZGluZ1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRwYWRkaW5nKSB7XG4gICAgcmV0dXJuIHsgJHBhZGRpbmc6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgcGFkZGluZyA9IHByb3BzLiRwYWRkaW5nID09PSB0cnVlID8gXCJ4c1wiIDogcHJvcHMuJHBhZGRpbmc7XG5cbiAgaWYgKGlzU3RyaW5nKHBhZGRpbmcpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwYWRkaW5nU3R5bGVzW2BwYWRkaW5nLS0ke3BhZGRpbmd9YF1dLFxuICAgICAgJHBhZGRpbmc6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdG9wU2l6ZSA9IHBhZGRpbmcudG9wIHx8IHBhZGRpbmcudmVydGljYWw7XG4gIGNvbnN0IGJvdHRvbVNpemUgPSBwYWRkaW5nLmJvdHRvbSB8fCBwYWRkaW5nLnZlcnRpY2FsO1xuICBjb25zdCByaWdodFNpemUgPSBwYWRkaW5nLnJpZ2h0IHx8IHBhZGRpbmcuaG9yaXpvbnRhbDtcbiAgY29uc3QgbGVmdFNpemUgPSBwYWRkaW5nLmxlZnQgfHwgcGFkZGluZy5ob3Jpem9udGFsO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJ0b3BcIiwgdG9wU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwicmlnaHRcIiwgcmlnaHRTaXplKSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJib3R0b21cIiwgYm90dG9tU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwibGVmdFwiLCBsZWZ0U2l6ZSksXG4gICAgXSxcblxuICAgICRwYWRkaW5nOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3Qgc2lkZUNsYXNzTmFtZSA9IChzaWRlOiBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiLCBzaXplOiBUU2hpcnRTaXplIHwgdW5kZWZpbmVkKSA9PlxuICBzaXplID8gcGFkZGluZ1N0eWxlc1tgcGFkZGluZ19fJHtzaWRlfS0tJHtzaXplfWBdIDogdW5kZWZpbmVkO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzXCIsIGNzczogXCIucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0temVyb19fX2dxcWZaIHtcXG4gIHBhZGRpbmctdG9wOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5cyB7XFxuICBwYWRkaW5nLXRvcDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tM3hzX19fb2NjNE4ge1xcbiAgcGFkZGluZy10b3A6IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXh4c19fX043QnNsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14c19fX0wwVUREIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1zX19fa2xRZTIge1xcbiAgcGFkZGluZy10b3A6IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1tX19fY3RhNXQge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHEge1xcbiAgcGFkZGluZy10b3A6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14bF9fX1h2c3ZMIHtcXG4gIHBhZGRpbmctdG9wOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhsX19fMWtlb2Uge1xcbiAgcGFkZGluZy10b3A6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0zeGxfX19jVVBzOSB7XFxuICBwYWRkaW5nLXRvcDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTR4bF9fX3FpazJlIHtcXG4gIHBhZGRpbmctdG9wOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNXhsX19fczlrcFEge1xcbiAgcGFkZGluZy10b3A6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS02eGxfX19xYzNGWiB7XFxuICBwYWRkaW5nLXRvcDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTd4bF9fX3RhQy1QIHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tOHhsX19fTFdoanEge1xcbiAgcGFkZGluZy10b3A6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS05eGxfX19MMTNjcCB7XFxuICBwYWRkaW5nLXRvcDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5QyB7XFxuICBwYWRkaW5nLXRvcDogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTExeGxfX19IdHRTYyB7XFxuICBwYWRkaW5nLXRvcDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0temVyb19fXzZ2WWJUIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhzX19faGpPOEQge1xcbiAgcGFkZGluZy1yaWdodDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3RyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4c19fX0ZuM09oIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHNfX19rcHNRUCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEViB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1tX19feEdkdHUge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbF9fX015eWM0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhsX19fLUdHakoge1xcbiAgcGFkZGluZy1yaWdodDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHhsX19fMHlORVoge1xcbiAgcGFkZGluZy1yaWdodDogMjhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tM3hsX19fYmJPUEMge1xcbiAgcGFkZGluZy1yaWdodDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhsX19fdkFaRVUge1xcbiAgcGFkZGluZy1yaWdodDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNXhsX19fcHNOaGIge1xcbiAgcGFkZGluZy1yaWdodDogNDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNnhsX19fSnd3a1Ige1xcbiAgcGFkZGluZy1yaWdodDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tN3hsX19fZ29tdzkge1xcbiAgcGFkZGluZy1yaWdodDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOHhsX19fVmh2Vloge1xcbiAgcGFkZGluZy1yaWdodDogNTJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOXhsX19fNE9CTm4ge1xcbiAgcGFkZGluZy1yaWdodDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tMTB4bF9fX2VPVUEzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0temVyb19fX0ZTOTg0IHtcXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tM3hzX19fZTVya1kge1xcbiAgcGFkZGluZy1ib3R0b206IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXh4c19fX3hRdlZ2IHtcXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14c19fX29jeWkwIHtcXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1zX19fNkliblYge1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1tX19fZ3hCMk0ge1xcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzcge1xcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14bF9fX3RMQW96IHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhsX19fZzM1Qi0ge1xcbiAgcGFkZGluZy1ib3R0b206IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0zeGxfX19BejhraSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTR4bF9fX2tiUy1SIHtcXG4gIHBhZGRpbmctYm90dG9tOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNXhsX19fd2psT28ge1xcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS02eGxfX19JRHhSTCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTd4bF9fX0hxRm1pIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tOHhsX19fdUxOZUIge1xcbiAgcGFkZGluZy1ib3R0b206IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS05eGxfX19rWGpmLSB7XFxuICBwYWRkaW5nLWJvdHRvbTogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTExeGxfX19MUi1tcyB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1kge1xcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNHhzX19fMDg5MDgge1xcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hzX19fZmVDMC0ge1xcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkoge1xcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS1zX19fa3NpZ3Ige1xcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tbF9fX2tHZ3huIHtcXG4gIHBhZGRpbmctbGVmdDogMjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhYyB7XFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmIge1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuIHtcXG4gIHBhZGRpbmctbGVmdDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUEge1xcbiAgcGFkZGluZy1sZWZ0OiA0NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoIHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OSB7XFxuICBwYWRkaW5nLWxlZnQ6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTAge1xcbiAgcGFkZGluZy1sZWZ0OiA1NnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTEweGxfX19Qd0RTViB7XFxuICBwYWRkaW5nLWxlZnQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tMTF4bF9fXzJIc3ZKIHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnAge1xcbiAgcGFkZGluZzogMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCIHtcXG4gIHBhZGRpbmc6IDFweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdSB7XFxuICBwYWRkaW5nOiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0oge1xcbiAgcGFkZGluZzogNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhzX19fUXdoYUIge1xcbiAgcGFkZGluZzogOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLSB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYSB7XFxuICBwYWRkaW5nOiAxNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMayB7XFxuICBwYWRkaW5nOiAyMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhsX19fY3VQYU4ge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSCB7XFxuICBwYWRkaW5nOiAyOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTN4bF9fX2t2aXJUIHtcXG4gIHBhZGRpbmc6IDMycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNHhsX19feTE3QTAge1xcbiAgcGFkZGluZzogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOSB7XFxuICBwYWRkaW5nOiA0MHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTZ4bF9fXzJLQ21hIHtcXG4gIHBhZGRpbmc6IDQ0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tN3hsX19fU3NJeG4ge1xcbiAgcGFkZGluZzogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbSB7XFxuICBwYWRkaW5nOiA1MnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTl4bF9fX29WY0lnIHtcXG4gIHBhZGRpbmc6IDU2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTB4bF9fX2pLR2tuIHtcXG4gIHBhZGRpbmc6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTF4bF9fX0FnSnJHIHtcXG4gIHBhZGRpbmc6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wicGFkZGluZ19fdG9wLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS16ZXJvX19fZ3FxZlpcIixcInBhZGRpbmdfX3RvcC0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5c1wiLFwicGFkZGluZ19fdG9wLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4c19fX29jYzROXCIsXCJwYWRkaW5nX190b3AtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhzX19fTjdCc2xcIixcInBhZGRpbmdfX3RvcC0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhzX19fTDBVRERcIixcInBhZGRpbmdfX3RvcC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tc19fX2tsUWUyXCIsXCJwYWRkaW5nX190b3AtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLW1fX19jdGE1dFwiLFwicGFkZGluZ19fdG9wLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHFcIixcInBhZGRpbmdfX3RvcC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhsX19fWHZzdkxcIixcInBhZGRpbmdfX3RvcC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14eGxfX18xa2VvZVwiLFwicGFkZGluZ19fdG9wLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4bF9fX2NVUHM5XCIsXCJwYWRkaW5nX190b3AtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNHhsX19fcWlrMmVcIixcInBhZGRpbmdfX3RvcC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS01eGxfX19zOWtwUVwiLFwicGFkZGluZ19fdG9wLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTZ4bF9fX3FjM0ZaXCIsXCJwYWRkaW5nX190b3AtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tN3hsX19fdGFDLVBcIixcInBhZGRpbmdfX3RvcC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS04eGxfX19MV2hqcVwiLFwicGFkZGluZ19fdG9wLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTl4bF9fX0wxM2NwXCIsXCJwYWRkaW5nX190b3AtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5Q1wiLFwicGFkZGluZ19fdG9wLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0xMXhsX19fSHR0U2NcIixcInBhZGRpbmdfX3JpZ2h0LS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXplcm9fX182dlliVFwiLFwicGFkZGluZ19fcmlnaHQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS00eHNfX19oak84RFwiLFwicGFkZGluZ19fcmlnaHQtLTN4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3R1wiLFwicGFkZGluZ19fcmlnaHQtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14eHNfX19GbjNPaFwiLFwicGFkZGluZ19fcmlnaHQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhzX19fa3BzUVBcIixcInBhZGRpbmdfX3JpZ2h0LS1zXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEVlwiLFwicGFkZGluZ19fcmlnaHQtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbV9fX3hHZHR1XCIsXCJwYWRkaW5nX19yaWdodC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1sX19fTXl5YzRcIixcInBhZGRpbmdfX3JpZ2h0LS14bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14bF9fXy1HR2pKXCIsXCJwYWRkaW5nX19yaWdodC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4bF9fXzB5TkVaXCIsXCJwYWRkaW5nX19yaWdodC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTN4bF9fX2JiT1BDXCIsXCJwYWRkaW5nX19yaWdodC0tNHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTR4bF9fX3ZBWkVVXCIsXCJwYWRkaW5nX19yaWdodC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTV4bF9fX3BzTmhiXCIsXCJwYWRkaW5nX19yaWdodC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTZ4bF9fX0p3d2tSXCIsXCJwYWRkaW5nX19yaWdodC0tN3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTd4bF9fX2dvbXc5XCIsXCJwYWRkaW5nX19yaWdodC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTh4bF9fX1ZodlZaXCIsXCJwYWRkaW5nX19yaWdodC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTl4bF9fXzRPQk5uXCIsXCJwYWRkaW5nX19yaWdodC0tMTB4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0xMHhsX19fZU9VQTNcIixcInBhZGRpbmdfX3JpZ2h0LS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZ1wiLFwicGFkZGluZ19fYm90dG9tLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS16ZXJvX19fRlM5ODRcIixcInBhZGRpbmdfX2JvdHRvbS0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeFwiLFwicGFkZGluZ19fYm90dG9tLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4c19fX2U1cmtZXCIsXCJwYWRkaW5nX19ib3R0b20tLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhzX19feFF2VnZcIixcInBhZGRpbmdfX2JvdHRvbS0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhzX19fb2N5aTBcIixcInBhZGRpbmdfX2JvdHRvbS0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tc19fXzZJYm5WXCIsXCJwYWRkaW5nX19ib3R0b20tLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLW1fX19neEIyTVwiLFwicGFkZGluZ19fYm90dG9tLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzdcIixcInBhZGRpbmdfX2JvdHRvbS0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhsX19fdExBb3pcIixcInBhZGRpbmdfX2JvdHRvbS0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14eGxfX19nMzVCLVwiLFwicGFkZGluZ19fYm90dG9tLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4bF9fX0F6OGtpXCIsXCJwYWRkaW5nX19ib3R0b20tLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNHhsX19fa2JTLVJcIixcInBhZGRpbmdfX2JvdHRvbS0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS01eGxfX193amxPb1wiLFwicGFkZGluZ19fYm90dG9tLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTZ4bF9fX0lEeFJMXCIsXCJwYWRkaW5nX19ib3R0b20tLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tN3hsX19fSHFGbWlcIixcInBhZGRpbmdfX2JvdHRvbS0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS04eGxfX191TE5lQlwiLFwicGFkZGluZ19fYm90dG9tLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTl4bF9fX2tYamYtXCIsXCJwYWRkaW5nX19ib3R0b20tLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeFwiLFwicGFkZGluZ19fYm90dG9tLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0xMXhsX19fTFItbXNcIixcInBhZGRpbmdfX2xlZnQtLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1lcIixcInBhZGRpbmdfX2xlZnQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4c19fXzA4OTA4XCIsXCJwYWRkaW5nX19sZWZ0LS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0zeHNfX19mZUMwLVwiLFwicGFkZGluZ19fbGVmdC0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkpcIixcInBhZGRpbmdfX2xlZnQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WFwiLFwicGFkZGluZ19fbGVmdC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLXNfX19rc2lnclwiLFwicGFkZGluZ19fbGVmdC0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbFwiLFwicGFkZGluZ19fbGVmdC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLWxfX19rR2d4blwiLFwicGFkZGluZ19fbGVmdC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JXCIsXCJwYWRkaW5nX19sZWZ0LS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhY1wiLFwicGFkZGluZ19fbGVmdC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmJcIixcInBhZGRpbmdfX2xlZnQtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuXCIsXCJwYWRkaW5nX19sZWZ0LS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUFwiLFwicGFkZGluZ19fbGVmdC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUFcIixcInBhZGRpbmdfX2xlZnQtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoXCIsXCJwYWRkaW5nX19sZWZ0LS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OVwiLFwicGFkZGluZ19fbGVmdC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTBcIixcInBhZGRpbmdfX2xlZnQtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMHhsX19fUHdEU1ZcIixcInBhZGRpbmdfX2xlZnQtLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMXhsX19fMkhzdkpcIixcInBhZGRpbmctLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnBcIixcInBhZGRpbmctLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCXCIsXCJwYWRkaW5nLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdVwiLFwicGFkZGluZy0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0pcIixcInBhZGRpbmctLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHNfX19Rd2hhQlwiLFwicGFkZGluZy0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLVwiLFwicGFkZGluZy0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYVwiLFwicGFkZGluZy0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMa1wiLFwicGFkZGluZy0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14bF9fX2N1UGFOXCIsXCJwYWRkaW5nLS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSFwiLFwicGFkZGluZy0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tM3hsX19fa3ZpclRcIixcInBhZGRpbmctLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4bF9fX3kxN0EwXCIsXCJwYWRkaW5nLS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOVwiLFwicGFkZGluZy0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNnhsX19fMktDbWFcIixcInBhZGRpbmctLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTd4bF9fX1NzSXhuXCIsXCJwYWRkaW5nLS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbVwiLFwicGFkZGluZy0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tOXhsX19fb1ZjSWdcIixcInBhZGRpbmctLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMHhsX19faktHa25cIixcInBhZGRpbmctLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMXhsX19fQWdKckdcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgYmFja2dyb3VuZENvbG9yU3R5bGVzIGZyb20gXCIuL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yQWxpYXMgPSBrZXlvZiB0eXBlb2YgYWxpYXNUb05vbWluYWw7XG5leHBvcnQgdHlwZSBCYWNrZ3JvdW5kQ29sb3IgPSBDb2xvciB8IEJhY2tncm91bmRDb2xvckFsaWFzO1xuXG5leHBvcnQgdHlwZSAkQmFja2dyb3VuZENvbG9yUHJvcHMgPSB7XG4gIG5vcm1hbD86IEJhY2tncm91bmRDb2xvcjtcbiAgaG92ZXI/OiBCYWNrZ3JvdW5kQ29sb3I7XG4gIGZvY3VzPzogQmFja2dyb3VuZENvbG9yO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMgPSB7ICRiYWNrZ3JvdW5kQ29sb3I/OiBCYWNrZ3JvdW5kQ29sb3IgfCAkQmFja2dyb3VuZENvbG9yUHJvcHMgfTtcblxuY29uc3QgYWxpYXNUb05vbWluYWwgPSB7XG4gIGJhY2tncm91bmRQcmltYXJ5OiBcImdyZXk4MFwiLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiBcImdyZXkxMDBcIixcbiAgYmFja2dyb3VuZFByaW1hcnlEaW1tZWQ6IFwiZ3JleTgwQWxwaGE4NVwiLFxufSBhcyBjb25zdDtcblxuY29uc3QgaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyA9IChjb2xvcjogQmFja2dyb3VuZENvbG9yKTogY29sb3IgaXMgQmFja2dyb3VuZENvbG9yQWxpYXMgPT4gY29sb3IgaW4gYWxpYXNUb05vbWluYWw7XG5cbmV4cG9ydCBjb25zdCBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gPSBnZXRQbHVnaW48QmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGJhY2tncm91bmRDb2xvcjogY29sb3IgfSA9IHByb3BzO1xuICBjb25zdCB7IG5vcm1hbCwgaG92ZXIsIGZvY3VzIH0gPSB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IG5vcm1hbDogY29sb3IgfSA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgPyAoaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyhub3JtYWwpID8gYWxpYXNUb05vbWluYWxbbm9ybWFsXSA6IG5vcm1hbCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGhvdmVyQ29sb3IgPSBob3ZlciA/IChpc0JhY2tncm91bmRDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZm9jdXNDb2xvciA9IGZvY3VzID8gKGlzQmFja2dyb3VuZENvbG9yQWxpYXMoZm9jdXMpID8gYWxpYXNUb05vbWluYWxbZm9jdXNdIDogZm9jdXMpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIG5vcm1hbENvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItLSR7bm9ybWFsQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBob3ZlckNvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLSR7aG92ZXJDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGZvY3VzQ29sb3IgPyBiYWNrZ3JvdW5kQ29sb3JTdHlsZXNbYGJhY2tncm91bmRDb2xvci1mb2N1cy0tJHtmb2N1c0NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJGJhY2tncm91bmRDb2xvcjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS10cmFuc3BhcmVudF9fX1ZkdC1ZIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk2MF9fX1BQQVNsIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NDBfX193RkJhbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyNV9fX1lFOFFmIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjBfX182MDBqUSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk3MF9fX1YtWkdMIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1wcmltYXJ5X19fT0huckwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1hY2NlbnRfX19kdDQ3ZiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NfX19XVVIzeSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLW5vdGljZV9fX2xWTlJkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nX19fQXJWdmwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50X19fMlVQM1kge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ1RpbnRfX19xd0YwOCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbFRpbnRfX19pSy1qbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY29kZV9fX0VtLWJKIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0taW5oZXJpdF9fX215MlJxOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13aGl0ZV9fX3RlLWdwOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX18xRDJJajpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMDBfX18tSkh1Mjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MF9fX3otODVJOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZMzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTQwX19fM0EtZTY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMF9fXzctQ0ZqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTIwX19fb01BY0Q6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMF9fX2dSMTkzOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwQWxwaGE4NV9fX0Nkay0tOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVE6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzX19fRzMwVkg6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ub3RpY2VfX19qV0ZjQzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxfX19yNmJaSTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fWGk2MkY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm86aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWxpbmtfX19YOUxGcTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWluaGVyaXRfX19SSlBXSjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVfX194Rjh1Mzpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXg6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTAwX19feHQxeEw6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBfX19lMjhqajpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwX19fd3REd1Q6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MzBfX19aVnZENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1X19fQXNWNmY6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTBfX19tYWl6Zjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwX19fdlJuTDI6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19WaHl1Tjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXByaW1hcnlfX183VHprdTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudF9fX210REdPOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjE6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdfX19xbG4ydTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsX19fUGdESTU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRfX19jcS1ENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fX2VKOU5oOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1saW5rX19fVGxSUlk6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jb2RlX19fZmE2NVU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYmFja2dyb3VuZENvbG9yLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFlcIixcImJhY2tncm91bmRDb2xvci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHVcIixcImJhY2tncm91bmRDb2xvci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXRyYW5zcGFyZW50X19fVmR0LVlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHVcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NjBfX19QUEFTbFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk0MF9fX3dGQmFsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVRcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjVfX19ZRThRZlwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyMF9fXzYwMGpRXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NzBfX19WLVpHTFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDNcIixcImJhY2tncm91bmRDb2xvci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tcHJpbWFyeV9fX09IbnJMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tYWNjZW50X19fZHQ0N2ZcIixcImJhY2tncm91bmRDb2xvci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tc3VjY2Vzc19fX1dVUjN5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbm90aWNlX19fbFZOUmRcIixcImJhY2tncm91bmRDb2xvci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ19fX0FyVnZsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1zdWNjZXNzVGludF9fXzJVUDNZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nVGludF9fX3F3RjA4XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY3JpdGljYWxUaW50X19faUstamxcIixcImJhY2tncm91bmRDb2xvci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWNvZGVfX19FbS1iSlwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0X19fbXkyUnFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdoaXRlX19fdGUtZ3BcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXRyYW5zcGFyZW50X19fMUQySWpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMF9fXy1KSHUyXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwX19fei04NUlcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZM1wiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk0MF9fXzNBLWU2XCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTMwX19fNy1DRmpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkyMF9fX29NQWNEXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwX19fZ1IxOTNcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fQ2RrLS1cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc19fX0czMFZIXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbm90aWNlX19faldGY0NcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1jcml0aWNhbF9fX3I2YlpJXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13YXJuaW5nVGludF9fX1hpNjJGXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm9cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua19fX1g5TEZxXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZ1wiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0X19fUkpQV0pcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdoaXRlX19feEY4dTNcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMF9fX3h0MXhMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTgwX19fZTI4ampcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NjBfX193dER3VFwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTMwX19fWlZ2RDVcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjVfX19Bc1Y2ZlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwX19fbWFpemZcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NzBfX192Um5MMlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1X19fVmh5dU5cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeV9fXzdUemt1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tYWNjZW50X19fbXRER09cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjFcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ19fX3FsbjJ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jcml0aWNhbF9fX1BnREk1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1zdWNjZXNzVGludF9fX2NxLUQ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tY3JpdGljYWxUaW50X19fZUo5TmhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua19fX1RsUlJZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVfX19mYTY1VVwifTsiLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlcldpZHRoIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHR5cGUgQ29ybmVyU3R5bGVzLCBnZXRDb3JuZXJTdHlsZXMgfSBmcm9tIFwiLi9nZXQtY29ybmVyLXN0eWxlc1wiO1xuaW1wb3J0IHsgZ2V0U2lkZVN0eWxlcywgdHlwZSBTaWRlU3R5bGVzIH0gZnJvbSBcIi4vZ2V0LXNpZGUtc3R5bGVzXCI7XG5pbXBvcnQgeyBjb21wYWN0IH0gZnJvbSBcImxvZGFzaC9mcFwiO1xuXG5leHBvcnQgdHlwZSBCb3JkZXJDb2xvckFsaWFzID0ga2V5b2YgdHlwZW9mIGFsaWFzVG9Ob21pbmFsO1xuZXhwb3J0IHR5cGUgQm9yZGVyQ29sb3IgPSBDb2xvciB8IEJvcmRlckNvbG9yQWxpYXM7XG5cbmNvbnN0IGFsaWFzVG9Ob21pbmFsID0geyBib3JkZXJQcmltYXJ5OiBcImdyZXk2MFwiIH0gYXMgY29uc3Q7XG5cbmNvbnN0IGlzQm9yZGVyQ29sb3JBbGlhcyA9IChjb2xvcjogQm9yZGVyQ29sb3IpOiBjb2xvciBpcyBCb3JkZXJDb2xvckFsaWFzID0+IGNvbG9yIGluIGFsaWFzVG9Ob21pbmFsO1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyQ29sb3JQcm9wcyA9IHtcbiAgcmVhZG9ubHkgbm9ybWFsPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGhvdmVyPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGRpc2FibGVkPzogQm9yZGVyQ29sb3I7XG59O1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyUHJvcHMgPSB7XG4gIGNvbG9yPzogQm9yZGVyQ29sb3IgfCAkQm9yZGVyQ29sb3JQcm9wcztcbiAgd2lkdGg/OiBCb3JkZXJXaWR0aCB8IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMZWF2ZSB0aGUgbGFzdCBvZiB0aGUgZWxlbWVudCdzIHNpYmxpbmdzIHdpdGhvdXQgdGhlIGJvcmRlciwgc28gdGhhdCBhIHN0YWNrXG4gICAqIG9mIGJvcmRlcmVkIHJvd3MgcmVhZHMgYXMgcm93cyBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIHJhdGhlciB0aGFuIGZyYW1lZC5cbiAgICovXG4gIGV4Y2VwdExhc3Q/OiBib29sZWFuO1xufSAmIFNpZGVTdHlsZXMgJlxuICBDb3JuZXJTdHlsZXM7XG5cbmV4cG9ydCB0eXBlIEJvcmRlclBsdWdpblByb3BzID0geyAkYm9yZGVyPzogJEJvcmRlclByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBib3JkZXJQbHVnaW4gPSBnZXRQbHVnaW48Qm9yZGVyUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJvcmRlcikge1xuICAgIHJldHVybiB7ICRib3JkZXI6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0Q29ybmVyU3R5bGVzKHByb3BzLiRib3JkZXIpLCBnZXRCb3JkZXJTdHlsZXMocHJvcHMuJGJvcmRlcildLFxuICAgICRib3JkZXI6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBnZXRCb3JkZXJTdHlsZXMgPSAoeyB3aWR0aCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBjb2xvciwgZXhjZXB0TGFzdCB9OiAkQm9yZGVyUHJvcHMpID0+IHtcbiAgY29uc3QgYm9yZGVyV2lkdGggPSB3aWR0aCA9PT0gdHJ1ZSB8fCAod2lkdGggPT09IHVuZGVmaW5lZCAmJiBjb2xvcikgPyBcInh4c1wiIDogd2lkdGg7XG4gIGNvbnN0IHsgbm9ybWFsLCBob3ZlciwgZGlzYWJsZWQgfSA9XG4gICAgYm9yZGVyV2lkdGggJiYgY29sb3IgPT09IHVuZGVmaW5lZFxuICAgICAgPyB7IG5vcm1hbDogXCJib3JkZXJQcmltYXJ5XCIgYXMgY29uc3QgfVxuICAgICAgOiB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyB7IG5vcm1hbDogY29sb3IgfVxuICAgICAgICA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgJiYgaXNCb3JkZXJDb2xvckFsaWFzKG5vcm1hbCkgPyBhbGlhc1RvTm9taW5hbFtub3JtYWxdIDogbm9ybWFsO1xuICBjb25zdCBob3ZlckNvbG9yID0gaG92ZXIgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyO1xuICBjb25zdCBkaXNhYmxlZENvbG9yID0gZGlzYWJsZWQgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGRpc2FibGVkKSA/IGFsaWFzVG9Ob21pbmFsW2Rpc2FibGVkXSA6IGRpc2FibGVkO1xuXG4gIGNvbnN0IHN0eWxlQ2xhc3NlcyA9IGNvbXBhY3QoW1xuICAgIGJvcmRlcldpZHRoID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3dpZHRoLS0ke2JvcmRlcldpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIG5vcm1hbENvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX2NvbG9yLS0ke25vcm1hbENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIGhvdmVyQ29sb3IgPyBib3JkZXJTdHlsZXNbYGJvcmRlcl9fY29sb3ItLSR7aG92ZXJDb2xvcn0tLWhvdmVyYF0gOiB1bmRlZmluZWQsXG4gICAgZGlzYWJsZWRDb2xvciA/IGJvcmRlclN0eWxlc1tgYm9yZGVyX19jb2xvci0tJHtkaXNhYmxlZENvbG9yfS0tZGlzYWJsZWRgXSA6IHVuZGVmaW5lZCxcbiAgICAuLi5nZXRTaWRlU3R5bGVzKHsgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wIH0pLFxuICAgIGV4Y2VwdExhc3QgPyBib3JkZXJTdHlsZXNbXCJib3JkZXItLWV4Y2VwdC1sYXN0XCJdIDogdW5kZWZpbmVkLFxuICBdKTtcblxuICByZXR1cm4gW3N0eWxlQ2xhc3Nlcywgc3R5bGVDbGFzc2VzLmxlbmd0aCA+IDAgJiYgYm9yZGVyU3R5bGVzW1wiYm9yZGVyX19zdHlsZS0tc29saWRcIl1dO1xufTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JvcmRlci9ib3JkZXIubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3N0eWxlLS1zb2xpZF9fXzFReTFKIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDIHtcXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1zX19fdmxtdWwge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1fX19Fb0h2aiB7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbWxfX19rc0tQZSB7XFxuICBib3JkZXItcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54IHtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tNTBfX19FYzVjYyB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tZnVsbF9fX2YwT2tMIHtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXplcm9fX191TGNPMiB7XFxuICBib3JkZXItd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5IHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSSB7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXNfX194OU5VaiB7XFxuICBib3JkZXItd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLW1fX19DRjhDRSB7XFxuICBib3JkZXItd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NSB7XFxuICBib3JkZXItd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE4ge1xcbiAgYm9yZGVyLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS14eGxfX18tZHJnUCB7XFxuICBib3JkZXItd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS0zeGxfX19kcW1pRiB7XFxuICBib3JkZXItd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS00eGxfX19iRUw5MCB7XFxuICBib3JkZXItd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS01eGxfX196ajFWWCB7XFxuICBib3JkZXItd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0X19fRTJNU3Mge1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJfX19XeW5CUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlX19fZ1Qyb2cge1xcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlLS1ob3Zlcl9fX1FkcFZiOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYSzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRfX19zd2FtSCB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXo6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZF9fX3NpRHJ5OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwX19fdjVsODMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkX19fUWpLUlI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0taG92ZXJfX19DcHBsVjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWRpc2FibGVkX19fLThQS2w6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwX19fUDlKTUgge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk2MC0tZGlzYWJsZWRfX19nY1ZkRDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDBfX19mNlNEdyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDAtLWhvdmVyX19fVUhkSXI6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0taG92ZXJfX19WTkRTUjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWRpc2FibGVkX19fcHlKT3E6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1X19fc25WbmQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyNS0tZGlzYWJsZWRfX19vbVBKUDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjBfX19nYm4zWiB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjAtLWhvdmVyX19feFJzd2M6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0taG92ZXJfX19VWmgtZDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWRpc2FibGVkX19fOVotT1Q6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwX19feXI5aU0ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk3MC0tZGlzYWJsZWRfX19Td1JRaTpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fNkRiZFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkX19feVA0Ty06ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXByaW1hcnlfX19nZnhCTyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0taG92ZXJfX19wdUhEcDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzRzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50X19fZS1IbEQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWFjY2VudC0taG92ZXJfX19TMm9WRTpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1kaXNhYmxlZF9fX3kzQmJiOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzX19fWnVybFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk06aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkX19fVFAzUnY6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0taG92ZXJfX19NSlFVaDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWRpc2FibGVkX19feVZ1aTI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3Zlcl9fX21Bb1NCOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1kaXNhYmxlZF9fX1djQUstOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWwtLWhvdmVyX19fdU1GamE6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRfX19LOWdsNzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUFNSTW4ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZzpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50LS1kaXNhYmxlZF9fX1drT3BBOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRfX19JVFdtTSB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3Zlcl9fX0pjLU5uOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm86ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19PUXV4dCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnQtLWhvdmVyX19fbFdhOUQ6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWxpbmtfX19pWWVGayB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0taG92ZXJfX180eVJKUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQjpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3Zlcl9fX1o1czVkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1kaXNhYmxlZF9fX3VEUVpNOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS16ZXJvX19fVktScS0ge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHhzX19fOHppN1Qge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHNfX19STkVLMiB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1zX19fYVZuMVcge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogM3B4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLWxfX18tb2VQUCB7XFxuICBib3JkZXItdG9wLXdpZHRoOiA2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6IHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS0zeGxfX181eEstLSB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAxMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tNHhsX19fcEVEdGMge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMTRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdoaXRlX19fdS11UWIge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudF9fX1BzTW14IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTgwX19fZUhqekYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBfX19IaXJnZiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTMwX19fQkJyQlEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBfX18xbHVwUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwX19fRTJHZlQge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1wcmltYXJ5X19fNTExamsge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NfX183OS11aiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1gge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUGEwTkcge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRfX18yZVVRVCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19ISkFvMiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tbGlua19fX0tZRkdLIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS16ZXJvX19fcmxESW4ge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4c19fXy16NzlhIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS1zX19fTXRZVDYge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAzcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLW1fX19TRDk3dyB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14bF9fXzA1bjAwIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eGxfX18tYUV3diB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTN4bF9fX0R1MFJvIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGsge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS01eGxfX19TcDQ4ayB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRfX185eVBlSSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmQge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwX19fYWFTbmEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWoge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NjBfX19vTlctVSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MF9fXzJKd2k5IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHgge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjVfX19RYkZVSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMF9fX2VzTVFNIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NzBfX190a3pBSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qNDVVTiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1wcmltYXJ5X19fSElrMkEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tYWNjZW50X19fV1gyTFMge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tc3VjY2Vzc19fX1JJd2FIIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLW5vdGljZV9fX3ZVTGFUIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ19fX1kyaVBpIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsX19fWG02dFEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fbTFudlkge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNvZGVfX19VQ2RNMCB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0temVyb19fX1BsQUJMIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXh4c19fX1pGbS1VIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXhzX19faER6U3Mge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tc19fX0lXdC11IHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItcyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1sX19fMEh2bDEge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0cyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tM3hsX19fR2pMWVUge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLTR4bF9fX0J2SldQIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZV9fX0RabWo2IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRfX19xa05nRiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eCB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXk4MF9fX3RuTWo1IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwbiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwX19fYzd1YzAge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkzMF9fX1k4NUM0IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwX19fdk8tbUoge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMF9fX0ZhLWh5IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrViB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tcHJpbWFyeV9fX0otcjVKIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVMge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzX19fZnhadlIge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzVGludF9fX0FzdnRjIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50X19fNE9QZk8ge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxUaW50X19feDJVTFEge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWxpbmtfX19SMlhEdSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS0ge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcCB7XFxuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXhzX19fejJYSUYge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmMge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1tX19fNGpQdTUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1sX19fbFBhUksge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14bF9fX01jLS1SIHtcXG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHhsX19fS1hPUloge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNHhsX19fY2RVbFcge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNXhsX19fN2w5SDAge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdF9fX3FkNGtEIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlX19fLXJ6czcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50X19fdVVVRXgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBfX19RRGJWMiB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwX19fN2hWeTgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTYwX19fcTlUczIge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTMwX19faXRVVXMge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTI1X19fejlFZ0Qge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTEwX19feXRaUE4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTcwX19fRW95Vlcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fXzJHSVcyIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHkge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWFjY2VudF9fXzFSUzByIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXUge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLW5vdGljZV9fX21oSkFuIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdfX191VjV0VyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxfX19BNkppTyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludF9fX043VWNUIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxUaW50X19fYS1mYUcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tbGlua19fX213Ukt3IHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jb2RlX19fdUpXRkgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0ViB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNfX192bzVlbCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1fX19HSUVjdCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1sX19fbUVjRHYge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1sX19fcmctRDAge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHcyB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxfX181Wkl2OCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXplcm9fX19POGRFMyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TCB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1fX19TbDVSUiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGIge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sX19fNTJKb2wge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBfX183LXdPRyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLXNfX196RklMMyB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1tX19fS05TY1Qge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxfX192dDd4MiB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1sX19fazhwaWsge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHUge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tZnVsbF9fX2VIajZzIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLXplcm9fX19QMVl0dyB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGUge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbV9fXzNMUlIwIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHcge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbF9fXzNzMkNKIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS01MF9fX3dOWXdRIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDUwJTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUiB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMDAwMDAwMDAwMDAwMDAwMDAwcHg7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXItLWV4Y2VwdC1sYXN0X19fMjJZc0I6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYm9yZGVyX19zdHlsZS0tc29saWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fc3R5bGUtLXNvbGlkX19fMVF5MUpcIixcImJvcmRlcl9fcmFkaXVzLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDXCIsXCJib3JkZXJfX3JhZGl1cy0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLXNfX192bG11bFwiLFwiYm9yZGVyX19yYWRpdXMtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1tX19fRW9IdmpcIixcImJvcmRlcl9fcmFkaXVzLS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1sX19fa3NLUGVcIixcImJvcmRlcl9fcmFkaXVzLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54XCIsXCJib3JkZXJfX3JhZGl1cy0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS01MF9fX0VjNWNjXCIsXCJib3JkZXJfX3JhZGl1cy0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLWZ1bGxfX19mME9rTFwiLFwiYm9yZGVyX193aWR0aC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0temVyb19fX3VMY08yXCIsXCJib3JkZXJfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5XCIsXCJib3JkZXJfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSVwiLFwiYm9yZGVyX193aWR0aC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tc19fX3g5TlVqXCIsXCJib3JkZXJfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS1tX19fQ0Y4Q0VcIixcImJvcmRlcl9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NVwiLFwiYm9yZGVyX193aWR0aC0teGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE5cIixcImJvcmRlcl9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHhsX19fLWRyZ1BcIixcImJvcmRlcl9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tM3hsX19fZHFtaUZcIixcImJvcmRlcl9fd2lkdGgtLTR4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNHhsX19fYkVMOTBcIixcImJvcmRlcl9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNXhsX19femoxVlhcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXRfX19FMk1Tc1wiLFwiYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXQtLWhvdmVyX19fV3luQlBcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFXCIsXCJib3JkZXJfX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2hpdGVfX19nVDJvZ1wiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0taG92ZXJfX19RZHBWYlwiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYS1wiLFwiYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50X19fc3dhbUhcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXpcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWRpc2FibGVkX19fc2lEcnlcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDBfX192NWw4M1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTEwMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1FcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwLS1kaXNhYmxlZF9fX1FqS1JSXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyX19fQ3BwbFZcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRfX18tOFBLbFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjBfX19QOUpNSFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkX19fZ2NWZERcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwX19fZjZTRHdcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJfX19VSGRJclwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1XCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyX19fVk5EU1JcIixcImJvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRfX19weUpPcVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjVfX19zblZuZFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkX19fb21QSlBcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwX19fZ2JuM1pcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJfX194UnN3Y1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyX19fVVpoLWRcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRfX185Wi1PVFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzBfX195cjlpTVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkX19fU3dSUWlcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVfX182RGJkU1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTgwQWxwaGE4NS0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0FcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1LS1kaXNhYmxlZF9fX3lQNE8tXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5X19fZ2Z4Qk9cIixcImJvcmRlcl9fY29sb3ItLXByaW1hcnktLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1ob3Zlcl9fX3B1SERwXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzR1wiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnRfX19lLUhsRFwiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3Zlcl9fX1Myb1ZFXCIsXCJib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkX19feTNCYmJcIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NfX19adXJsU1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzcy0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk1cIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzLS1kaXNhYmxlZF9fX1RQM1J2XCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUXCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyX19fTUpRVWhcIixcImJvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRfX195VnVpMlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6XCIsXCJib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZy0taG92ZXJfX19tQW9TQlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZy0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmctLWRpc2FibGVkX19fV2NBSy1cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1ob3Zlcl9fX3VNRmphXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1kaXNhYmxlZF9fX0s5Z2w3XCIsXCJib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QU1JNblwiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZ1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0tZGlzYWJsZWRfX19Xa09wQVwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50X19fSVRXbU1cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWhvdmVyX19fSmMtTm5cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm9cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50X19fT1F1eHRcIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJfX19sV2E5RFwiLFwiYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0XCIsXCJib3JkZXJfX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rX19faVllRmtcIixcImJvcmRlcl9fY29sb3ItLWxpbmstLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rLS1ob3Zlcl9fXzR5UkpQXCIsXCJib3JkZXJfX2NvbG9yLS1saW5rLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQlwiLFwiYm9yZGVyX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpXCIsXCJib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZS0taG92ZXJfX19aNXM1ZFwiLFwiYm9yZGVyX19jb2xvci0tY29kZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNvZGUtLWRpc2FibGVkX19fdURRWk1cIixcImJvcmRlclRvcF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXplcm9fX19WS1JxLVwiLFwiYm9yZGVyVG9wX193aWR0aC0teHhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14eHNfX184emk3VFwiLFwiYm9yZGVyVG9wX193aWR0aC0teHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXhzX19fUk5FSzJcIixcImJvcmRlclRvcF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXNfX19hVm4xV1wiLFwiYm9yZGVyVG9wX193aWR0aC0tbVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqXCIsXCJib3JkZXJUb3BfX3dpZHRoLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1sX19fLW9lUFBcIixcImJvcmRlclRvcF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJXCIsXCJib3JkZXJUb3BfX3dpZHRoLS14eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6XCIsXCJib3JkZXJUb3BfX3dpZHRoLS0zeGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTN4bF9fXzV4Sy0tXCIsXCJib3JkZXJUb3BfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTR4bF9fX3BFRHRjXCIsXCJib3JkZXJUb3BfX3dpZHRoLS01eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmFcIixcImJvcmRlclRvcF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13aGl0ZV9fX3UtdVFiXCIsXCJib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tdHJhbnNwYXJlbnRfX19Qc01teFwiLFwiYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk4MF9fX2VIanpGXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk0MF9fX0hpcmdmXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkzMF9fX0JCckJRXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyMF9fXzFsdXBQXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkxMF9fX0UyR2ZUXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXZcIixcImJvcmRlclRvcF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXByaW1hcnlfX181MTFqa1wiLFwiYm9yZGVyVG9wX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUFwiLFwiYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc19fXzc5LXVqXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwXCIsXCJib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1hcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QYTBOR1wiLFwiYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdhcm5pbmdUaW50X19fMmVVUVRcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY3JpdGljYWxUaW50X19fSEpBbzJcIixcImJvcmRlclRvcF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWxpbmtfX19LWUZHS1wiLFwiYm9yZGVyVG9wX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0temVyb19fX3JsREluXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eHNfX18tejc5YVwiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tc19fX010WVQ2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbV9fX1NEOTd3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXhsX19fMDVuMDBcIixcImJvcmRlclJpZ2h0X193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4bF9fXy1hRXd2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS0zeGxfX19EdTBSb1wiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGtcIixcImJvcmRlclJpZ2h0X193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTV4bF9fX1NwNDhrXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0taW5oZXJpdF9fXzl5UGVJXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmRcIixcImJvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSlwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkxMDBfX19hYVNuYVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWpcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk2MF9fX29OVy1VXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NDBfX18ySndpOVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHhcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyNV9fX1FiRlVKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjBfX19lc01RTVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk3MF9fX3RrekFKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2o0NVVOXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tcHJpbWFyeV9fX0hJazJBXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1hY2NlbnRfX19XWDJMU1wiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NfX19SSXdhSFwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbm90aWNlX19fdlVMYVRcIixcImJvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS13YXJuaW5nX19fWTJpUGlcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxfX19YbTZ0UVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludF9fX20xbnZZXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44XCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY29kZV9fX1VDZE0wXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvX19fUGxBQkxcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teHhzX19fWkZtLVVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14c19fX2hEelNzXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1zX19fSVd0LXVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItc1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tbF9fXzBIdmwxXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS14bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0c1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRlwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS0zeGxfX19HakxZVVwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS00eGxfX19CdkpXUFwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2hpdGVfX19EWm1qNlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXRyYW5zcGFyZW50X19fcWtOZ0ZcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5ODBfX190bk1qNVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwblwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NDBfX19jN3VjMFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTMwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MzBfX19ZODVDNFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjBfX192Ty1tSlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTEwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MTBfX19GYS1oeVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrVlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5X19fSi1yNUpcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NfX19meFp2UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tbm90aWNlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tc3VjY2Vzc1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fQXN2dGNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13YXJuaW5nVGludF9fXzRPUGZPXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3gyVUxRXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rX19fUjJYRHVcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS1cIixcImJvcmRlckxlZnRfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcFwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHNfX196MlhJRlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmNcIixcImJvcmRlckxlZnRfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tbV9fXzRqUHU1XCIsXCJib3JkZXJMZWZ0X193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLWxfX19sUGFSS1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teGxfX19NYy0tUlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXh4bF9fX0tYT1JaXCIsXCJib3JkZXJMZWZ0X193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUVcIixcImJvcmRlckxlZnRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS00eGxfX19jZFVsV1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLTV4bF9fXzdsOUgwXCIsXCJib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWluaGVyaXRfX19xZDRrRFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0td2hpdGVfX18tcnpzN1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tdHJhbnNwYXJlbnRfX191VVVFeFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTAwX19fUURiVjJcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBfX183aFZ5OFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MF9fX3E5VHMyXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEpcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBfX19pdFVVc1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNV9fX3o5RWdEXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm5cIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBfX195dFpQTlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MF9fX0VveVZXXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk4MEFscGhhODVfX18yR0lXMlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHlcIixcImJvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRfX18xUlMwclwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXVcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VfX19taEpBblwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nX19fdVY1dFdcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWNyaXRpY2FsX19fQTZKaU9cIixcImJvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWpcIixcImJvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdUaW50X19fTjdVY1RcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19hLWZhR1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1saW5rX19fbXdSS3dcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jb2RlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY29kZV9fX3VKV0ZIXCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0VlwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1zX19fdm81ZWxcIixcImJvcmRlclJhZGl1c1RvcFJpZ2h0LS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tbV9fX0dJRWN0XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1tbF9fX21FY0R2XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWxfX19yZy1EMFwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLTUwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHc1wiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1mdWxsX19fNVpJdjhcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0temVyb19fX084ZEUzXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tX19fU2w1UlJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tbF9fXzUySm9sXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS01MF9fXzctd09HXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNlwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtXCIsXCJib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zX19fekZJTDNcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1fX19LTlNjVFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1sX19fdnQ3eDJcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxfX19rOHBpa1wiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHVcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxfX19lSGo2c1wiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb19fX1AxWXR3XCIsXCJib3JkZXJSYWRpdXNUb3BMZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGVcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1fX18zTFJSMFwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHdcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWxfX18zczJDSlwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLTUwX19fd05Zd1FcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUlwiLFwiYm9yZGVyLS1leGNlcHQtbGFzdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyLS1leGNlcHQtbGFzdF9fXzIyWXNCXCJ9OyIsICJpbXBvcnQgYm9yZGVyU3R5bGVzIGZyb20gXCIuL2JvcmRlci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBCb3JkZXJSYWRpdXNTaXplIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb3JuZXJTdHlsZXMge1xuICByYWRpdXM/OiBCb3JkZXJSYWRpdXNTaXplIHwgYm9vbGVhbjtcbiAgcmFkaXVzVG9wUmlnaHQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNCb3R0b21SaWdodD86IEJvcmRlclJhZGl1c1NpemU7XG4gIHJhZGl1c0JvdHRvbUxlZnQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNUb3BMZWZ0PzogQm9yZGVyUmFkaXVzU2l6ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvcm5lclN0eWxlcyA9IChzdHlsZXM6IENvcm5lclN0eWxlcykgPT4ge1xuICBjb25zdCB7IHJhZGl1cywgcmFkaXVzVG9wUmlnaHQsIHJhZGl1c0JvdHRvbVJpZ2h0LCByYWRpdXNCb3R0b21MZWZ0LCByYWRpdXNUb3BMZWZ0IH0gPSBzdHlsZXM7XG5cbiAgaWYgKHJhZGl1cykge1xuICAgIGNvbnN0IGJvcmRlclJhZGl1c1NpemUgPSByYWRpdXMgPT09IHRydWUgPyBcInNcIiA6IHJhZGl1cztcblxuICAgIHJldHVybiBib3JkZXJSYWRpdXNTaXplID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3JhZGl1cy0tJHtib3JkZXJSYWRpdXNTaXplfWBdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIFtcbiAgICByYWRpdXNUb3BSaWdodCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyUmFkaXVzVG9wUmlnaHQtLSR7cmFkaXVzVG9wUmlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgcmFkaXVzQm90dG9tUmlnaHQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS0ke3JhZGl1c0JvdHRvbVJpZ2h0fWBdIDogdW5kZWZpbmVkLFxuICAgIHJhZGl1c0JvdHRvbUxlZnQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLSR7cmFkaXVzQm90dG9tTGVmdH1gXSA6IHVuZGVmaW5lZCxcbiAgICByYWRpdXNUb3BMZWZ0ID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJSYWRpdXNUb3BMZWZ0LS0ke3JhZGl1c1RvcExlZnR9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuIiwgImltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlclNpZGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplIGFzIGxvZGFzaENhcGl0YWxpemUgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZVN0eWxlcyB7XG4gIHRvcD86IEJvcmRlclNpZGU7XG4gIHJpZ2h0PzogQm9yZGVyU2lkZTtcbiAgYm90dG9tPzogQm9yZGVyU2lkZTtcbiAgbGVmdD86IEJvcmRlclNpZGU7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRTaWRlU3R5bGVzID0gKHNpZGVzOiBTaWRlU3R5bGVzKSA9PiBbXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInRvcFwiLCBzaWRlcyksXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInJpZ2h0XCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwiYm90dG9tXCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwibGVmdFwiLCBzaWRlcyksXG5dO1xuXG5jb25zdCBnZXRTcGVjaWZpY1NpZGVTdHlsZXMgPSAoc2lkZToga2V5b2YgU2lkZVN0eWxlcywgc2lkZXM6IFNpZGVTdHlsZXMpID0+IHtcbiAgY29uc3QgeyB3aWR0aCwgY29sb3IgfSA9IHNpZGVzW3NpZGVdID8/IHt9O1xuICBjb25zdCBzaWRlTmFtZSA9IGNhcGl0YWxpemUoc2lkZSk7XG5cbiAgcmV0dXJuIFtcbiAgICB3aWR0aCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyJHtzaWRlTmFtZX1fX3dpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIGNvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXIke3NpZGVOYW1lfV9fY29sb3ItLSR7Y29sb3J9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuXG5jb25zdCBjYXBpdGFsaXplID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHRhcmdldDogVCkgPT4gbG9kYXNoQ2FwaXRhbGl6ZSh0YXJnZXQpIGFzIENhcGl0YWxpemU8VD47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBmb250U3R5bGVzIGZyb20gXCIuL2ZvbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRm9udFNpemUgPSBcInh4c1wiIHwgXCJ4c1wiIHwgXCJzXCIgfCBcIm1cIiB8IFwibFwiIHwgXCJ4bFwiIHwgXCJ4eGxcIiB8IFwiM3hsXCIgfCBcIjR4bFwiO1xuXG5leHBvcnQgdHlwZSBGb250Qm9sZCA9IFwiNjAwXCI7XG5cbmV4cG9ydCB0eXBlIEZvbnRMaW5lSGVpZ2h0ID0gXCJub25lXCIgfCBcInRpZ2h0XCIgfCBcIm5vcm1hbFwiIHwgXCJsb29zZVwiO1xuXG5leHBvcnQgdHlwZSBGb250UGx1Z2luUHJvcHMgPSB7XG4gICRmb250PzpcbiAgICB8IGJvb2xlYW5cbiAgICB8IHtcbiAgICAgICAgc2l6ZT86IEZvbnRTaXplO1xuICAgICAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgICAgICBib2xkPzogYm9vbGVhbiB8IEZvbnRCb2xkO1xuICAgICAgICBsaW5lSGVpZ2h0PzogRm9udExpbmVIZWlnaHQ7XG4gICAgICAgIGZvcmNlV3JhcD86IGJvb2xlYW47XG4gICAgICAgIG5vV3JhcD86IGJvb2xlYW47XG4gICAgICAgIHVwcGVyY2FzZT86IGJvb2xlYW47XG4gICAgICAgIHVuZGVybGluZT86IGJvb2xlYW47XG4gICAgICAgIHRleHRPdmVyZmxvdz86IFwiY2xpcFwiIHwgXCJlbGxpcHNpc1wiIHwgXCJkZWZhdWx0XCI7XG4gICAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGZvbnRQbHVnaW4gPSBnZXRQbHVnaW48Rm9udFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRmb250KSB7XG4gICAgcmV0dXJuIHsgJGZvbnQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3Qge1xuICAgIHNpemUgPSB1bmRlZmluZWQsXG4gICAgYm9sZCA9IGZhbHNlLFxuICAgIGxpbmVIZWlnaHQgPSB1bmRlZmluZWQsXG4gICAgbm9XcmFwID0gZmFsc2UsXG4gICAgdXBwZXJjYXNlID0gZmFsc2UsXG4gICAgaXRhbGljID0gZmFsc2UsXG4gICAgZm9yY2VXcmFwID0gZmFsc2UsXG4gICAgdW5kZXJsaW5lID0gZmFsc2UsXG4gICAgdGV4dE92ZXJmbG93ID0gXCJkZWZhdWx0XCIsXG4gIH0gPSBwcm9wcy4kZm9udCA9PT0gdHJ1ZSA/IHt9IDogcHJvcHMuJGZvbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgc2l6ZSA/IGZvbnRTdHlsZXNbYGZvbnRfX3NpemUtLSR7c2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGJvbGQgPT09IHRydWUgPyBmb250U3R5bGVzW1wiZm9udC0tYm9sZFwiXSA6IGJvbGQgPyBmb250U3R5bGVzW2Bmb250LS13ZWlnaHQtJHtib2xkfWBdIDogdW5kZWZpbmVkLFxuICAgICAgbGluZUhlaWdodCA/IGZvbnRTdHlsZXNbYGZvbnRfX2xpbmUtaGVpZ2h0LS0ke2xpbmVIZWlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgICB0ZXh0T3ZlcmZsb3cgPT09IFwiZGVmYXVsdFwiID8gdW5kZWZpbmVkIDogZm9udFN0eWxlc1tgZm9udC0tdGV4dC1vdmVyZmxvdy0tJHt0ZXh0T3ZlcmZsb3d9YF0sXG4gICAgICB7XG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tbm8td3JhcFwiXV06IG5vV3JhcCxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS1mb3JjZS13cmFwXCJdXTogZm9yY2VXcmFwLFxuICAgICAgICBbZm9udFN0eWxlc1tcImZvbnQtLWl0YWxpY1wiXV06IGl0YWxpYyxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS11cHBlcmNhc2VcIl1dOiB1cHBlcmNhc2UsXG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tdW5kZXJsaW5lXCJdXTogdW5kZXJsaW5lLFxuICAgICAgfSxcbiAgICBdLFxuICAgICRmb250OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLSB7XFxuICBmb250LXNpemU6IGNhbGMoMS4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtYWxsKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS1zX19fVGJuTWwge1xcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLW1fX19mREpBaiB7XFxuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iaWcpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLWxfX191S2N1ayB7XFxuICBmb250LXNpemU6IGNhbGMoMi4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14bF9fX1JlaG9RIHtcXG4gIGZvbnQtc2l6ZTogY2FsYygyLjUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0teHhsX19fQ2dvS1Age1xcbiAgZm9udC1zaXplOiBjYWxjKDIuNzUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tM3hsX19fc0NJZXoge1xcbiAgZm9udC1zaXplOiBjYWxjKDMgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2Uge1xcbiAgZm9udC1zaXplOiBjYWxjKDQgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5SyB7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tdGlnaHRfX19yLUVCOSB7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxfX19ySjRWTiB7XFxuICBsaW5lLWhlaWdodDogMS41O1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtIHtcXG4gIGxpbmUtaGVpZ2h0OiAyO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWJvbGRfX19iamUtYiB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS13ZWlnaHQtNjAwX19fRWdkem0ge1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1uby13cmFwX19fcWJSUk8ge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1mb3JjZS13cmFwX19fT0dDRnoge1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtbiB7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWl0YWxpY19fX0pINFRaIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11bmRlcmxpbmVfX19kNG9uTCB7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc19fX0hxZlgtIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5mb250LW1vZHVsZV9fZm9udC0tdGV4dC1vdmVyZmxvdy0tY2xpcF9fXzk2eEI5IHtcXG4gIHRleHQtb3ZlcmZsb3c6IGNsaXA7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmb250X19zaXplLS14eHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLVwiLFwiZm9udF9fc2l6ZS0teHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5XCIsXCJmb250X19zaXplLS1zXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tc19fX1Ribk1sXCIsXCJmb250X19zaXplLS1tXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbV9fX2ZESkFqXCIsXCJmb250X19zaXplLS1sXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbF9fX3VLY3VrXCIsXCJmb250X19zaXplLS14bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXhsX19fUmVob1FcIixcImZvbnRfX3NpemUtLXh4bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXh4bF9fX0Nnb0tQXCIsXCJmb250X19zaXplLS0zeGxcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS0zeGxfX19zQ0llelwiLFwiZm9udF9fc2l6ZS0tNHhsXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2VcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub25lXCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5S1wiLFwiZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0XCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0X19fci1FQjlcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxcIjpcImZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tbm9ybWFsX19fcko0Vk5cIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtXCIsXCJmb250LS1ib2xkXCI6XCJmb250LW1vZHVsZV9fZm9udC0tYm9sZF9fX2JqZS1iXCIsXCJmb250LS13ZWlnaHQtNjAwXCI6XCJmb250LW1vZHVsZV9fZm9udC0td2VpZ2h0LTYwMF9fX0VnZHptXCIsXCJmb250LS1uby13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tbm8td3JhcF9fX3FiUlJPXCIsXCJmb250LS1mb3JjZS13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tZm9yY2Utd3JhcF9fX09HQ0Z6XCIsXCJmb250LS11cHBlcmNhc2VcIjpcImZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtblwiLFwiZm9udC0taXRhbGljXCI6XCJmb250LW1vZHVsZV9fZm9udC0taXRhbGljX19fSkg0VFpcIixcImZvbnQtLXVuZGVybGluZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXVuZGVybGluZV9fX2Q0b25MXCIsXCJmb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc1wiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXRleHQtb3ZlcmZsb3ctLWVsbGlwc2lzX19fSHFmWC1cIixcImZvbnQtLXRleHQtb3ZlcmZsb3ctLWNsaXBcIjpcImZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1jbGlwX19fOTZ4QjlcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgQm94U2hhZG93UGx1Z2luUHJvcHMgPSB7XG4gICRib3hTaGFkb3c/OiBib29sZWFuIHwgXCJlbGV2YXRlZFwiIHwgXCJzdWJ0bGVcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBib3hTaGFkb3dQbHVnaW4gPSBnZXRQbHVnaW48Qm94U2hhZG93UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJveFNoYWRvdykge1xuICAgIHJldHVybiB7XG4gICAgICAkYm94U2hhZG93OiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHZhcmlhbnQgPSBwcm9wcy4kYm94U2hhZG93ID09PSB0cnVlID8gXCJlbGV2YXRlZFwiIDogcHJvcHMuJGJveFNoYWRvdztcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBzdHlsZXNbYGJveC1zaGFkb3ctLSR7dmFyaWFudH1gXV0sXG4gICAgJGJveFNoYWRvdzogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3gtc2hhZG93LW1vZHVsZV9fYm94LXNoYWRvdy0tZWxldmF0ZWRfX19qYWg3ZiB7XFxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xcbn1cXG4uYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNIHtcXG4gIGJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMjI3NDUwOTgwNCksIDAgMC42cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yMjc0NTA5ODA0KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJib3gtc2hhZG93LS1lbGV2YXRlZFwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLWVsZXZhdGVkX19famFoN2ZcIixcImJveC1zaGFkb3ctLXN1YnRsZVwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNXCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyA9IHsgJG5vUG9pbnRlckV2ZW50cz86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IG5vUG9pbnRlckV2ZW50c1BsdWdpbiA9IGdldFBsdWdpbjxOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFtzdHlsZXNbXCJuby1wb2ludGVyLWV2ZW50c1wiXV06IHByb3BzLiRub1BvaW50ZXJFdmVudHMgfV0sXG4gICRub1BvaW50ZXJFdmVudHM6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIubm8tcG9pbnRlci1ldmVudHMtbW9kdWxlX19uby1wb2ludGVyLWV2ZW50c19fXzdtRjBiICoge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibm8tcG9pbnRlci1ldmVudHNcIjpcIm5vLXBvaW50ZXItZXZlbnRzLW1vZHVsZV9fbm8tcG9pbnRlci1ldmVudHNfX183bUYwYlwifTsiLCAiaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuLy8gU2ltcGxpZmllZCB0eXBlIHNpbmNlIFJlZkNhbGxiYWNrIGZyb20gXCJyZWFjdFwiIGNhdXNlcyBVTkRFRklORURfVk9JRF9PTkxZIGVycm9yXG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQ29uZnVzaW5nVm9pZFR5cGU6IHZvaWQgdHlwaW5nIHJlcXVpcmVkXG50eXBlIFJlZkNhbGxiYWNrPFQ+ID0gKGluc3RhbmNlOiBUIHwgbnVsbCkgPT4gdW5kZWZpbmVkIHwgdm9pZCB8ICgoKSA9PiBhbnkpO1xuXG5leHBvcnQgdHlwZSBSZWZMaWtlPFQ+ID0gUmVmQ2FsbGJhY2s8VD4gfCBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQgfCBudWxsPiB8IFJlYWN0LlJlZk9iamVjdDxUPiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgJFJlZlByb3A8VD4gPSBSZWZMaWtlPFQ+IHwgJFJlZlByb3A8VD5bXTtcblxuZXhwb3J0IHR5cGUgUmVmUGx1Z2luUHJvcHM8VD4gPSB7XG4gICRyZWY/OiAkUmVmUHJvcDxUPjtcbiAgcmVmPzogUmVmTGlrZTxUPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlZlBsdWdpbjxUPiA9IFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPiwgdW5rbm93bj47XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZQbHVnaW48VCA9IEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPj4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkcmVmIH0gPSBwcm9wcztcbiAgICBjb25zdCBwcmV2UmVmcyA9IHVzZVJlZihuZXcgU2V0PFJlZkxpa2U8VD4+KCkpO1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpO1xuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIGRvIG5vdCB3YW50IHRvIHJ1biB0aGlzIG11bHRpcGxlIHRpbWVzXG4gICAgY29uc3QgcmVmID0gdXNlQ2FsbGJhY2soKGN1cnJlbnQ6IFQpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0UmVmcyA9IGZsYXR0ZW5SZWZzKCRyZWYpO1xuXG4gICAgICBmaXJzdFJlZnMuZm9yRWFjaChoYW5kbGVSZWZzRm9yKGN1cnJlbnQpKTtcbiAgICAgIHByZXZSZWZzLmN1cnJlbnQgPSBmaXJzdFJlZnM7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBjdXJyZW50O1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBwcmV2UmVmcy5jdXJyZW50LmZvckVhY2goaGFuZGxlUmVmc0ZvcjxUPihudWxsKSk7XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBmaXJzdFJlbmRlciA9IHVzZVJlZih0cnVlKTtcblxuICAgIGlmICghZmlyc3RSZW5kZXIuY3VycmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFJlZnMgPSBmbGF0dGVuUmVmcygkcmVmKTtcbiAgICAgIGNvbnN0IGFkZGVkUmVmcyA9IGN1cnJlbnRSZWZzLmRpZmZlcmVuY2UocHJldlJlZnMuY3VycmVudCk7XG4gICAgICBjb25zdCByZW1vdmVkUmVmcyA9IHByZXZSZWZzLmN1cnJlbnQuZGlmZmVyZW5jZShjdXJyZW50UmVmcyk7XG5cbiAgICAgIGFkZGVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4oZWxlbWVudFJlZi5jdXJyZW50KSk7XG4gICAgICByZW1vdmVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4obnVsbCkpO1xuICAgICAgcHJldlJlZnMuY3VycmVudCA9IGN1cnJlbnRSZWZzO1xuICAgIH1cblxuICAgIGZpcnN0UmVuZGVyLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICAkcmVmOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IGZsYXR0ZW5SZWZzID0gPFQsPihyZWZzOiAkUmVmUHJvcDxUPik6IFNldDxSZWZMaWtlPFQ+PiA9PlxuICBuZXcgU2V0KChbcmVmc10uZmxhdChJbmZpbml0eSBhcyAxKSBhcyBBcnJheTxOb25OdWxsYWJsZTxSZWZMaWtlPFQ+Pj4pLmZpbHRlcihpc0RlZmluZWQpKTtcblxuY29uc3QgaGFuZGxlUmVmc0ZvciA9XG4gIDxULD4odmFsdWU6IFQgfCBudWxsKSA9PlxuICAocmVmczogJFJlZlByb3A8VD4pID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgcmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3IodmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWZzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJlZnModmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocmVmcykge1xuICAgICAgKHJlZnMgYXMgTXV0YWJsZVJlZk9iamVjdDxUIHwgbnVsbD4pLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gIH07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjc3NOYW1lcywgdHlwZSBJQ2xhc3NOYW1lIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgQ2xhc3NOYW1lUGx1Z2luUHJvcHMgPSB7ICRjbGFzc05hbWU/OiBJQ2xhc3NOYW1lOyBjbGFzc05hbWU/OiBzdHJpbmcgfTtcblxubGV0IHNob3dDbHV0dGVyID0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTmFtZVBsdWdpbiA9IGdldFBsdWdpbjxDbGFzc05hbWVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGNzc05hbWVzKHByb3BzLmNsYXNzTmFtZSwgcHJvcHMuJGNsYXNzTmFtZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi4oY2xhc3NOYW1lID8geyBjbGFzc05hbWU6IHNob3dDbHV0dGVyID8gY2xhc3NOYW1lIDogcmVtb3ZlQ2x1dHRlcihjbGFzc05hbWUpIH0gOiB7fSksXG4gICAgJGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IHJlbW92ZUNsdXR0ZXIgPSAoY2xhc3NOYW1lOiBzdHJpbmcpID0+XG4gIGNsYXNzTmFtZS5yZXBsYWNlKC9fX18uKj8oPz1cXHN8JCkvZywgXCJcIikucmVwbGFjZSgvXFxiW2EtekEtWjAtOS1dKy1tb2R1bGVfXy9nLCBcIlwiKTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyA9ICgpID0+IHtcbiAgc2hvd0NsdXR0ZXIgPSBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gPSAoKSA9PiB7XG4gIHNob3dDbHV0dGVyID0gdHJ1ZTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCByZWxhdGl2ZVN0eWxlcyBmcm9tIFwiLi9yZWxhdGl2ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZVBsdWdpblByb3BzID0geyAkcmVsYXRpdmU/OiBib29sZWFuOyAkZml4ZWQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCByZWxhdGl2ZVBsdWdpbiA9IGdldFBsdWdpbjxSZWxhdGl2ZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW1xuICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgeyBbcmVsYXRpdmVTdHlsZXMucmVsYXRpdmVdOiAhIXByb3BzLiRyZWxhdGl2ZSwgW3JlbGF0aXZlU3R5bGVzLmZpeGVkXTogISFwcm9wcy4kZml4ZWQgfSxcbiAgXSxcbiAgJGZpeGVkOiB1bmRlZmluZWQsXG4gICRyZWxhdGl2ZTogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5yZWxhdGl2ZS1tb2R1bGVfX3JlbGF0aXZlX19fa3dNNXEge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4ucmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJyZWxhdGl2ZVwiOlwicmVsYXRpdmUtbW9kdWxlX19yZWxhdGl2ZV9fX2t3TTVxXCIsXCJmaXhlZFwiOlwicmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEXCJ9OyIsICJleHBvcnQgdHlwZSBEcmFnZ2FibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyYWdnYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIGl0ZW06IFQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcm9wcGFibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyb3BwYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIG9uRHJvcDogKGl0ZW06IFQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcmFnZ2FibGVDb250ZXh0PERyYWdnZWRJdGVtPiA9IHtcbiAgZHJhZ2dhYmxlOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IE5vbk51bGxhYmxlPERyYWdnYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltgJGRyYWdnYWJsZWBdPjtcbiAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+IE5vbk51bGxhYmxlPERyb3BwYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltcIiRkcm9wcGFibGVcIl0+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERyYWdnYWJsZUNvbnRleHQgPSA8RHJhZ2dlZEl0ZW0+KCk6IERyYWdnYWJsZUNvbnRleHQ8RHJhZ2dlZEl0ZW0+ID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBkcmFnZ2FibGU6IChpdGVtOiBEcmFnZ2VkSXRlbSkgPT4gKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBpdGVtLFxuICAgIH0pLFxuXG4gICAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+ICh7XG4gICAgICBjb250ZXh0LFxuICAgICAgb25Ecm9wLFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcbiIsICJpbXBvcnQgeyBnZXRGZWF0dXJlIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IG1vZHVsZXNXaXRoSW5qZWN0YWJsZXMgZnJvbSBcIi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpXCI7XG5pbXBvcnQgc3R5bGVzaGVldHMgZnJvbSBcIi4vKiovIShfKikuKHNjc3N8Y3NzKVwiO1xuXG5leHBvcnQgY29uc3QgZWxlbWVudENvbXBvbmVudEZlYXR1cmUgPSBnZXRGZWF0dXJlKHtcbiAgaWQ6IFwiZWxlbWVudC1jb21wb25lbnRcIixcbiAgcmVnaXN0ZXI6IChkaSkgPT4gcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzKGRpLCBbLi4ubW9kdWxlc1dpdGhJbmplY3RhYmxlcywgLi4uc3R5bGVzaGVldHNdKSxcbiAgLy8gTm8gZmVhdHVyZSBkZXBlbmRlbmNpZXM6IGEgZGVzaWduIHN5c3RlbSBldmVyeW9uZSBtYXkgaW5zdGFsbCBjYW5ub3QgZHJhZ1xuICAvLyBMZW5zIGZlYXR1cmVzIGludG8gdGhlIGNsb3N1cmUuIFRoZSBjbG9jayB0aGUgaG92ZXJhYmxlIHBsdWdpbiBuZWVkcyBpc1xuICAvLyBsb2NhbCwgYW5kIHRoZSBwbGF0Zm9ybSBpcyByZWFkIGRpcmVjdGx5LlxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGtleWJvYXJkIGNvbnZlbnRpb25zIG9mIG1hY09TIGFwcGx5LlxuICpcbiAqIFJlYWQgZnJvbSB0aGUgYnJvd3NlciByYXRoZXIgdGhhbiBmcm9tIGBwcm9jZXNzYCBvciB0aGUgdmFycyBmZWF0dXJlOiB0aGlzIGlzXG4gKiBhIHJlbmRlcmVyLW9ubHkgZGVzaWduIHN5c3RlbSwgaXQgbWF5IG5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZFxuICogYHByb2Nlc3NgIGlzIG5vdCB0aGVyZSB0byByZWFkIG9uY2UgdGhlIHJlbmRlcmVyIHN0b3BzIHJ1bm5pbmcgd2l0aCBub2RlXG4gKiBpbnRlZ3JhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzTWFjSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaXMtbWFjXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IHtcbiAgICBjb25zdCB7IHVzZXJBZ2VudERhdGEsIHBsYXRmb3JtLCB1c2VyQWdlbnQgfSA9IG5hdmlnYXRvciBhcyBOYXZpZ2F0b3IgJiB7XG4gICAgICByZWFkb25seSB1c2VyQWdlbnREYXRhPzogeyByZWFkb25seSBwbGF0Zm9ybT86IHN0cmluZyB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gL21hYy9pLnRlc3QodXNlckFnZW50RGF0YT8ucGxhdGZvcm0gPz8gcGxhdGZvcm0gPz8gdXNlckFnZW50ID8/IFwiXCIpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWF0Y2hlcyB9IGZyb20gXCJsb2Rhc2gvZnBcIjtcbmltcG9ydCB7IGlzTWFjSW5qZWN0YWJsZSB9IGZyb20gXCIuL2lzLW1hYy5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm9uLXJpZ2h0LXRyaWdnZXJcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgaXNNYWMgPSBkaS5pbmplY3QoaXNNYWNJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiBvblJpZ2h0VHJpZ2dlckZvcihpc01hYygpID8gaXNNYWNvc1Nob3J0Y3V0IDogaXNMaW51eE9yV2luZG93c1Nob3J0Y3V0KTtcbiAgfSxcbn0pO1xuXG5jb25zdCBvblJpZ2h0VHJpZ2dlckZvciA9XG4gIDxUPihjYjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PFQ+KSA9PiBib29sZWFuKSA9PlxuICAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8VD4sIGNhbGxiYWNrOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPikgPT4ge1xuICAgIGlmIChjYihldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfVxuICB9O1xuXG5jb25zdCBpc01hY29zU2hvcnRjdXQgPSBtYXRjaGVzKHtcbiAgc2hpZnRLZXk6IGZhbHNlLFxuICBhbHRLZXk6IGZhbHNlLFxuICBjdHJsS2V5OiBmYWxzZSxcbiAgbWV0YUtleTogdHJ1ZSxcbiAgY29kZTogXCJFbnRlclwiLFxufSk7XG5cbmNvbnN0IGlzTGludXhPcldpbmRvd3NTaG9ydGN1dCA9IG1hdGNoZXMoe1xuICBzaGlmdEtleTogZmFsc2UsXG4gIGFsdEtleTogZmFsc2UsXG4gIGN0cmxLZXk6IHRydWUsXG4gIG1ldGFLZXk6IGZhbHNlLFxuICBjb2RlOiBcIkVudGVyXCIsXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm1ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IChjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9LCA1MCk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgTmF2aWdhYmxlRW50cnkgPSB7XG4gIHJlYWRvbmx5IGl0ZW06IHVua25vd247XG4gIHJlYWRvbmx5IG9yZGVyTnVtYmVyOiBudW1iZXI7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufTtcblxudHlwZSBOYXZpZ2FibGVDb250ZXh0ID0gS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PGFueT47XG5cbi8qKlxuICogVGhlIG1lbWJlcnMgb2YgZXZlcnkga2V5Ym9hcmQtbmF2aWdhYmxlIGNvbnRleHQsIHRoZSBvcmRlciB0aGUgY29udGV4dHMgYXBwZWFyZWQgaW4sIGFuZCB3aGljaFxuICogbWVtYmVyIG9mIGVhY2ggaGFkIGZvY3VzLiBGb2N1cyBiZWxvbmdzIHRvIHRoZSBjb250ZXh0IHRoYXQgYXBwZWFyZWQgbGFzdDsgd2hlbiBpdCBnb2VzIGF3YXksIHRoZVxuICogcHJldmlvdXMgb25lIHRha2VzIGl0IGJhY2sgXHUyMDE0IGF0IHRoZSBtZW1iZXIgaXQgd2FzIGxlZnQgb24sIHdoaWNoIGlzIHdoYXQgbWFrZXMgc3RlcHBpbmcgaW50b1xuICogc29tZXRoaW5nIGFuZCBiYWNrIG91dCBvZiBpdCBsYW5kIHdoZXJlIGl0IHN0YXJ0ZWQgcmF0aGVyIHRoYW4gYXQgdGhlIGJlZ2lubmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwia2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiB7XG4gICAgY29uc3QgZW50cmllc0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgU2V0PE5hdmlnYWJsZUVudHJ5Pj4oKTtcbiAgICBjb25zdCBpdGVtSW5Gb2N1c0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgdW5rbm93bj4oKTtcbiAgICBjb25zdCBjb250ZXh0U3RhY2s6IE5hdmlnYWJsZUNvbnRleHRbXSA9IFtdO1xuXG4gICAgY29uc3QgZW50cmllc09mID0gKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gZW50cmllc0J5Q29udGV4dC5nZXQoY29udGV4dCk7XG5cbiAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNyZWF0ZWQgPSBuZXcgU2V0PE5hdmlnYWJsZUVudHJ5PigpO1xuXG4gICAgICBlbnRyaWVzQnlDb250ZXh0LnNldChjb250ZXh0LCBjcmVhdGVkKTtcblxuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfTtcblxuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgc29ydGVkRW50cmllc09mOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCkgPT5cbiAgICAgICAgWy4uLmVudHJpZXNPZihjb250ZXh0KV0uc29ydCgoYSwgYikgPT4gYS5vcmRlck51bWJlciAtIGIub3JkZXJOdW1iZXIpLFxuXG4gICAgICBjb250ZXh0SW5Gb2N1czogKCkgPT4gY29udGV4dFN0YWNrLmF0KC0xKSxcblxuICAgICAgaXRlbUluRm9jdXNPZjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IGl0ZW1JbkZvY3VzQnlDb250ZXh0LmdldChjb250ZXh0KSxcblxuICAgICAgbm90ZUl0ZW1JbkZvY3VzOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCwgaXRlbTogdW5rbm93bikgPT4ge1xuICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5zZXQoY29udGV4dCwgaXRlbSk7XG4gICAgICB9LFxuXG4gICAgICByZWdpc3RlcjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQsIGVudHJ5OiBOYXZpZ2FibGVFbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gZW50cmllc09mKGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChlbnRyaWVzLnNpemUgPT09IDApIHtcbiAgICAgICAgICBjb250ZXh0U3RhY2sucHVzaChjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVudHJpZXMuYWRkKGVudHJ5KTtcbiAgICAgIH0sXG5cbiAgICAgIGRlcmVnaXN0ZXI6IChjb250ZXh0OiBOYXZpZ2FibGVDb250ZXh0LCBlbnRyeTogTmF2aWdhYmxlRW50cnkpID0+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGVudHJpZXNPZihjb250ZXh0KTtcblxuICAgICAgICBlbnRyaWVzLmRlbGV0ZShlbnRyeSk7XG5cbiAgICAgICAgaWYgKGVudHJpZXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGluZGV4SW5TdGFjayA9IGNvbnRleHRTdGFjay5sYXN0SW5kZXhPZihjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChpbmRleEluU3RhY2sgIT09IC0xKSB7XG4gICAgICAgICAgICBjb250ZXh0U3RhY2suc3BsaWNlKGluZGV4SW5TdGFjaywgMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQSBjb250ZXh0IHRoYXQgaXMgZ29uZSByZW1lbWJlcnMgbm90aGluZzogdGhlIG5leHQgdGltZSBpdHMgbWVtYmVycyBhcHBlYXIsIHRoZXlcbiAgICAgICAgICAvLyBhcHBlYXIgYW5ldywgYW5kIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRha2VzIGZvY3VzIGFzIGl0IGRpZCB0aGUgZmlyc3QgdGltZS5cbiAgICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5kZWxldGUoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi4vLi4vaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSG92ZXJhYmxlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9ob3ZlcmFibGVcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuXG5leHBvcnQgY29uc3QgY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkXCIsXG4gIGNvbnN1bXB0aW9uczogW2l0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbl0sXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSBkaS5pbmplY3QoaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuKTtcblxuICAgIHJldHVybiAoY29udGV4dDogSG92ZXJhYmxlQ29udGV4dDxNdXRhYmxlUmVmT2JqZWN0PGFueT4+KSA9PiB7XG4gICAgICBjb25zdCBob3ZlcmVkSXRlbSA9IGl0ZW1CZWluZ0hvdmVyZWQoKShjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICEhaG92ZXJlZEl0ZW0uZ2V0KCkpO1xuICAgIH07XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcbmltcG9ydCBnbG9iYWxPdmVycmlkZXMgZnJvbSBcIi4vKiovKi5nbG9iYWwtb3ZlcnJpZGUtZm9yLWluamVjdGFibGUuKHRzfHRzeClcIjtcbmltcG9ydCBkZWZhdWx0T3ZlcnJpZGVzIGZyb20gXCIuLyoqLyouZGVmYXVsdC1vdmVycmlkZS4odHN8dHN4KVwiO1xuXG5leHBvcnQgY29uc3QgdGVzdFV0aWxSdW5uYWJsZUluamVjdGFibGUgPSBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzKHtcbiAgZ2xvYmFsT3ZlcnJpZGVzLFxuICBkZWZhdWx0T3ZlcnJpZGVzLFxufSk7XG4iLCAiXG5cbmNvbnN0IG1vZHVsZXMgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbXVxuIiwgImltcG9ydCB0eXBlIHsgRGlDb250YWluZXIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlIH0gZnJvbSBcIi4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZVwiO1xuXG4vLyBSdW5zIHRoZSBjYWxsYmFjayBzdHJhaWdodCBhd2F5IGluIHRlc3RzLCBpbnN0ZWFkIG9mIGFmdGVyIHRoZSByZWFsIGRlbGF5LlxuZXhwb3J0IGRlZmF1bHQgKGRpOiBEaUNvbnRhaW5lcikgPT4ge1xuICBkaS5vdmVycmlkZTIobWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlLCAoKSA9PiAoKSA9PiAoY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IGNhbGxiYWNrKCkpO1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IERpQ29udGFpbmVyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB7IHRvb2x0aXBEZWxheUluamVjdGFibGUgfSBmcm9tIFwiLi90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcblxuLy8gTm8gZGVsYXkgaW4gdGVzdHMsIHNvIGEgdG9vbHRpcCBhcHBlYXJzIHdpdGhvdXQgYW55b25lIGFkdmFuY2luZyB0aW1lcnMuXG4vLyBXcml0dGVuIGFzIGEgcGxhaW4gZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhyb3VnaCBnZXREZWZhdWx0TW9ja2luZ092ZXJyaWRlLFxuLy8gd2hpY2ggaXMgYW4gaWRlbnRpdHkgZnVuY3Rpb24gaW4gYSB0ZXN0IHBhY2thZ2UgdGhpcyBvbmUgbWF5IG5vdCBpbXBvcnQuXG5leHBvcnQgZGVmYXVsdCAoZGk6IERpQ29udGFpbmVyKSA9PiB7XG4gIGRpLm92ZXJyaWRlMih0b29sdGlwRGVsYXlJbmplY3RhYmxlLCAoKSA9PiAoKSA9PiB1bmRlZmluZWQpO1xufTtcbiIsICJpbXBvcnQgeyByZW1vdmVDc3NNb2R1bGVDbHV0dGVyRm9yVW5pdFRlc3RpbmcgfSBmcm9tIFwiLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZygpO1xufTtcbiIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbJ3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uZGVmYXVsdC1vdmVycmlkZS50cycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cycsJ3JlbW92ZS1jc3MtbW9kdWxlLWNsdXR0ZXIuZGVmYXVsdC1vdmVycmlkZS50cyddXG4iLCAiaW1wb3J0ICogYXMgbW9kdWxlMCBmcm9tICcuL3BsdWdpbnMvY2xpY2thYmxlL2lzLW1hYy5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy9jbGlja2FibGUvb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWh0bWwtZWxlbWVudC1yZWYtc2V0LmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTYgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2ZvY3VzYWJsZS1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTcgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTkgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9pdGVtLWJlaW5nLWZvY3VzZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTAgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTEgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUvX3ByaXZhdGUvY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTE0IGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxNSBmcm9tICcuL3Rlc3QtdXRpbC1ydW5uYWJsZS5pbmplY3RhYmxlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTVdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQva2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZS5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvY29tcHV0ZWQtbm93LmluamVjdGFibGUudHMnLCdwbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvaG92ZXJhYmxlL2l0ZW0tYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJywndGVzdC11dGlsLXJ1bm5hYmxlLmluamVjdGFibGUudHMnXVxuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmFuY2hvci1tb2R1bGVfX2FuY2hvcl9fX20tNXViIHtcXG4gIGFuY2hvci1uYW1lOiB2YXIoLS1hbmNob3ItbmFtZSk7XFxufVxcblxcbi5hbmNob3ItbW9kdWxlX19hbmNob3JlZEF0X19fVUFyVUsge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgcG9zaXRpb24tYW5jaG9yOiB2YXIoLS1hbmNob3ItdGFyZ2V0KTtcXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLWFuY2hvci1wb3NpdGlvbik7XFxuICAvKiBUaGUgYnJvd3NlciBjZW50ZXJzIGEgcG9wb3ZlciBpbiB0aGUgdmlld3BvcnQ7IHRoZSBwb3NpdGlvbiBhcmVhIHBsYWNlcyB0aGlzIG9uZSBpbnN0ZWFkLiAqL1xcbiAgaW5zZXQ6IGF1dG87XFxuICAvKiBNaXJyb3IgdG8gdGhlIG9wcG9zaXRlIHNpZGUsIHRoZW4gdGhlIG9wcG9zaXRlIHNwYW4sIGJlZm9yZSBnaXZpbmcgdXAuICovXFxuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiBmbGlwLWJsb2NrLCBmbGlwLWlubGluZSwgZmxpcC1ibG9jayBmbGlwLWlubGluZTtcXG4gIC8qIFRoZSBnYXAgYmVsb25ncyB0byB0aGUgZWxlbWVudCBhcyBmYXIgYXMgdGhlIHBvaW50ZXIgaXMgY29uY2VybmVkLCBzbyBtb3Zpbmcgb250byBpdCBhY3Jvc3NcXG4gICAgIHRoZSBnYXAgbmV2ZXIgY291bnRzIGFzIGxlYXZpbmcuIFJlYWNoZXMgb3V0IG9uIGV2ZXJ5IHNpZGUsIHNvIGl0IGhvbGRzIGhvd2V2ZXIgdGhlIGVsZW1lbnRcXG4gICAgIGVuZHMgdXAgZmxpcHBlZC4gKi9cXG59XFxuLmFuY2hvci1tb2R1bGVfX2FuY2hvcmVkQXRfX19VQXJVSzo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1hbmNob3ItZ2FwLCAwcHgpKTtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG4uYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBYyB7XFxuICAvKiBJbiB0aGUgdG9wIGxheWVyLCBsaWtlIHdoYXRldmVyIGlzIGFuY2hvcmVkIHRvIGl0LCBzbyB0aGUgcG9pbnQgaXMgdGhlIG9uZSBpbiB0aGUgdmlld3BvcnQgdGhlXFxuICAgICBjdXJzb3Igd2FzIGF0IHJhdGhlciB0aGFuIG9uZSBvZmZzZXQgYnkgZXZlcnkgdHJhbnNmb3JtaW5nIGFuY2VzdG9yIGluIGJldHdlZW4uICovXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBpbnNldDogYXV0bztcXG4gIGxlZnQ6IHZhcigtLWFuY2hvci1wb2ludC14KTtcXG4gIHRvcDogdmFyKC0tYW5jaG9yLXBvaW50LXkpO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBhbmNob3ItbmFtZTogdmFyKC0tYW5jaG9yLW5hbWUpO1xcbiAgLyogVW5kbyB3aGF0IHRoZSBicm93c2VyIGdpdmVzIGFuIGVsZW1lbnQgb2YgdGhlIHRvcCBsYXllcjogdGhpcyBvbmUgaGFzIG5vdGhpbmcgdG8gc2hvdy4gKi9cXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYW5jaG9yXCI6XCJhbmNob3ItbW9kdWxlX19hbmNob3JfX19tLTV1YlwiLFwiYW5jaG9yZWRBdFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yZWRBdF9fX1VBclVLXCIsXCJhbmNob3JQb2ludFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBY1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmJsb2NrLW1vZHVsZV9fYmxvY2tfX19ZNHR6aiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmJsb2NrLW1vZHVsZV9fYmxvY2stLWlubGluZV9fXy0xWUNnIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJibG9ja1wiOlwiYmxvY2stbW9kdWxlX19ibG9ja19fX1k0dHpqXCIsXCJibG9jay0taW5saW5lXCI6XCJibG9jay1tb2R1bGVfX2Jsb2NrLS1pbmxpbmVfX18tMVlDZ1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNjpob3ZlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZTpmb2N1cyB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSTpkaXNhYmxlZCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fZjhjMXMge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2hpdGVfX19NNmFSZzpob3ZlciB7XFxuICBjb2xvcjogd2hpdGU7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13aGl0ZV9fX2k2dVl6OmZvY3VzIHtcXG4gIGNvbG9yOiB3aGl0ZTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdoaXRlX19fbnRqWUU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tdHJhbnNwYXJlbnRfX18xdmZydiB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS10cmFuc3BhcmVudF9fX3htN0JEOmhvdmVyIHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fcGRlLVc6Zm9jdXMge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRfX19aMFF1VTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenYge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTEwMF9fX0dGQ29tOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMDBfX19BTTdvTTpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUo6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTgwX19fRDcxZm4ge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4Yjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MF9fXzhQbHlvOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTgwX19fdzFucGM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk2MF9fX3hmWm1iOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTYwX19fa3dtMkc6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk0MF9fX2lST3pSIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTQwX19fcmJOMDQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk0MF9fX05pWnhpOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTMwX19fTHduTDIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaDpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkzMF9fX1FVYjRTOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTMwX19fS3E5Z1c6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1byB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyNV9fX3RZeWdEOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTI1X19fVHhpNWw6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xYzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkyMF9fX0VGMk9MIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTIwX19fdVB0WFU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXYzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkyMF9fX3ZwdXkxOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTEwX19fbDVhWnAge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjcjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMF9fX1Z3VzcxOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTEwX19fWTVxeXc6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITSB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk3MF9fXzNrcnRMOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTcwX19fcDNpZXg6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVjpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fRG9mbzA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwQWxwaGE4NV9fX1Q0QmdGOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6czpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fMDhXblYge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tcHJpbWFyeV9fX1Z0LTNmOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1wcmltYXJ5X19fMFhzazk6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm8ge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tYWNjZW50X19fNGgzTFQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tYWNjZW50X19fQWpTN1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc19fX3dvVEYyIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NfX183RUlXYzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc19fX05lMldJOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tbm90aWNlX19fZU9kVXA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ub3RpY2VfX19OZ1VSTDpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdfX19HajJoTTpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13YXJuaW5nX19fY0JtdDk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnEge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNyaXRpY2FsX19fUlFXWlk6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsX19fOVlsQ1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fRGQwUnkge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50X19fTEtsemc6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHA6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXN1Y2Nlc3NUaW50X19fbHNtSmg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdUaW50X19fajNQWlgge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3U6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXdhcm5pbmdUaW50X19fQzZ6bkQ6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50X19fVzZqSTg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3lSSmFBIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRfX184dERtZzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsVGludF9fX1RBQkhrOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tbGlua19fX25TTW05IHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZMzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1saW5rX19fODZKdGY6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tbGlua19fX0ZvSjVYOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQSB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1jb2RlX19fVjV1dVY6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tY29kZV9fX0lBSzdkOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVdzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29sb3ItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYVwiLFwiY29sb3ItaG92ZXItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNlwiLFwiY29sb3ItZm9jdXMtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZVwiLFwiY29sb3ItZGlzYWJsZWQtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSVwiLFwiY29sb3ItLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX2Y4YzFzXCIsXCJjb2xvci1ob3Zlci0td2hpdGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdoaXRlX19fTTZhUmdcIixcImNvbG9yLWZvY3VzLS13aGl0ZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2hpdGVfX19pNnVZelwiLFwiY29sb3ItZGlzYWJsZWQtLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13aGl0ZV9fX250allFXCIsXCJjb2xvci0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fMXZmcnZcIixcImNvbG9yLWhvdmVyLS10cmFuc3BhcmVudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX194bTdCRFwiLFwiY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS10cmFuc3BhcmVudF9fX3BkZS1XXCIsXCJjb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXRyYW5zcGFyZW50X19fWjBRdVVcIixcImNvbG9yLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenZcIixcImNvbG9yLWhvdmVyLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTAwX19fR0ZDb21cIixcImNvbG9yLWZvY3VzLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MTAwX19fQU03b01cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUpcIixcImNvbG9yLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0Q3MWZuXCIsXCJjb2xvci1ob3Zlci0tZ3JleTgwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4YlwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwX19fOFBseW9cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MF9fX3cxbnBjXCIsXCJjb2xvci0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WFwiLFwiY29sb3ItaG92ZXItLWdyZXk2MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTYwX19feGZabWJcIixcImNvbG9yLWZvY3VzLS1ncmV5NjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk2MF9fX2t3bTJHXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncVwiLFwiY29sb3ItLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTQwX19faVJPelJcIixcImNvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk0MF9fX3JiTjA0XCIsXCJjb2xvci1mb2N1cy0tZ3JleTQwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTQwX19fTmlaeGlcIixcImNvbG9yLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fX0x3bkwyXCIsXCJjb2xvci1ob3Zlci0tZ3JleTMwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaFwiLFwiY29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTMwX19fUVViNFNcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkzMF9fX0txOWdXXCIsXCJjb2xvci0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1b1wiLFwiY29sb3ItaG92ZXItLWdyZXkyNVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTI1X19fdFl5Z0RcIixcImNvbG9yLWZvY3VzLS1ncmV5MjVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkyNV9fX1R4aTVsXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xY1wiLFwiY29sb3ItLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTIwX19fRUYyT0xcIixcImNvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyMF9fX3VQdFhVXCIsXCJjb2xvci1mb2N1cy0tZ3JleTIwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXY1wiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTIwX19fdnB1eTFcIixcImNvbG9yLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2w1YVpwXCIsXCJjb2xvci1ob3Zlci0tZ3JleTEwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjclwiLFwiY29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTEwX19fVndXNzFcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkxMF9fX1k1cXl3XCIsXCJjb2xvci0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITVwiLFwiY29sb3ItaG92ZXItLWdyZXk3MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTcwX19fM2tydExcIixcImNvbG9yLWZvY3VzLS1ncmV5NzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk3MF9fX3AzaWV4XCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVlwiLFwiY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZFwiLFwiY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVfX19Eb2ZvMFwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19UNEJnRlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6c1wiLFwiY29sb3ItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX18wOFduVlwiLFwiY29sb3ItaG92ZXItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXByaW1hcnlfX19WdC0zZlwiLFwiY29sb3ItZm9jdXMtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMlwiLFwiY29sb3ItZGlzYWJsZWQtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXByaW1hcnlfX18wWHNrOVwiLFwiY29sb3ItLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm9cIixcImNvbG9yLWhvdmVyLS1hY2NlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWFjY2VudF9fXzRoM0xUXCIsXCJjb2xvci1mb2N1cy0tYWNjZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1hY2NlbnRfX19BalM3WVwiLFwiY29sb3ItZGlzYWJsZWQtLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzVcIixcImNvbG9yLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19fd29URjJcIixcImNvbG9yLWhvdmVyLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzX19fN0VJV2NcIixcImNvbG9yLWZvY3VzLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGlcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1zdWNjZXNzX19fTmUyV0lcIixcImNvbG9yLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHXCIsXCJjb2xvci1ob3Zlci0tbm90aWNlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ub3RpY2VfX19lT2RVcFwiLFwiY29sb3ItZm9jdXMtLW5vdGljZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tbm90aWNlX19fTmdVUkxcIixcImNvbG9yLWRpc2FibGVkLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyXCIsXCJjb2xvci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2FybmluZ19fX0dqMmhNXCIsXCJjb2xvci1mb2N1cy0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ19fX2NCbXQ5XCIsXCJjb2xvci1kaXNhYmxlZC0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSXCIsXCJjb2xvci0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnFcIixcImNvbG9yLWhvdmVyLS1jcml0aWNhbFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxfX19SUVdaWVwiLFwiY29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbF9fXzlZbENZXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTNcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19EZDBSeVwiLFwiY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fX0xLbHpnXCIsXCJjb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHBcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc1RpbnRfX19sc21KaFwiLFwiY29sb3ItLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX2ozUFpYXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3VcIixcImNvbG9yLWZvY3VzLS13YXJuaW5nVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ1RpbnRfX19DNnpuRFwiLFwiY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13YXJuaW5nVGludF9fX1c2akk4XCIsXCJjb2xvci0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX195UkphQVwiLFwiY29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjVcIixcImNvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fXzh0RG1nXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1jcml0aWNhbFRpbnRfX19UQUJIa1wiLFwiY29sb3ItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWxpbmtfX19uU01tOVwiLFwiY29sb3ItaG92ZXItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZM1wiLFwiY29sb3ItZm9jdXMtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWxpbmtfX184Nkp0ZlwiLFwiY29sb3ItZGlzYWJsZWQtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWxpbmtfX19Gb0o1WFwiLFwiY29sb3ItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQVwiLFwiY29sb3ItaG92ZXItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNvZGVfX19WNXV1VlwiLFwiY29sb3ItZm9jdXMtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNvZGVfX19JQUs3ZFwiLFwiY29sb3ItZGlzYWJsZWQtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVd1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMiB7XFxuICBjdXJzb3I6IGFsaWFzO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84IHtcXG4gIGN1cnNvcjogYWxsLXNjcm9sbDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2NlbGxfX181V08yRiB7XFxuICBjdXJzb3I6IGNlbGw7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb2x1bW4tcmVzaXplX19fcExxM3Mge1xcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY29udGV4dC1tZW51X19fSXFwNTYge1xcbiAgY3Vyc29yOiBjb250ZXh0LW1lbnU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb3B5X19fWFU3eUwge1xcbiAgY3Vyc29yOiBjb3B5O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY3Jvc3NoYWlyX19fMThheWsge1xcbiAgY3Vyc29yOiBjcm9zc2hhaXI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFQge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1yZXNpemVfX19TNEhGNSB7XFxuICBjdXJzb3I6IGUtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLSB7XFxuICBjdXJzb3I6IGV3LXJlc2l6ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2dyYWJfX19VdkFGNyB7XFxuICBjdXJzb3I6IGdyYWI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ncmFiYmluZ19fX01NaXZYIHtcXG4gIGN1cnNvcjogZ3JhYmJpbmc7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19oZWxwX19faUI4RzQge1xcbiAgY3Vyc29yOiBoZWxwO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbW92ZV9fX3lwZC1QIHtcXG4gIGN1cnNvcjogbW92ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vcnRoLXJlc2l6ZV9fXzdOa2hWIHtcXG4gIGN1cnNvcjogbi1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtcmVzaXplX19fTTRNSXoge1xcbiAgY3Vyc29yOiBuZS1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcSB7XFxuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5IHtcXG4gIGN1cnNvcjogbm8tZHJvcDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vbmVfX19FaTlzeiB7XFxuICBjdXJzb3I6IG5vbmU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1IHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU4ge1xcbiAgY3Vyc29yOiBucy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtcmVzaXplX19fY2tDb2gge1xcbiAgY3Vyc29yOiBudy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWUyB7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Byb2dyZXNzX19fSWdFeHkge1xcbiAgY3Vyc29yOiBwcm9ncmVzcztcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Jvdy1yZXNpemVfX18wU3NlNiB7XFxuICBjdXJzb3I6IHJvdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19zb3V0aC1yZXNpemVfX180RmVuUyB7XFxuICBjdXJzb3I6IHMtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGhlYXN0LXJlc2l6ZV9fX3c4aEdxIHtcXG4gIGN1cnNvcjogc2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGh3ZXN0LXJlc2l6ZV9fXzZVdjRHIHtcXG4gIGN1cnNvcjogc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3IHtcXG4gIGN1cnNvcjogdGV4dDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3ZlcnRpY2FsLXRleHRfX18zT2F6RSB7XFxuICBjdXJzb3I6IHZlcnRpY2FsLXRleHQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2IHtcXG4gIGN1cnNvcjogdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEcge1xcbiAgY3Vyc29yOiB3YWl0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fem9vbS1pbl9fX3pFREhRIHtcXG4gIGN1cnNvcjogem9vbS1pbjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzYge1xcbiAgY3Vyc29yOiB6b29tLW91dDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhbGlhc1wiOlwiY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMlwiLFwiYWxsLXNjcm9sbFwiOlwiY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84XCIsXCJjZWxsXCI6XCJjdXJzb3ItbW9kdWxlX19jZWxsX19fNVdPMkZcIixcImNvbHVtbi1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX2NvbHVtbi1yZXNpemVfX19wTHEzc1wiLFwiY29udGV4dC1tZW51XCI6XCJjdXJzb3ItbW9kdWxlX19jb250ZXh0LW1lbnVfX19JcXA1NlwiLFwiY29weVwiOlwiY3Vyc29yLW1vZHVsZV9fY29weV9fX1hVN3lMXCIsXCJjcm9zc2hhaXJcIjpcImN1cnNvci1tb2R1bGVfX2Nyb3NzaGFpcl9fXzE4YXlrXCIsXCJkZWZhdWx0XCI6XCJjdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFRcIixcImVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19lYXN0LXJlc2l6ZV9fX1M0SEY1XCIsXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLVwiLFwiZ3JhYlwiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYl9fX1V2QUY3XCIsXCJncmFiYmluZ1wiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYmJpbmdfX19NTWl2WFwiLFwiaGVscFwiOlwiY3Vyc29yLW1vZHVsZV9faGVscF9fX2lCOEc0XCIsXCJtb3ZlXCI6XCJjdXJzb3ItbW9kdWxlX19tb3ZlX19feXBkLVBcIixcIm5vcnRoLXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fbm9ydGgtcmVzaXplX19fN05raFZcIixcIm5vcnRoZWFzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRoZWFzdC1yZXNpemVfX19NNE1JelwiLFwibm9ydGhlYXN0LWFuZC1zb3V0aHdlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcVwiLFwibm8tZHJvcFwiOlwiY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5XCIsXCJub25lXCI6XCJjdXJzb3ItbW9kdWxlX19ub25lX19fRWk5c3pcIixcIm5vdC1hbGxvd2VkXCI6XCJjdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1XCIsXCJub3J0aC1hbmQtc291dGgtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU5cIixcIm5vcnRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRod2VzdC1yZXNpemVfX19ja0NvaFwiLFwibm9ydGh3ZXN0LWFuZC1zb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWU1wiLFwicG9pbnRlclwiOlwiY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLXCIsXCJwcm9ncmVzc1wiOlwiY3Vyc29yLW1vZHVsZV9fcHJvZ3Jlc3NfX19JZ0V4eVwiLFwicm93LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fcm93LXJlc2l6ZV9fXzBTc2U2XCIsXCJzb3V0aC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRoLXJlc2l6ZV9fXzRGZW5TXCIsXCJzb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19zb3V0aGVhc3QtcmVzaXplX19fdzhoR3FcIixcInNvdXRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRod2VzdC1yZXNpemVfX182VXY0R1wiLFwidGV4dFwiOlwiY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3XCIsXCJ2ZXJ0aWNhbC10ZXh0XCI6XCJjdXJzb3ItbW9kdWxlX192ZXJ0aWNhbC10ZXh0X19fM09hekVcIixcIndlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2XCIsXCJ3YWl0XCI6XCJjdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEdcIixcInpvb20taW5cIjpcImN1cnNvci1tb2R1bGVfX3pvb20taW5fX196RURIUVwiLFwiem9vbS1vdXRcIjpcImN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZGlzcGxheS1jb250ZW50cy1tb2R1bGVfX2NvbnRlbnRzX19fbVJlWEsge1xcbiAgZGlzcGxheTogY29udGVudHM7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29udGVudHNcIjpcImRpc3BsYXktY29udGVudHMtbW9kdWxlX19jb250ZW50c19fX21SZVhLXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzIGltZyxcXG5hIHtcXG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImRyYWdnYWJsZVwiOlwiZHJhZ2dhYmxlLW1vZHVsZV9fZHJhZ2dhYmxlX19fYmpDQTNcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmFkZWQvZmFkZWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5mYWRlZC1tb2R1bGVfX2ZhZGVkX19fLXViYk0ge1xcbiAgb3BhY2l0eTogNTAlO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZhZGVkXCI6XCJmYWRlZC1tb2R1bGVfX2ZhZGVkX19fLXViYk1cIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmxleC1jaGlsZC1tb2R1bGVfX2ZsZXgtY2hpbGRfX183QmRoZCB7XFxuICBmbGV4OiAxIDEgMDtcXG59XFxuXFxuLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkLS1zaHJpbmthYmxlX19fNkg1LS0ge1xcbiAgbWluLWhlaWdodDogMDtcXG4gIG1pbi13aWR0aDogMDtcXG59XFxuXFxuLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkLS1maXhlZF9fX0ZLZXRMIHtcXG4gIGZsZXgtc2hyaW5rOiAwO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZsZXgtY2hpbGRcIjpcImZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkX19fN0JkaGRcIixcImZsZXgtY2hpbGQtLXNocmlua2FibGVcIjpcImZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkLS1zaHJpbmthYmxlX19fNkg1LS1cIixcImZsZXgtY2hpbGQtLWZpeGVkXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tZml4ZWRfX19GS2V0TFwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5mbGV4LW1vZHVsZV9fZmxleF9fX2VGTEVjIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fd3JhcC0td3JhcF9fXzJMcVRnIHtcXG4gIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsX19fMEFpT2Yge1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsLXJldmVyc2VkX19fSW9lLTUge1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbF9fX2EzMnpvIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS1ob3Jpem9udGFsLXJldmVyc2VkX19faUx3REsge1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5fX19hNm9NSCB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kX19fNVlPVTQge1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlcl9fX3VyWllHIHtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoX19fTTVhejAge1xcbiAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRfX19QSEYxRSB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRfX19hTVB4MCB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX19iQU5pZyB7XFxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJfX18wVnN5OSB7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydF9fX2owSnp4IHtcXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRfX19EbVU1UiB7XFxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS16ZXJvX19fdzMtVGcge1xcbiAgZ2FwOiAwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXplcm9fX185NjBBNyB7XFxuICBjb2x1bW4tZ2FwOiAwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXplcm9fX19vS3VzVCB7XFxuICByb3ctZ2FwOiAwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS00eHNfX19yclRKZSB7XFxuICBnYXA6IDFweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhzX19fVFIzWUUge1xcbiAgY29sdW1uLWdhcDogMXB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eHNfX182aW4zaiB7XFxuICByb3ctZ2FwOiAxcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0zeHNfX19SY3VtUiB7XFxuICBnYXA6IDJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hzX19fWC1DMWEge1xcbiAgY29sdW1uLWdhcDogMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeHNfX19rVzBpTyB7XFxuICByb3ctZ2FwOiAycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eHNfX19VQjNGaiB7XFxuICBnYXA6IDRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHhzX19fdUladjIge1xcbiAgY29sdW1uLWdhcDogNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eHNfX190LWdxTiB7XFxuICByb3ctZ2FwOiA0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14c19fX3R0M1NvIHtcXG4gIGdhcDogOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14c19fX0I1b1hjIHtcXG4gIGNvbHVtbi1nYXA6IDhweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teHNfX18xRVgyZiB7XFxuICByb3ctZ2FwOiA4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1zX19fOW1ZelMge1xcbiAgZ2FwOiAxMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1zX19fYXZ0Zi0ge1xcbiAgY29sdW1uLWdhcDogMTJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tc19fX1lPQlZWIHtcXG4gIHJvdy1nYXA6IDEycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1tX19fQWItdDAge1xcbiAgZ2FwOiAxNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1tX19fUTZjQi0ge1xcbiAgY29sdW1uLWdhcDogMTZweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbV9fXzctRFEwIHtcXG4gIHJvdy1nYXA6IDE2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1sX19fY3Ztancge1xcbiAgZ2FwOiAyMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1sX19fRXBRdFQge1xcbiAgY29sdW1uLWdhcDogMjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbF9fX3hZaUtoIHtcXG4gIHJvdy1nYXA6IDIwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14bF9fX0NJc05QIHtcXG4gIGdhcDogMjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teGxfX19tTFV4UiB7XFxuICBjb2x1bW4tZ2FwOiAyNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14bF9fX0tXTjMzIHtcXG4gIHJvdy1nYXA6IDI0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eGxfX18xMnQtNiB7XFxuICBnYXA6IDI4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3ZBTHRmIHtcXG4gIGNvbHVtbi1nYXA6IDI4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXh4bF9fX0lkY3FVIHtcXG4gIHJvdy1nYXA6IDI4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0zeGxfX19pVXJ4MSB7XFxuICBnYXA6IDMycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4bF9fXy1OVjBaIHtcXG4gIGNvbHVtbi1nYXA6IDMycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTN4bF9fX1ZZY1JoIHtcXG4gIHJvdy1nYXA6IDMycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS00eGxfX19mWmlLViB7XFxuICBnYXA6IDM2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4bF9fX1g5S3B5IHtcXG4gIGNvbHVtbi1nYXA6IDM2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTR4bF9fX2RidlcwIHtcXG4gIHJvdy1nYXA6IDM2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS01eGxfX180M2hIdiB7XFxuICBnYXA6IDQwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJYeWVRIHtcXG4gIGNvbHVtbi1nYXA6IDQwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTV4bF9fX3F2ak9FIHtcXG4gIHJvdy1nYXA6IDQwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS02eGxfX19zUHk2TCB7XFxuICBnYXA6IDQ0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX3phZ1dNIHtcXG4gIGNvbHVtbi1nYXA6IDQ0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTZ4bF9fX1UtdVpKIHtcXG4gIHJvdy1nYXA6IDQ0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS03eGxfX19PYXd2LSB7XFxuICBnYXA6IDQ4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTd4bF9fX0t6ck1yIHtcXG4gIGNvbHVtbi1nYXA6IDQ4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTd4bF9fX3BBdkx2IHtcXG4gIHJvdy1nYXA6IDQ4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS04eGxfX19FZW9FLSB7XFxuICBnYXA6IDUycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2tiaW9KIHtcXG4gIGNvbHVtbi1nYXA6IDUycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTh4bF9fX1AtOS1lIHtcXG4gIHJvdy1nYXA6IDUycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS05eGxfX19UZ25VUyB7XFxuICBnYXA6IDU2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTl4bF9fX05HbDNKIHtcXG4gIGNvbHVtbi1nYXA6IDU2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTl4bF9fX0VHdWVoIHtcXG4gIHJvdy1nYXA6IDU2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0xMHhsX19fQ2YxdzYge1xcbiAgZ2FwOiA2MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMHhsX19fTEpSR2wge1xcbiAgY29sdW1uLWdhcDogNjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tMTB4bF9fX3pQdHlOIHtcXG4gIHJvdy1nYXA6IDYwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0xMXhsX19fb3JmZ0kge1xcbiAgZ2FwOiA2NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMXhsX19fZERLZHAge1xcbiAgY29sdW1uLWdhcDogNjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tMTF4bF9fX3ZERy1BIHtcXG4gIHJvdy1nYXA6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZmxleFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX19lRkxFY1wiLFwiZmxleF9fd3JhcC0td3JhcFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX3dyYXAtLXdyYXBfX18yTHFUZ1wiLFwiZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWxfX18wQWlPZlwiLFwiZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbC1yZXZlcnNlZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWwtcmV2ZXJzZWRfX19Jb2UtNVwiLFwiZmxleF9fZGlyZWN0aW9uLS1ob3Jpem9udGFsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS1ob3Jpem9udGFsX19fYTMyem9cIixcImZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZF9fX2lMd0RLXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2Vlbl9fX2E2b01IXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRfX181WU9VNFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlclwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJfX191clpZR1wiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaF9fX001YXowXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0XCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydF9fX1BIRjFFXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kX19fYU1QeDBcIixcImZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoX19fYkFOaWdcIixcImZsZXhfX2FsaWduSXRlbXMtLWNlbnRlclwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWNlbnRlcl9fXzBWc3k5XCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRfX19qMEp6eFwiLFwiZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRfX19EbVU1UlwiLFwiZmxleF9fZ2FwLS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS16ZXJvX19fdzMtVGdcIixcImZsZXhfX2dhcC0tY29sdW1uLS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXplcm9fX185NjBBN1wiLFwiZmxleF9fZ2FwLS1yb3ctLXplcm9cIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0temVyb19fX29LdXNUXCIsXCJmbGV4X19nYXAtLTR4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhzX19fcnJUSmVcIixcImZsZXhfX2dhcC0tY29sdW1uLS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhzX19fVFIzWUVcIixcImZsZXhfX2dhcC0tcm93LS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhzX19fNmluM2pcIixcImZsZXhfX2dhcC0tM3hzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0zeHNfX19SY3VtUlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0zeHNfX19YLUMxYVwiLFwiZmxleF9fZ2FwLS1yb3ctLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeHNfX19rVzBpT1wiLFwiZmxleF9fZ2FwLS14eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXh4c19fX1VCM0ZqXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4c19fX3VJWnYyXCIsXCJmbGV4X19nYXAtLXJvdy0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXh4c19fX3QtZ3FOXCIsXCJmbGV4X19nYXAtLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14c19fX3R0M1NvXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHNfX19CNW9YY1wiLFwiZmxleF9fZ2FwLS1yb3ctLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhzX19fMUVYMmZcIixcImZsZXhfX2dhcC0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tc19fXzltWXpTXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1zX19fYXZ0Zi1cIixcImZsZXhfX2dhcC0tcm93LS1zXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXNfX19ZT0JWVlwiLFwiZmxleF9fZ2FwLS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1tX19fQWItdDBcIixcImZsZXhfX2dhcC0tY29sdW1uLS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLW1fX19RNmNCLVwiLFwiZmxleF9fZ2FwLS1yb3ctLW1cIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbV9fXzctRFEwXCIsXCJmbGV4X19nYXAtLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWxfX19jdm1qd1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbF9fX0VwUXRUXCIsXCJmbGV4X19nYXAtLXJvdy0tbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS1sX19feFlpS2hcIixcImZsZXhfX2dhcC0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXhsX19fQ0lzTlBcIixcImZsZXhfX2dhcC0tY29sdW1uLS14bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14bF9fX21MVXhSXCIsXCJmbGV4X19nYXAtLXJvdy0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teGxfX19LV04zM1wiLFwiZmxleF9fZ2FwLS14eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXh4bF9fXzEydC02XCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3ZBTHRmXCIsXCJmbGV4X19nYXAtLXJvdy0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXh4bF9fX0lkY3FVXCIsXCJmbGV4X19nYXAtLTN4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hsX19faVVyeDFcIixcImZsZXhfX2dhcC0tY29sdW1uLS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hsX19fLU5WMFpcIixcImZsZXhfX2dhcC0tcm93LS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hsX19fVlljUmhcIixcImZsZXhfX2dhcC0tNHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS00eGxfX19mWmlLVlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS00eGxfX19YOUtweVwiLFwiZmxleF9fZ2FwLS1yb3ctLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eGxfX19kYnZXMFwiLFwiZmxleF9fZ2FwLS01eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTV4bF9fXzQzaEh2XCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJYeWVRXCIsXCJmbGV4X19nYXAtLXJvdy0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTV4bF9fX3F2ak9FXCIsXCJmbGV4X19nYXAtLTZ4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNnhsX19fc1B5NkxcIixcImZsZXhfX2dhcC0tY29sdW1uLS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNnhsX19femFnV01cIixcImZsZXhfX2dhcC0tcm93LS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNnhsX19fVS11WkpcIixcImZsZXhfX2dhcC0tN3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS03eGxfX19PYXd2LVwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS03eGxfX19LenJNclwiLFwiZmxleF9fZ2FwLS1yb3ctLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS03eGxfX19wQXZMdlwiLFwiZmxleF9fZ2FwLS04eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTh4bF9fX0Vlb0UtXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2tiaW9KXCIsXCJmbGV4X19nYXAtLXJvdy0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTh4bF9fX1AtOS1lXCIsXCJmbGV4X19nYXAtLTl4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOXhsX19fVGduVVNcIixcImZsZXhfX2dhcC0tY29sdW1uLS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tOXhsX19fTkdsM0pcIixcImZsZXhfX2dhcC0tcm93LS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tOXhsX19fRUd1ZWhcIixcImZsZXhfX2dhcC0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTB4bF9fX0NmMXc2XCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMHhsX19fTEpSR2xcIixcImZsZXhfX2dhcC0tcm93LS0xMHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTEweGxfX196UHR5TlwiLFwiZmxleF9fZ2FwLS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0xMXhsX19fb3JmZ0lcIixcImZsZXhfX2dhcC0tY29sdW1uLS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTExeGxfX19kREtkcFwiLFwiZmxleF9fZ2FwLS1yb3ctLTExeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tMTF4bF9fX3ZERy1BXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JhZGllbnQtbW9kdWxlX19ncmFkaWVudF9fX01EQnZGIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXN1cmZhY2VHcmFkaWVudCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZ3JhZGllbnRcIjpcImdyYWRpZW50LW1vZHVsZV9fZ3JhZGllbnRfX19NREJ2RlwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JheXNjYWxlLW1vZHVsZV9fZ3JheXNjYWxlX19fM21aUDYge1xcbiAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZ3JheXNjYWxlXCI6XCJncmF5c2NhbGUtbW9kdWxlX19ncmF5c2NhbGVfX18zbVpQNlwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ncmlkLW1vZHVsZV9fZ3JpZF9fX01QVGhPIHtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMV9fX1kwVTJNIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS0yX19fWWdTNEgge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTNfX19tYUJEMiB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNF9fXzczQmpBIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS01X19fU2x0LUQge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTZfX19ueU04eiB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX3hYZDNaIHtcXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLWNlbnRlcl9fX0U4bUwtIHtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRfX18yTmR2UyB7XFxuICBhbGlnbi1pdGVtczogc3RhcnQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tZW5kX19fMUlwWW0ge1xcbiAgYWxpZ24taXRlbXM6IGVuZDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXplcm9fX19HMXE4ZCB7XFxuICBnYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0temVyb19fX3lnUXBKIHtcXG4gIGNvbHVtbi1nYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0temVyb19fX3cxLU94IHtcXG4gIHJvdy1nYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4c19fX3pPMG12IHtcXG4gIGdhcDogMXB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS00eHNfX19HVW9kMyB7XFxuICBjb2x1bW4tZ2FwOiAxcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4c19fX3NWUVplIHtcXG4gIHJvdy1nYXA6IDFweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4c19fXy1JeFN3IHtcXG4gIGdhcDogMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0zeHNfX191dzQ2NiB7XFxuICBjb2x1bW4tZ2FwOiAycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4c19fX0pmd21ZIHtcXG4gIHJvdy1nYXA6IDJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4c19fX2doOGMtIHtcXG4gIGdhcDogNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eHNfX19FNzZnSyB7XFxuICBjb2x1bW4tZ2FwOiA0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4c19fX25oeHotIHtcXG4gIHJvdy1nYXA6IDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhzX19fR0g0aDIge1xcbiAgZ2FwOiA4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzX19fdVJxcmkge1xcbiAgY29sdW1uLWdhcDogOHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14c19fX2xBTkV1IHtcXG4gIHJvdy1nYXA6IDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXNfX183UjBwcyB7XFxuICBnYXA6IDEycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXNfX19hRFZBRyB7XFxuICBjb2x1bW4tZ2FwOiAxMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1zX19fQVJEbXgge1xcbiAgcm93LWdhcDogMTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLW1fX19tM1hpaCB7XFxuICBnYXA6IDE2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLW1fX19Dc3llTSB7XFxuICBjb2x1bW4tZ2FwOiAxNnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1tX19fc09BWG4ge1xcbiAgcm93LWdhcDogMTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWxfX18wU3lLbCB7XFxuICBnYXA6IDIwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLWxfX19KdkpoTSB7XFxuICBjb2x1bW4tZ2FwOiAyMHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1sX19fYXBIOGIge1xcbiAgcm93LWdhcDogMjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhsX19fSS12UnQge1xcbiAgZ2FwOiAyNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14bF9fX3QwU08zIHtcXG4gIGNvbHVtbi1nYXA6IDI0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhsX19fZXZORWQge1xcbiAgcm93LWdhcDogMjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4bF9fX2VXUzAyIHtcXG4gIGdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHhsX19fcy0tLWIge1xcbiAgY29sdW1uLWdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teHhsX19fSjRGN28ge1xcbiAgcm93LWdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4bF9fX0hWbGtEIHtcXG4gIGdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hsX19fekt0TEwge1xcbiAgY29sdW1uLWdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hsX19fRTlTVjkge1xcbiAgcm93LWdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4bF9fX00zRzNmIHtcXG4gIGdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhsX19fbm50LXAge1xcbiAgY29sdW1uLWdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhsX19fMVc4YmQge1xcbiAgcm93LWdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTV4bF9fX3lBblhEIHtcXG4gIGdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNXhsX19fMnc0UjEge1xcbiAgY29sdW1uLWdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNXhsX19fVkNmamcge1xcbiAgcm93LWdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTZ4bF9fX2hFbDBGIHtcXG4gIGdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNnhsX19fRnhQdHAge1xcbiAgY29sdW1uLWdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNnhsX19feW4xZi0ge1xcbiAgcm93LWdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTd4bF9fX2diR0h1IHtcXG4gIGdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tN3hsX19fVnlqMXAge1xcbiAgY29sdW1uLWdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tN3hsX19fNUJCc1Mge1xcbiAgcm93LWdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTh4bF9fX2pDbG1DIHtcXG4gIGdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOHhsX19fYnE3RXoge1xcbiAgY29sdW1uLWdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOHhsX19fd051WjIge1xcbiAgcm93LWdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTl4bF9fX2luRTFFIHtcXG4gIGdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOXhsX19fTXNmanEge1xcbiAgY29sdW1uLWdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOXhsX19faTIzLWMge1xcbiAgcm93LWdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTEweGxfX19MQ0R0YyB7XFxuICBnYXA6IDYwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTEweGxfX19vOGNCeSB7XFxuICBjb2x1bW4tZ2FwOiA2MHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMHhsX19fUmpSdzkge1xcbiAgcm93LWdhcDogNjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTExeGxfX19TcXVOYSB7XFxuICBnYXA6IDY0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTExeGxfX191U2VXeiB7XFxuICBjb2x1bW4tZ2FwOiA2NHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMXhsX19fanFHLUkge1xcbiAgcm93LWdhcDogNjRweDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJncmlkXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fX01QVGhPXCIsXCJncmlkX19jb2x1bW5zLS0xXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMV9fX1kwVTJNXCIsXCJncmlkX19jb2x1bW5zLS0yXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMl9fX1lnUzRIXCIsXCJncmlkX19jb2x1bW5zLS0zXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tM19fX21hQkQyXCIsXCJncmlkX19jb2x1bW5zLS00XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNF9fXzczQmpBXCIsXCJncmlkX19jb2x1bW5zLS01XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNV9fX1NsdC1EXCIsXCJncmlkX19jb2x1bW5zLS02XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNl9fX255TTh6XCIsXCJncmlkX19hbGlnbkl0ZW1zLS1zdHJldGNoXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX3hYZDNaXCIsXCJncmlkX19hbGlnbkl0ZW1zLS1jZW50ZXJcIjpcImdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1jZW50ZXJfX19FOG1MLVwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRcIjpcImdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1zdGFydF9fXzJOZHZTXCIsXCJncmlkX19hbGlnbkl0ZW1zLS1lbmRcIjpcImdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1lbmRfX18xSXBZbVwiLFwiZ3JpZF9fZ2FwLS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS16ZXJvX19fRzFxOGRcIixcImdyaWRfX2dhcC0tY29sdW1uLS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXplcm9fX195Z1FwSlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXplcm9cIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0temVyb19fX3cxLU94XCIsXCJncmlkX19nYXAtLTR4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNHhzX19fek8wbXZcIixcImdyaWRfX2dhcC0tY29sdW1uLS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhzX19fR1VvZDNcIixcImdyaWRfX2dhcC0tcm93LS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhzX19fc1ZRWmVcIixcImdyaWRfX2dhcC0tM3hzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0zeHNfX18tSXhTd1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0zeHNfX191dzQ2NlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0zeHNfX19KZndtWVwiLFwiZ3JpZF9fZ2FwLS14eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4c19fX2doOGMtXCIsXCJncmlkX19nYXAtLWNvbHVtbi0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4c19fX0U3NmdLXCIsXCJncmlkX19nYXAtLXJvdy0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4c19fX25oeHotXCIsXCJncmlkX19nYXAtLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14c19fX0dINGgyXCIsXCJncmlkX19nYXAtLWNvbHVtbi0teHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHNfX191UnFyaVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhzX19fbEFORXVcIixcImdyaWRfX2dhcC0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tc19fXzdSMHBzXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1zX19fYURWQUdcIixcImdyaWRfX2dhcC0tcm93LS1zXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXNfX19BUkRteFwiLFwiZ3JpZF9fZ2FwLS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1tX19fbTNYaWhcIixcImdyaWRfX2dhcC0tY29sdW1uLS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLW1fX19Dc3llTVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLW1cIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbV9fX3NPQVhuXCIsXCJncmlkX19nYXAtLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWxfX18wU3lLbFwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tbF9fX0p2SmhNXCIsXCJncmlkX19nYXAtLXJvdy0tbFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1sX19fYXBIOGJcIixcImdyaWRfX2dhcC0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhsX19fSS12UnRcIixcImdyaWRfX2dhcC0tY29sdW1uLS14bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14bF9fX3QwU08zXCIsXCJncmlkX19nYXAtLXJvdy0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teGxfX19ldk5FZFwiLFwiZ3JpZF9fZ2FwLS14eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4bF9fX2VXUzAyXCIsXCJncmlkX19nYXAtLWNvbHVtbi0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3MtLS1iXCIsXCJncmlkX19nYXAtLXJvdy0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4bF9fX0o0RjdvXCIsXCJncmlkX19nYXAtLTN4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tM3hsX19fSFZsa0RcIixcImdyaWRfX2dhcC0tY29sdW1uLS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hsX19fekt0TExcIixcImdyaWRfX2dhcC0tcm93LS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hsX19fRTlTVjlcIixcImdyaWRfX2dhcC0tNHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS00eGxfX19NM0czZlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS00eGxfX19ubnQtcFwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS00eGxfX18xVzhiZFwiLFwiZ3JpZF9fZ2FwLS01eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTV4bF9fX3lBblhEXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJ3NFIxXCIsXCJncmlkX19nYXAtLXJvdy0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTV4bF9fX1ZDZmpnXCIsXCJncmlkX19nYXAtLTZ4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNnhsX19faEVsMEZcIixcImdyaWRfX2dhcC0tY29sdW1uLS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNnhsX19fRnhQdHBcIixcImdyaWRfX2dhcC0tcm93LS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNnhsX19feW4xZi1cIixcImdyaWRfX2dhcC0tN3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS03eGxfX19nYkdIdVwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS03eGxfX19WeWoxcFwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS03eGxfX181QkJzU1wiLFwiZ3JpZF9fZ2FwLS04eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTh4bF9fX2pDbG1DXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2JxN0V6XCIsXCJncmlkX19nYXAtLXJvdy0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTh4bF9fX3dOdVoyXCIsXCJncmlkX19nYXAtLTl4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tOXhsX19faW5FMUVcIixcImdyaWRfX2dhcC0tY29sdW1uLS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOXhsX19fTXNmanFcIixcImdyaWRfX2dhcC0tcm93LS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOXhsX19faTIzLWNcIixcImdyaWRfX2dhcC0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tMTB4bF9fX0xDRHRjXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMHhsX19fbzhjQnlcIixcImdyaWRfX2dhcC0tcm93LS0xMHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTEweGxfX19SalJ3OVwiLFwiZ3JpZF9fZ2FwLS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0xMXhsX19fU3F1TmFcIixcImdyaWRfX2dhcC0tY29sdW1uLS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTExeGxfX191U2VXelwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTExeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tMTF4bF9fX2pxRy1JXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1mdWxsX19fLWlvamYge1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXplcm9fX19kNTd3VyB7XFxuICBtYXgtaGVpZ2h0OiAwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS00eHNfX19MSlVCbiB7XFxuICBtYXgtaGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0zeHNfX18tMldvLSB7XFxuICBtYXgtaGVpZ2h0OiAycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eHNfX19oRnJCZSB7XFxuICBtYXgtaGVpZ2h0OiA0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14c19fX2MycGFEIHtcXG4gIG1heC1oZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXNfX19BY3A2VCB7XFxuICBtYXgtaGVpZ2h0OiAxMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbV9fX1Z6b1E5IHtcXG4gIG1heC1oZWlnaHQ6IDE2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1sX19fV2dscWIge1xcbiAgbWF4LWhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXhsX19fTFVtbEoge1xcbiAgbWF4LWhlaWdodDogMjRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXh4bF9fX2RSM3pLIHtcXG4gIG1heC1oZWlnaHQ6IDI4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0zeGxfX19idWJURCB7XFxuICBtYXgtaGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhsX19fYmRaWDYge1xcbiAgbWF4LWhlaWdodDogMzZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTV4bF9fX1RVVEFSIHtcXG4gIG1heC1oZWlnaHQ6IDQwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS02eGxfX19HYy1IbCB7XFxuICBtYXgtaGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tN3hsX19fWXhkdFgge1xcbiAgbWF4LWhlaWdodDogNDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTh4bF9fX0EyV3ZkIHtcXG4gIG1heC1oZWlnaHQ6IDUycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS05eGxfX19KdnJHSiB7XFxuICBtYXgtaGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTB4bF9fX3dMUlF1IHtcXG4gIG1heC1oZWlnaHQ6IDYwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0xMXhsX19fZ1UzeEkge1xcbiAgbWF4LWhlaWdodDogNjRweDtcXG59XFxuXFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXplcm9fX19QQlY0NyB7XFxuICBtaW4taGVpZ2h0OiAwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eHNfX19WM04tYiB7XFxuICBtaW4taGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeHNfX190Z0RRUSB7XFxuICBtaW4taGVpZ2h0OiAycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eHNfX18tcWhTeiB7XFxuICBtaW4taGVpZ2h0OiA0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14c19fX1pJcHF1IHtcXG4gIG1pbi1oZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXNfX194TWlHYyB7XFxuICBtaW4taGVpZ2h0OiAxMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbV9fX1ZFV0xyIHtcXG4gIG1pbi1oZWlnaHQ6IDE2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1sX19fYTYtRjcge1xcbiAgbWluLWhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXhsX19fLXlsRnUge1xcbiAgbWluLWhlaWdodDogMjRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXh4bF9fXzdLNmYtIHtcXG4gIG1pbi1oZWlnaHQ6IDI4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeGxfX18wRlpRbSB7XFxuICBtaW4taGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhsX19fY0dvSmsge1xcbiAgbWluLWhlaWdodDogMzZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTV4bF9fX2ZWM2FPIHtcXG4gIG1pbi1oZWlnaHQ6IDQwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS02eGxfX19Ga1VHQyB7XFxuICBtaW4taGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tN3hsX19fQ3Npd1Yge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTh4bF9fX2gtLURLIHtcXG4gIG1pbi1oZWlnaHQ6IDUycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS05eGxfX19uRk1TSCB7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTB4bF9fX0thLWNBIHtcXG4gIG1pbi1oZWlnaHQ6IDYwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMXhsX19fZlFzZ2Mge1xcbiAgbWluLWhlaWdodDogNjRweDtcXG59XFxuXFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tc3RyZXRjaF9fX3JZYVluIHtcXG4gIGhlaWdodDogc3RyZXRjaDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tZnVsbF9fX3ZXeGllIHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tYXV0b19fXzY3bkZOIHtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0temVyb19fX0FxQTBQIHtcXG4gIGhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS00eHNfX19GZEowaCB7XFxuICBoZWlnaHQ6IDFweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hzX19fYXNVSmIge1xcbiAgaGVpZ2h0OiAycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4c19fX1lxVHFwIHtcXG4gIGhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14c19fX2xOUnRZIHtcXG4gIGhlaWdodDogOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1zX19fSDdtLS0ge1xcbiAgaGVpZ2h0OiAxMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1tX19fQ21McDEge1xcbiAgaGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1sX19fMnRra2gge1xcbiAgaGVpZ2h0OiAyMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14bF9fXzd4QkppIHtcXG4gIGhlaWdodDogMjRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teHhsX19fQ2pTdTUge1xcbiAgaGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeGxfX19wVWR2TiB7XFxuICBoZWlnaHQ6IDMycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4bF9fX1FIWll5IHtcXG4gIGhlaWdodDogMzZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNXhsX19fV2Jnbzcge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS02eGxfX19rd2M4YSB7XFxuICBoZWlnaHQ6IDQ0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTd4bF9fX211TzFsIHtcXG4gIGhlaWdodDogNDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tOHhsX19fOXBFTU4ge1xcbiAgaGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS05eGxfX182ZTQ2USB7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTEweGxfX19YZ1hwLSB7XFxuICBoZWlnaHQ6IDYwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTExeGxfX19hZHd1SCB7XFxuICBoZWlnaHQ6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibWF4LWhlaWdodC0tZnVsbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tZnVsbF9fXy1pb2pmXCIsXCJtYXgtaGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS16ZXJvX19fZDU3d1dcIixcIm1heC1oZWlnaHQtLTR4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhzX19fTEpVQm5cIixcIm1heC1oZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hzX19fLTJXby1cIixcIm1heC1oZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhzX19faEZyQmVcIixcIm1heC1oZWlnaHQtLXhzXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14c19fX2MycGFEXCIsXCJtYXgtaGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1zX19fQWNwNlRcIixcIm1heC1oZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLW1fX19Wem9ROVwiLFwibWF4LWhlaWdodC0tbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbF9fX1dnbHFiXCIsXCJtYXgtaGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teGxfX19MVW1sSlwiLFwibWF4LWhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eGxfX19kUjN6S1wiLFwibWF4LWhlaWdodC0tM3hsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0zeGxfX19idWJURFwiLFwibWF4LWhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS00eGxfX19iZFpYNlwiLFwibWF4LWhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS01eGxfX19UVVRBUlwiLFwibWF4LWhlaWdodC0tNnhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS02eGxfX19HYy1IbFwiLFwibWF4LWhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS03eGxfX19ZeGR0WFwiLFwibWF4LWhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS04eGxfX19BMld2ZFwiLFwibWF4LWhlaWdodC0tOXhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS05eGxfX19KdnJHSlwiLFwibWF4LWhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTB4bF9fX3dMUlF1XCIsXCJtYXgtaGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0xMXhsX19fZ1UzeElcIixcIm1pbi1oZWlnaHQtLXplcm9cIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXplcm9fX19QQlY0N1wiLFwibWluLWhlaWdodC0tNHhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eHNfX19WM04tYlwiLFwibWluLWhlaWdodC0tM3hzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeHNfX190Z0RRUVwiLFwibWluLWhlaWdodC0teHhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eHNfX18tcWhTelwiLFwibWluLWhlaWdodC0teHNcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXhzX19fWklwcXVcIixcIm1pbi1oZWlnaHQtLXNcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXNfX194TWlHY1wiLFwibWluLWhlaWdodC0tbVwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbV9fX1ZFV0xyXCIsXCJtaW4taGVpZ2h0LS1sXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1sX19fYTYtRjdcIixcIm1pbi1oZWlnaHQtLXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14bF9fXy15bEZ1XCIsXCJtaW4taGVpZ2h0LS14eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXh4bF9fXzdLNmYtXCIsXCJtaW4taGVpZ2h0LS0zeGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTN4bF9fXzBGWlFtXCIsXCJtaW4taGVpZ2h0LS00eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTR4bF9fX2NHb0prXCIsXCJtaW4taGVpZ2h0LS01eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTV4bF9fX2ZWM2FPXCIsXCJtaW4taGVpZ2h0LS02eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTZ4bF9fX0ZrVUdDXCIsXCJtaW4taGVpZ2h0LS03eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTd4bF9fX0NzaXdWXCIsXCJtaW4taGVpZ2h0LS04eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTh4bF9fX2gtLURLXCIsXCJtaW4taGVpZ2h0LS05eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTl4bF9fX25GTVNIXCIsXCJtaW4taGVpZ2h0LS0xMHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMHhsX19fS2EtY0FcIixcIm1pbi1oZWlnaHQtLTExeGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTExeGxfX19mUXNnY1wiLFwiaGVpZ2h0LS1zdHJldGNoXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXN0cmV0Y2hfX19yWWFZblwiLFwiaGVpZ2h0LS1mdWxsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWZ1bGxfX192V3hpZVwiLFwiaGVpZ2h0LS1hdXRvXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWF1dG9fX182N25GTlwiLFwiaGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXplcm9fX19BcUEwUFwiLFwiaGVpZ2h0LS00eHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhzX19fRmRKMGhcIixcImhlaWdodC0tM3hzXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTN4c19fX2FzVUpiXCIsXCJoZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eHNfX19ZcVRxcFwiLFwiaGVpZ2h0LS14c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14c19fX2xOUnRZXCIsXCJoZWlnaHQtLXNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tc19fX0g3bS0tXCIsXCJoZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tbV9fX0NtTHAxXCIsXCJoZWlnaHQtLWxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tbF9fXzJ0a2toXCIsXCJoZWlnaHQtLXhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXhsX19fN3hCSmlcIixcImhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4bF9fX0NqU3U1XCIsXCJoZWlnaHQtLTN4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeGxfX19wVWR2TlwiLFwiaGVpZ2h0LS00eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhsX19fUUhaWXlcIixcImhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTV4bF9fX1diZ283XCIsXCJoZWlnaHQtLTZ4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS02eGxfX19rd2M4YVwiLFwiaGVpZ2h0LS03eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tN3hsX19fbXVPMWxcIixcImhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTh4bF9fXzlwRU1OXCIsXCJoZWlnaHQtLTl4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS05eGxfX182ZTQ2UVwiLFwiaGVpZ2h0LS0xMHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTEweGxfX19YZ1hwLVwiLFwiaGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTExeGxfX19hZHd1SFwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9oaWRkZW4vaGlkZGVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaGlkZGVuLW1vZHVsZV9faGlkZGVuX19fblVVaTEge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJoaWRkZW5cIjpcImhpZGRlbi1tb2R1bGVfX2hpZGRlbl9fX25VVWkxXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIHRyYW5zaXRpb246IDI1MG1zIGNvbG9yLCAyNTBtcyBvcGFjaXR5LCAxNTBtcyBiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyBib3gtc2hhZG93O1xcbn1cXG4uaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoOm5vdCguaW50ZXJhY3RpdmUtbW9kdWxlX19pZ25vcmVGb2N1c1Zpc2libGVfX19XZHJERyk6Zm9jdXMtdmlzaWJsZSB7XFxuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYmx1ZSk7XFxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XFxufVxcbi5pbnRlcmFjdGl2ZS1tb2R1bGVfX2ludGVyYWN0aXZlX19fRmxVdWg6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWljb25BY3RpdmVDb2xvcik7XFxuICBib3gtc2hhZG93OiAwIDAgMCAwIHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG59XFxuLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aC5pbnRlcmFjdGl2ZS1tb2R1bGVfX2FjdGl2ZV9fX29tbTd5IHtcXG4gIGNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQ29sb3IpO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJpbnRlcmFjdGl2ZVwiOlwiaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoXCIsXCJpZ25vcmVGb2N1c1Zpc2libGVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9faWdub3JlRm9jdXNWaXNpYmxlX19fV2RyREdcIixcImFjdGl2ZVwiOlwiaW50ZXJhY3RpdmUtbW9kdWxlX19hY3RpdmVfX19vbW03eVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaW52aXNpYmxlLWJhY2tkcm9wLW1vZHVsZV9faW52aXNpYmxlQmFja2Ryb3BfX19oT2g1Yjo6YmFja2Ryb3Age1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaW52aXNpYmxlQmFja2Ryb3BcIjpcImludmlzaWJsZS1iYWNrZHJvcC1tb2R1bGVfX2ludmlzaWJsZUJhY2tkcm9wX19faE9oNWJcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS16ZXJvX19fZ0dMcXcge1xcbiAgbWFyZ2luLXRvcDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4c19fX0V2OHI3IHtcXG4gIG1hcmdpbi10b3A6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeHNfX19tNFlPWiB7XFxuICBtYXJnaW4tdG9wOiAycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhzX19fb3BYdnAge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXhzX19fSklqWUMge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXNfX19ZTjhESSB7XFxuICBtYXJnaW4tdG9wOiAxMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLW1fX19Yd2stUyB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLWxfX19LVFdpRyB7XFxuICBtYXJnaW4tdG9wOiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXhsX19fOUlPYloge1xcbiAgbWFyZ2luLXRvcDogMjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14eGxfX18zTVd6cCB7XFxuICBtYXJnaW4tdG9wOiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTN4bF9fX004eEgzIHtcXG4gIG1hcmdpbi10b3A6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNHhsX19fcnZOSFIge1xcbiAgbWFyZ2luLXRvcDogMzZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS01eGxfX19JbkVSeCB7XFxuICBtYXJnaW4tdG9wOiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTZ4bF9fX1BTLXQ2IHtcXG4gIG1hcmdpbi10b3A6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tN3hsX19fUDVZYnoge1xcbiAgbWFyZ2luLXRvcDogNDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS04eGxfX185Nk1vSyB7XFxuICBtYXJnaW4tdG9wOiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTl4bF9fX29wZURjIHtcXG4gIG1hcmdpbi10b3A6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTB4bF9fX3B2RjZ4IHtcXG4gIG1hcmdpbi10b3A6IDYwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTF4bF9fX3BCekFtIHtcXG4gIG1hcmdpbi10b3A6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS16ZXJvX19fQld3Nk8ge1xcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS00eHNfX19yZFBPbyB7XFxuICBtYXJnaW4tcmlnaHQ6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTN4c19fXy1ZOU9PIHtcXG4gIG1hcmdpbi1yaWdodDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhzX19fSnJvQUEge1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14c19fX1psOE1pIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tc19fXzI0REluIHtcXG4gIG1hcmdpbi1yaWdodDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLW1fX19aTGw2QiB7XFxuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1sX19fZUhTLUIge1xcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teGxfX19JVzhkNCB7XFxuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14eGxfX18tT0Q3TCB7XFxuICBtYXJnaW4tcmlnaHQ6IDI4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeGxfX190R1lSUiB7XFxuICBtYXJnaW4tcmlnaHQ6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS00eGxfX19FWHFoMyB7XFxuICBtYXJnaW4tcmlnaHQ6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS01eGxfX19DdVlWRyB7XFxuICBtYXJnaW4tcmlnaHQ6IDQwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS02eGxfX19ES2dEVCB7XFxuICBtYXJnaW4tcmlnaHQ6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS03eGxfX19Geng0YiB7XFxuICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS04eGxfX19FbFNXTSB7XFxuICBtYXJnaW4tcmlnaHQ6IDUycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS05eGxfX18wb2FUeCB7XFxuICBtYXJnaW4tcmlnaHQ6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0xMHhsX19fUTU1UEMge1xcbiAgbWFyZ2luLXJpZ2h0OiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTF4bF9fX3AwMmtuIHtcXG4gIG1hcmdpbi1yaWdodDogNjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS16ZXJvX19fbi1OVlEge1xcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4c19fX2lKSmFhIHtcXG4gIG1hcmdpbi1ib3R0b206IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeHNfX19md1FkMSB7XFxuICBtYXJnaW4tYm90dG9tOiAycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhzX19fNlVhZkgge1xcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXhzX19fejJKMWUge1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXNfX18tSEY2USB7XFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLW1fX19KSk9SRSB7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLWxfX19HSVpjRiB7XFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXhsX19fTTRBd04ge1xcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14eGxfX19UcjhtWiB7XFxuICBtYXJnaW4tYm90dG9tOiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTN4bF9fXy0wWi1IIHtcXG4gIG1hcmdpbi1ib3R0b206IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNHhsX19fNGxrU0Yge1xcbiAgbWFyZ2luLWJvdHRvbTogMzZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS01eGxfX196aXpVUCB7XFxuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTZ4bF9fX3NNbXRLIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tN3hsX19fSk9BWnIge1xcbiAgbWFyZ2luLWJvdHRvbTogNDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS04eGxfX19BNVE0QyB7XFxuICBtYXJnaW4tYm90dG9tOiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTl4bF9fXzd1U3p2IHtcXG4gIG1hcmdpbi1ib3R0b206IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTB4bF9fX0ptUUo1IHtcXG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTF4bF9fXzZLRVlzIHtcXG4gIG1hcmdpbi1ib3R0b206IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXplcm9fX192Q3ZTbyB7XFxuICBtYXJnaW4tbGVmdDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS00eHNfX19sSzUteSB7XFxuICBtYXJnaW4tbGVmdDogMXB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeHNfX183LXhWLSB7XFxuICBtYXJnaW4tbGVmdDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eHNfX19nZTZWSiB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14c19fX2R2clVqIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXNfX19ETVpKMiB7XFxuICBtYXJnaW4tbGVmdDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbV9fXzVwZWR3IHtcXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1sX19fLVN4REkge1xcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhsX19fNk4ta1oge1xcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4bF9fX1lrYXBZIHtcXG4gIG1hcmdpbi1sZWZ0OiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeGxfX184VVV1eCB7XFxuICBtYXJnaW4tbGVmdDogMzJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhsX19fYXFsNWIge1xcbiAgbWFyZ2luLWxlZnQ6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTV4bF9fX2hRTnRwIHtcXG4gIG1hcmdpbi1sZWZ0OiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS02eGxfX19TcVAzMSB7XFxuICBtYXJnaW4tbGVmdDogNDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tN3hsX19fZTBqLWoge1xcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTh4bF9fX3VrcFZ6IHtcXG4gIG1hcmdpbi1sZWZ0OiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS05eGxfX19sTkhCVCB7XFxuICBtYXJnaW4tbGVmdDogNTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTB4bF9fX0NCVVNuIHtcXG4gIG1hcmdpbi1sZWZ0OiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0xMXhsX19fdWNLQzgge1xcbiAgbWFyZ2luLWxlZnQ6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXplcm9fX195S0xESCB7XFxuICBtYXJnaW46IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhzX19fN25qc2kge1xcbiAgbWFyZ2luOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4c19fX2tXQmJlIHtcXG4gIG1hcmdpbjogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eHNfX19mWmlVYSB7XFxuICBtYXJnaW46IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHNfX18tdGRPaiB7XFxuICBtYXJnaW46IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tc19fXzB4UDBnIHtcXG4gIG1hcmdpbjogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbV9fX1dkNHBwIHtcXG4gIG1hcmdpbjogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbF9fX3lNVVhzIHtcXG4gIG1hcmdpbjogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teGxfX193alpQUiB7XFxuICBtYXJnaW46IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4bF9fX0VtNFQ3IHtcXG4gIG1hcmdpbjogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tM3hsX19fY1FaSGYge1xcbiAgbWFyZ2luOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS00eGxfX183SVdyTSB7XFxuICBtYXJnaW46IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTV4bF9fX2NTT1VRIHtcXG4gIG1hcmdpbjogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNnhsX19fRjNiU20ge1xcbiAgbWFyZ2luOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS03eGxfX18xVVFtSiB7XFxuICBtYXJnaW46IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTh4bF9fX0dFMFN2IHtcXG4gIG1hcmdpbjogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tOXhsX19faDVoaEUge1xcbiAgbWFyZ2luOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0xMHhsX19fZEdLLVIge1xcbiAgbWFyZ2luOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0xMXhsX19fM3l4QnAge1xcbiAgbWFyZ2luOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1hdXRvX19feTdnZjkge1xcbiAgbWFyZ2luOiBhdXRvO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1hcmdpbl9fdG9wLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0temVyb19fX2dHTHF3XCIsXCJtYXJnaW5fX3RvcC0tNHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNHhzX19fRXY4cjdcIixcIm1hcmdpbl9fdG9wLS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeHNfX19tNFlPWlwiLFwibWFyZ2luX190b3AtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4c19fX29wWHZwXCIsXCJtYXJnaW5fX3RvcC0teHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14c19fX0pJallDXCIsXCJtYXJnaW5fX3RvcC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXNfX19ZTjhESVwiLFwibWFyZ2luX190b3AtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1tX19fWHdrLVNcIixcIm1hcmdpbl9fdG9wLS1sXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tbF9fX0tUV2lHXCIsXCJtYXJnaW5fX3RvcC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14bF9fXzlJT2JaXCIsXCJtYXJnaW5fX3RvcC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhsX19fM01XenBcIixcIm1hcmdpbl9fdG9wLS0zeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeGxfX19NOHhIM1wiLFwibWFyZ2luX190b3AtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4bF9fX3J2TkhSXCIsXCJtYXJnaW5fX3RvcC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNXhsX19fSW5FUnhcIixcIm1hcmdpbl9fdG9wLS02eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS02eGxfX19QUy10NlwiLFwibWFyZ2luX190b3AtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTd4bF9fX1A1WWJ6XCIsXCJtYXJnaW5fX3RvcC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOHhsX19fOTZNb0tcIixcIm1hcmdpbl9fdG9wLS05eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS05eGxfX19vcGVEY1wiLFwibWFyZ2luX190b3AtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0xMHhsX19fcHZGNnhcIixcIm1hcmdpbl9fdG9wLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTF4bF9fX3BCekFtXCIsXCJtYXJnaW5fX3JpZ2h0LS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS16ZXJvX19fQld3Nk9cIixcIm1hcmdpbl9fcmlnaHQtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhzX19fcmRQT29cIixcIm1hcmdpbl9fcmlnaHQtLTN4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hzX19fLVk5T09cIixcIm1hcmdpbl9fcmlnaHQtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhzX19fSnJvQUFcIixcIm1hcmdpbl9fcmlnaHQtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14c19fX1psOE1pXCIsXCJtYXJnaW5fX3JpZ2h0LS1zXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1zX19fMjRESW5cIixcIm1hcmdpbl9fcmlnaHQtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLW1fX19aTGw2QlwiLFwibWFyZ2luX19yaWdodC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tbF9fX2VIUy1CXCIsXCJtYXJnaW5fX3JpZ2h0LS14bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teGxfX19JVzhkNFwiLFwibWFyZ2luX19yaWdodC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14eGxfX18tT0Q3TFwiLFwibWFyZ2luX19yaWdodC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeGxfX190R1lSUlwiLFwibWFyZ2luX19yaWdodC0tNHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS00eGxfX19FWHFoM1wiLFwibWFyZ2luX19yaWdodC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS01eGxfX19DdVlWR1wiLFwibWFyZ2luX19yaWdodC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS02eGxfX19ES2dEVFwiLFwibWFyZ2luX19yaWdodC0tN3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS03eGxfX19Geng0YlwiLFwibWFyZ2luX19yaWdodC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS04eGxfX19FbFNXTVwiLFwibWFyZ2luX19yaWdodC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS05eGxfX18wb2FUeFwiLFwibWFyZ2luX19yaWdodC0tMTB4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTB4bF9fX1E1NVBDXCIsXCJtYXJnaW5fX3JpZ2h0LS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0xMXhsX19fcDAya25cIixcIm1hcmdpbl9fYm90dG9tLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0temVyb19fX24tTlZRXCIsXCJtYXJnaW5fX2JvdHRvbS0tNHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNHhzX19faUpKYWFcIixcIm1hcmdpbl9fYm90dG9tLS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeHNfX19md1FkMVwiLFwibWFyZ2luX19ib3R0b20tLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4c19fXzZVYWZIXCIsXCJtYXJnaW5fX2JvdHRvbS0teHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14c19fX3oySjFlXCIsXCJtYXJnaW5fX2JvdHRvbS0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXNfX18tSEY2UVwiLFwibWFyZ2luX19ib3R0b20tLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1tX19fSkpPUkVcIixcIm1hcmdpbl9fYm90dG9tLS1sXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tbF9fX0dJWmNGXCIsXCJtYXJnaW5fX2JvdHRvbS0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14bF9fX000QXdOXCIsXCJtYXJnaW5fX2JvdHRvbS0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhsX19fVHI4bVpcIixcIm1hcmdpbl9fYm90dG9tLS0zeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeGxfX18tMFotSFwiLFwibWFyZ2luX19ib3R0b20tLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4bF9fXzRsa1NGXCIsXCJtYXJnaW5fX2JvdHRvbS0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNXhsX19feml6VVBcIixcIm1hcmdpbl9fYm90dG9tLS02eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS02eGxfX19zTW10S1wiLFwibWFyZ2luX19ib3R0b20tLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTd4bF9fX0pPQVpyXCIsXCJtYXJnaW5fX2JvdHRvbS0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOHhsX19fQTVRNENcIixcIm1hcmdpbl9fYm90dG9tLS05eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS05eGxfX183dVN6dlwiLFwibWFyZ2luX19ib3R0b20tLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0xMHhsX19fSm1RSjVcIixcIm1hcmdpbl9fYm90dG9tLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTF4bF9fXzZLRVlzXCIsXCJtYXJnaW5fX2xlZnQtLXplcm9cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0temVyb19fX3ZDdlNvXCIsXCJtYXJnaW5fX2xlZnQtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS00eHNfX19sSzUteVwiLFwibWFyZ2luX19sZWZ0LS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hzX19fNy14Vi1cIixcIm1hcmdpbl9fbGVmdC0teHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4c19fX2dlNlZKXCIsXCJtYXJnaW5fX2xlZnQtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhzX19fZHZyVWpcIixcIm1hcmdpbl9fbGVmdC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1zX19fRE1aSjJcIixcIm1hcmdpbl9fbGVmdC0tbVwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1tX19fNXBlZHdcIixcIm1hcmdpbl9fbGVmdC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1sX19fLVN4RElcIixcIm1hcmdpbl9fbGVmdC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teGxfX182Ti1rWlwiLFwibWFyZ2luX19sZWZ0LS14eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHhsX19fWWthcFlcIixcIm1hcmdpbl9fbGVmdC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTN4bF9fXzhVVXV4XCIsXCJtYXJnaW5fX2xlZnQtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS00eGxfX19hcWw1YlwiLFwibWFyZ2luX19sZWZ0LS01eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNXhsX19faFFOdHBcIixcIm1hcmdpbl9fbGVmdC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTZ4bF9fX1NxUDMxXCIsXCJtYXJnaW5fX2xlZnQtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS03eGxfX19lMGotalwiLFwibWFyZ2luX19sZWZ0LS04eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tOHhsX19fdWtwVnpcIixcIm1hcmdpbl9fbGVmdC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTl4bF9fX2xOSEJUXCIsXCJtYXJnaW5fX2xlZnQtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTB4bF9fX0NCVVNuXCIsXCJtYXJnaW5fX2xlZnQtLTExeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTF4bF9fX3VjS0M4XCIsXCJtYXJnaW4tLXplcm9cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0temVyb19fX3lLTERIXCIsXCJtYXJnaW4tLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS00eHNfX183bmpzaVwiLFwibWFyZ2luLS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tM3hzX19fa1dCYmVcIixcIm1hcmdpbi0teHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4c19fX2ZaaVVhXCIsXCJtYXJnaW4tLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhzX19fLXRkT2pcIixcIm1hcmdpbi0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1zX19fMHhQMGdcIixcIm1hcmdpbi0tbVwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1tX19fV2Q0cHBcIixcIm1hcmdpbi0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1sX19feU1VWHNcIixcIm1hcmdpbi0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teGxfX193alpQUlwiLFwibWFyZ2luLS14eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHhsX19fRW00VDdcIixcIm1hcmdpbi0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4bF9fX2NRWkhmXCIsXCJtYXJnaW4tLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS00eGxfX183SVdyTVwiLFwibWFyZ2luLS01eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNXhsX19fY1NPVVFcIixcIm1hcmdpbi0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTZ4bF9fX0YzYlNtXCIsXCJtYXJnaW4tLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS03eGxfX18xVVFtSlwiLFwibWFyZ2luLS04eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tOHhsX19fR0UwU3ZcIixcIm1hcmdpbi0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTl4bF9fX2g1aGhFXCIsXCJtYXJnaW4tLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTB4bF9fX2RHSy1SXCIsXCJtYXJnaW4tLTExeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTF4bF9fXzN5eEJwXCIsXCJtYXJnaW4tLWF1dG9cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tYXV0b19fX3k3Z2Y5XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL29mZnNldC1jaGlsZHJlbi9vZmZzZXQtY2hpbGRyZW4ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0temVyb19fXzhseUdpID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS16ZXJvX19fRGJJM2ogPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS16ZXJvX19faWhuU1ggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb19fX1E0TFhPID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS00eHNfX19MZk0weCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTR4c19fX1lleXc2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhzX19fVEFhREsgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4c19fXzZpV1VvID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNfX191cmtpZyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c19fX3lYSDN6ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tM3hzX19fZ0F6VkEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4c19fX1dyNDhjID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14eHNfX19kcVRUUyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4c19fX0VwNjZSID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzX19fOXZQWWQgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c19fX2p1dUtwID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14c19fX253NWFhID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHNfX19KZ0M2bCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzX19fY3h0VnggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzX19fMmlQNWcgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXNfX19IbTJpcCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1zX19fV2EzOE4gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tc19fX1dXQkZoID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tc19fX3d6RlY5ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tbV9fX1pqT0NNID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLW1fX19pcERrVyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1tX19fWThxRFcgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tX19fNFhKZnYgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1sX19fUXZUUm8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbF9fX0VHa0FSID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxfX19VblVIdiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLWxfX19qVk5OWCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhsX19fRU5jY1ggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teGxfX19ibXJzYSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14bF9fX0tqby1jID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teGxfX19ESFJ1eSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4bF9fX29uamVBID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4bF9fX3YtMVRsID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4bF9fX2ktYzJoID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsX19fcUcwODUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxfX19MOW1zUSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0zeGxfX193TU1ibSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeGxfX19iU1NPciA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4bF9fX2U5Vzd2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhsX19fVkFrLXggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsX19fRHl5NVggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsX19fWDB4NWEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eGxfX19RdWwtaiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDM2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTV4bF9fX2VXNVFrID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTV4bF9fX3BpYS1aID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTV4bF9fX2lBQWhvID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsX19feGp1Q0wgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxfX19DMFd2ayA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS02eGxfX184NHpwLSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQ0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS02eGxfX19pdWVCRiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTZ4bF9fX1VOUS1CID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tN3hsX19faFBjbGMgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsX19fNVJad1EgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0OHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsX19fSElwNkIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS03eGxfX19GaU9FSSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQ4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTh4bF9fX2d0NGZ1ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTh4bF9fX2ZQRU9EID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTh4bF9fXy10VGZQID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsX19fZFVYUmggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxfX19rUk5BNiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS05eGxfX19qYkhhQiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDU2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS05eGxfX19TRmdQbCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTl4bF9fX1RKaWVIID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTB4bF9fXy11dE9uID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTEweGxfX19hNTl3VCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMHhsX19fS2NlemUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsX19fTm9tWXUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsX19fU1l0Z24gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bF9fX1A2MnU0ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxfX19nMG9vZSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTExeGxfX19FT1dMLSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDY0cHgpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0temVyb19fXzhseUdpXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0temVyb1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXplcm9fX19EYkkzalwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXplcm9fX19paG5TWFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0temVyb19fX1E0TFhPXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhzX19fTGZNMHhcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eHNfX19ZZXl3NlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhzX19fVEFhREtcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhzX19fNmlXVW9cIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeHNfX191cmtpZ1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4c19fX3lYSDN6XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeHNfX19nQXpWQVwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeHNfX19XcjQ4Y1wiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c19fX2RxVFRTXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzX19fRXA2NlJcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4c19fXzl2UFlkXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c19fX2p1dUtwXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14c19fX253NWFhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14c19fX0pnQzZsXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhzX19fY3h0VnhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14c19fXzJpUDVnXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXNfX19IbTJpcFwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1zX19fV2EzOE5cIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1zX19fV1dCRmhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXNfX193ekZWOVwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1tX19fWmpPQ01cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1tXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbV9fX2lwRGtXXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tbV9fX1k4cURXXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1tX19fNFhKZnZcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tbF9fX1F2VFJvXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLWxfX19FR2tBUlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxfX19VblVIdlwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbF9fX2pWTk5YXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14bF9fX0VOY2NYXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14bF9fX2JtcnNhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsX19fS2pvLWNcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14bF9fX0RIUnV5XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsX19fb25qZUFcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eGxfX192LTFUbFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhsX19faS1jMmhcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsX19fcUcwODVcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0zeGxfX19MOW1zUVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bF9fX3dNTWJtXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeGxfX19iU1NPclwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeGxfX19lOVc3dlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4bF9fX1ZBay14XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhsX19fRHl5NVhcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTR4bF9fX1gweDVhXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4bF9fX1F1bC1qXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsX19fZVc1UWtcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS01eGxfX19waWEtWlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNXhsX19faUFBaG9cIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTV4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsX19feGp1Q0xcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS02eGxfX19DMFd2a1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bF9fXzg0enAtXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS02eGxfX19pdWVCRlwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNnhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS02eGxfX19VTlEtQlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTd4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTd4bF9fX2hQY2xjXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tN3hsX19fNVJad1FcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTd4bF9fX0hJcDZCXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS03eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTd4bF9fX0ZpT0VJXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsX19fZ3Q0ZnVcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS04eGxfX19mUEVPRFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tOHhsX19fLXRUZlBcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsX19fZFVYUmhcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS05eGxfX19rUk5BNlwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bF9fX2piSGFCXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS05eGxfX19TRmdQbFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS05eGxfX19USmllSFwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMHhsX19fLXV0T25cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTB4bF9fX2E1OXdUXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTB4bF9fX0tjZXplXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMHhsX19fTm9tWXVcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTF4bF9fX1NZdGduXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTExeGxfX19QNjJ1NFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxfX19nMG9vZVwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bF9fX0VPV0wtXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL29mZnNldC9vZmZzZXQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0temVyb19fX2Fwck9yIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXplcm9fX19iRk55NCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0temVyb19fXzVLZE14IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0temVyb19fX0RyajB1IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTR4c19fX0ZhOHplIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS00eHNfX19KYzdadyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNHhzX19fdDdqR3oge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNHhzX19fMm1jTFoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tM3hzX19faEh4QUsge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTN4c19fX3FQM0x2IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0zeHNfX19ObUQ3aSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0zeHNfX185WWx1ZSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14eHNfX19aQUt4byB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHhzX19fazlGNHgge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXh4c19fX0VFZjREIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXh4c19fXy1KNzVLIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXhzX19faXJwbmEge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXhzX19fM0dYb0gge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXhzX19fN1dZSkkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHNfX19xWS1sTyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1zX19fTmRSS3Ege1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1zX19fWUtmOWUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1zX19fbWl4cEEge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXNfX19tNmpmNSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tbV9fX0VYa3FpIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tbV9fX092bFlyIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tbV9fX1hTLVBHIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1tX19fbzB6Wi0ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLWxfX18wYkdhUCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLWxfX19TMS1MVyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLWxfX19oUzFiMyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tbF9fX3ZRNFl6IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14bF9fXzZNZktWIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teGxfX19kZ2JXVyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXhsX19fMGFXQjUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXhsX19feVB6OE8ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXh4bF9fX2l2SlJkIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHhsX19fWnRFNloge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14eGxfX180bEstRSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHhsX19fRU04ckIge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTN4bF9fX0E5QmtuIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tM3hsX19fekM4LWEge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0zeGxfX19XckwtVCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tM3hsX19fbmVXYXAge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTR4bF9fX0JXUTlpIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNHhsX19fOFg0a0Uge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDM2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS00eGxfX19IYzQwVCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTM2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNHhsX19fc1JqR1Ege1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDM2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTV4bF9fXzZ1UlhZIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNXhsX19fbldjNm4ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS01eGxfX19Wa1d6SiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNXhsX19fY25nS0Uge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTZ4bF9fX3RyN2hIIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNnhsX19fQ1lVMU0ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQ0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS02eGxfX18wSXVNYiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQ0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNnhsX19fLTFzd28ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQ0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTd4bF9fX043LVhkIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tN3hsX19fLXBBaHkge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQ4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS03eGxfX19teFZyayB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQ4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tN3hsX19fbnp1bFAge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQ4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTh4bF9fX2VNLTdXIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tOHhsX19fZW5wRW0ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS04eGxfX19qaUZZbiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tOHhsX19fRk5xTnMge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTl4bF9fXy1DbWg5IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tOXhsX19fdHdFM3Qge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDU2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS05eGxfX183NW11YiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTU2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tOXhsX19fa0NTc0Mge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDU2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTEweGxfX19qbGJoWiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTYwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTEweGxfX19yZXlUcSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTEweGxfX185cDNjbiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTYwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tMTB4bF9fX3Qtdm83IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0xMXhsX19fMG5yWmEge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0xMXhsX19fd2NmV2cge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDY0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0xMXhsX19fc0l0ZzUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTExeGxfX19OVXAtbiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjRweCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wib2Zmc2V0X190b3AtLXplcm9cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS16ZXJvX19fYXByT3JcIixcIm9mZnNldF9fYm90dG9tLS16ZXJvXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0temVyb19fX2JGTnk0XCIsXCJvZmZzZXRfX2xlZnQtLXplcm9cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0temVyb19fXzVLZE14XCIsXCJvZmZzZXRfX3JpZ2h0LS16ZXJvXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS16ZXJvX19fRHJqMHVcIixcIm9mZnNldF9fdG9wLS00eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS00eHNfX19GYTh6ZVwiLFwib2Zmc2V0X19ib3R0b20tLTR4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTR4c19fX0pjN1p3XCIsXCJvZmZzZXRfX2xlZnQtLTR4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS00eHNfX190N2pHelwiLFwib2Zmc2V0X19yaWdodC0tNHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS00eHNfX18ybWNMWlwiLFwib2Zmc2V0X190b3AtLTN4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTN4c19fX2hIeEFLXCIsXCJvZmZzZXRfX2JvdHRvbS0tM3hzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tM3hzX19fcVAzTHZcIixcIm9mZnNldF9fbGVmdC0tM3hzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTN4c19fX05tRDdpXCIsXCJvZmZzZXRfX3JpZ2h0LS0zeHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTN4c19fXzlZbHVlXCIsXCJvZmZzZXRfX3RvcC0teHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHhzX19fWkFLeG9cIixcIm9mZnNldF9fYm90dG9tLS14eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14eHNfX19rOUY0eFwiLFwib2Zmc2V0X19sZWZ0LS14eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHhzX19fRUVmNERcIixcIm9mZnNldF9fcmlnaHQtLXh4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHhzX19fLUo3NUtcIixcIm9mZnNldF9fdG9wLS14c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXhzX19faXJwbmFcIixcIm9mZnNldF9fYm90dG9tLS14c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXhzX19fM0dYb0hcIixcIm9mZnNldF9fbGVmdC0teHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHNfX183V1lKSVwiLFwib2Zmc2V0X19yaWdodC0teHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXhzX19fcVktbE9cIixcIm9mZnNldF9fdG9wLS1zXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tc19fX05kUktxXCIsXCJvZmZzZXRfX2JvdHRvbS0tc1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXNfX19ZS2Y5ZVwiLFwib2Zmc2V0X19sZWZ0LS1zXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXNfX19taXhwQVwiLFwib2Zmc2V0X19yaWdodC0tc1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tc19fX202amY1XCIsXCJvZmZzZXRfX3RvcC0tbVwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLW1fX19FWGtxaVwiLFwib2Zmc2V0X19ib3R0b20tLW1cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1tX19fT3ZsWXJcIixcIm9mZnNldF9fbGVmdC0tbVwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1tX19fWFMtUEdcIixcIm9mZnNldF9fcmlnaHQtLW1cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLW1fX19vMHpaLVwiLFwib2Zmc2V0X190b3AtLWxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1sX19fMGJHYVBcIixcIm9mZnNldF9fYm90dG9tLS1sXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tbF9fX1MxLUxXXCIsXCJvZmZzZXRfX2xlZnQtLWxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tbF9fX2hTMWIzXCIsXCJvZmZzZXRfX3JpZ2h0LS1sXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1sX19fdlE0WXpcIixcIm9mZnNldF9fdG9wLS14bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXhsX19fNk1mS1ZcIixcIm9mZnNldF9fYm90dG9tLS14bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXhsX19fZGdiV1dcIixcIm9mZnNldF9fbGVmdC0teGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teGxfX18wYVdCNVwiLFwib2Zmc2V0X19yaWdodC0teGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXhsX19feVB6OE9cIixcIm9mZnNldF9fdG9wLS14eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14eGxfX19pdkpSZFwiLFwib2Zmc2V0X19ib3R0b20tLXh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXh4bF9fX1p0RTZaXCIsXCJvZmZzZXRfX2xlZnQtLXh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14eGxfX180bEstRVwiLFwib2Zmc2V0X19yaWdodC0teHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14eGxfX19FTThyQlwiLFwib2Zmc2V0X190b3AtLTN4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTN4bF9fX0E5QmtuXCIsXCJvZmZzZXRfX2JvdHRvbS0tM3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tM3hsX19fekM4LWFcIixcIm9mZnNldF9fbGVmdC0tM3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTN4bF9fX1dyTC1UXCIsXCJvZmZzZXRfX3JpZ2h0LS0zeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTN4bF9fX25lV2FwXCIsXCJvZmZzZXRfX3RvcC0tNHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNHhsX19fQldROWlcIixcIm9mZnNldF9fYm90dG9tLS00eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS00eGxfX184WDRrRVwiLFwib2Zmc2V0X19sZWZ0LS00eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNHhsX19fSGM0MFRcIixcIm9mZnNldF9fcmlnaHQtLTR4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNHhsX19fc1JqR1FcIixcIm9mZnNldF9fdG9wLS01eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS01eGxfX182dVJYWVwiLFwib2Zmc2V0X19ib3R0b20tLTV4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTV4bF9fX25XYzZuXCIsXCJvZmZzZXRfX2xlZnQtLTV4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS01eGxfX19Wa1d6SlwiLFwib2Zmc2V0X19yaWdodC0tNXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS01eGxfX19jbmdLRVwiLFwib2Zmc2V0X190b3AtLTZ4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTZ4bF9fX3RyN2hIXCIsXCJvZmZzZXRfX2JvdHRvbS0tNnhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNnhsX19fQ1lVMU1cIixcIm9mZnNldF9fbGVmdC0tNnhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTZ4bF9fXzBJdU1iXCIsXCJvZmZzZXRfX3JpZ2h0LS02eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTZ4bF9fXy0xc3dvXCIsXCJvZmZzZXRfX3RvcC0tN3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tN3hsX19fTjctWGRcIixcIm9mZnNldF9fYm90dG9tLS03eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS03eGxfX18tcEFoeVwiLFwib2Zmc2V0X19sZWZ0LS03eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tN3hsX19fbXhWcmtcIixcIm9mZnNldF9fcmlnaHQtLTd4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tN3hsX19fbnp1bFBcIixcIm9mZnNldF9fdG9wLS04eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS04eGxfX19lTS03V1wiLFwib2Zmc2V0X19ib3R0b20tLTh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTh4bF9fX2VucEVtXCIsXCJvZmZzZXRfX2xlZnQtLTh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS04eGxfX19qaUZZblwiLFwib2Zmc2V0X19yaWdodC0tOHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS04eGxfX19GTnFOc1wiLFwib2Zmc2V0X190b3AtLTl4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTl4bF9fXy1DbWg5XCIsXCJvZmZzZXRfX2JvdHRvbS0tOXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tOXhsX19fdHdFM3RcIixcIm9mZnNldF9fbGVmdC0tOXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTl4bF9fXzc1bXViXCIsXCJvZmZzZXRfX3JpZ2h0LS05eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTl4bF9fX2tDU3NDXCIsXCJvZmZzZXRfX3RvcC0tMTB4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTEweGxfX19qbGJoWlwiLFwib2Zmc2V0X19ib3R0b20tLTEweGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0xMHhsX19fcmV5VHFcIixcIm9mZnNldF9fbGVmdC0tMTB4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0xMHhsX19fOXAzY25cIixcIm9mZnNldF9fcmlnaHQtLTEweGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTEweGxfX190LXZvN1wiLFwib2Zmc2V0X190b3AtLTExeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0xMXhsX19fMG5yWmFcIixcIm9mZnNldF9fYm90dG9tLS0xMXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tMTF4bF9fX3djZldnXCIsXCJvZmZzZXRfX2xlZnQtLTExeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tMTF4bF9fX3NJdGc1XCIsXCJvZmZzZXRfX3JpZ2h0LS0xMXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0xMXhsX19fTlVwLW5cIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvb3V0bGluZS9vdXRsaW5lLm1vZHVsZS5zY3NzXCIsIGNzczogXCIub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX18wV1AwciB7XFxuICBvdXRsaW5lLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fVXEtZ2Qge1xcbiAgb3V0bGluZS1jb2xvcjogd2hpdGU7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tdHJhbnNwYXJlbnRfX19UTm9NdiB7XFxuICBvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fVk1GN1kge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTgwX19fS2Q4Zk0ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19aR2pPdCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk0MF9fX3VhRm5HIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTMwX19fN1FCVlYge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19yLWJiSiB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkyMF9fX2l3emVMIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTEwX19faEp0dFMge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX18wT0dsVSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qUndIbiB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fUHhjbXgge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tYWNjZW50X19fak1oSU4ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tc3VjY2Vzc19fX3hqSkxuIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fX0NSaVliIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0td2FybmluZ19fXzFPZTdXIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19feVF4LUwge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fR0hhcS0ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdUaW50X19fWUFudHUge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX1ExbWRoIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tbGlua19fX3VJazNvIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNvZGVfX195Ym53aSB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS16ZXJvX19fRWtmek4ge1xcbiAgb3V0bGluZS13aWR0aDogMHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXh4c19fX2JHeVRyIHtcXG4gIG91dGxpbmUtd2lkdGg6IDFweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS14c19fX1paUjJCIHtcXG4gIG91dGxpbmUtd2lkdGg6IDJweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS1zX19fOGRERXoge1xcbiAgb3V0bGluZS13aWR0aDogM3B4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLW1fX19nMnVHNSB7XFxuICBvdXRsaW5lLXdpZHRoOiA0cHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tbF9fX1doMGJDIHtcXG4gIG91dGxpbmUtd2lkdGg6IDZweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS14bF9fXzhkT01qIHtcXG4gIG91dGxpbmUtd2lkdGg6IDhweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS14eGxfX19CRXNVbSB7XFxuICBvdXRsaW5lLXdpZHRoOiAxMHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTN4bF9fX0VzMFNZIHtcXG4gIG91dGxpbmUtd2lkdGg6IDEycHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tNHhsX19fWWVvdjgge1xcbiAgb3V0bGluZS13aWR0aDogMTRweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS01eGxfX19Oc1Y4UCB7XFxuICBvdXRsaW5lLXdpZHRoOiAxNnB4O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm91dGxpbmVcIjpcIm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEZcIixcImZvY3VzVmlzaWJsZVwiOlwib3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKXCIsXCJjb2xvci0taW5oZXJpdFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1pbmhlcml0X19fMFdQMHJcIixcImNvbG9yLS13aGl0ZVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX1VxLWdkXCIsXCJjb2xvci0tdHJhbnNwYXJlbnRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tdHJhbnNwYXJlbnRfX19UTm9NdlwiLFwiY29sb3ItLWdyZXkxMDBcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTEwMF9fX1ZNRjdZXCIsXCJjb2xvci0tZ3JleTgwXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0tkOGZNXCIsXCJjb2xvci0tZ3JleTYwXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk2MF9fX1pHak90XCIsXCJjb2xvci0tZ3JleTQwXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk0MF9fX3VhRm5HXCIsXCJjb2xvci0tZ3JleTMwXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fXzdRQlZWXCIsXCJjb2xvci0tZ3JleTI1XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkyNV9fX3ItYmJKXCIsXCJjb2xvci0tZ3JleTIwXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkyMF9fX2l3emVMXCIsXCJjb2xvci0tZ3JleTEwXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2hKdHRTXCIsXCJjb2xvci0tZ3JleTcwXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk3MF9fXzBPR2xVXCIsXCJjb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19falJ3SG5cIixcImNvbG9yLS1wcmltYXJ5XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX19QeGNteFwiLFwiY29sb3ItLWFjY2VudFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1hY2NlbnRfX19qTWhJTlwiLFwiY29sb3ItLXN1Y2Nlc3NcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tc3VjY2Vzc19fX3hqSkxuXCIsXCJjb2xvci0tbm90aWNlXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fX0NSaVliXCIsXCJjb2xvci0td2FybmluZ1wiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS13YXJuaW5nX19fMU9lN1dcIixcImNvbG9yLS1jcml0aWNhbFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbF9fX3lReC1MXCIsXCJjb2xvci0tc3VjY2Vzc1RpbnRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19HSGFxLVwiLFwiY29sb3ItLXdhcm5pbmdUaW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdUaW50X19fWUFudHVcIixcImNvbG9yLS1jcml0aWNhbFRpbnRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tY3JpdGljYWxUaW50X19fUTFtZGhcIixcImNvbG9yLS1saW5rXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWxpbmtfX191SWszb1wiLFwiY29sb3ItLWNvZGVcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tY29kZV9fX3libndpXCIsXCJ3aWR0aC0temVyb1wiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS16ZXJvX19fRWtmek5cIixcIndpZHRoLS14eHNcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0teHhzX19fYkd5VHJcIixcIndpZHRoLS14c1wiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS14c19fX1paUjJCXCIsXCJ3aWR0aC0tc1wiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS1zX19fOGRERXpcIixcIndpZHRoLS1tXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLW1fX19nMnVHNVwiLFwid2lkdGgtLWxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tbF9fX1doMGJDXCIsXCJ3aWR0aC0teGxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0teGxfX184ZE9NalwiLFwid2lkdGgtLXh4bFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS14eGxfX19CRXNVbVwiLFwid2lkdGgtLTN4bFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS0zeGxfX19FczBTWVwiLFwid2lkdGgtLTR4bFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS00eGxfX19ZZW92OFwiLFwid2lkdGgtLTV4bFwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS01eGxfX19Oc1Y4UFwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvdy5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3ctLWhpZGUtc2Nyb2xsYmFyX19fd2M2alAge1xcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0taGlkZGVuX19fVUJJWFEge1xcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tdmlzaWJsZV9fX3NmT2JVIHtcXG4gIG92ZXJmbG93LXk6IHZpc2libGU7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1zY3JvbGxfX195a1oyMSB7XFxuICBvdmVyZmxvdy15OiBzY3JvbGw7XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1hdXRvX19fMU9OSEsge1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLWhpZGRlbl9fX0xLM1VoIHtcXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLXZpc2libGVfX191LS02RiB7XFxuICBvdmVyZmxvdy14OiB2aXNpYmxlO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tc2Nyb2xsX19fYWlJSDYge1xcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tYXV0b19fX1M2b1ZMIHtcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wib3ZlcmZsb3ctLWhpZGUtc2Nyb2xsYmFyXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93LS1oaWRlLXNjcm9sbGJhcl9fX3djNmpQXCIsXCJvdmVyZmxvd19feS0taGlkZGVuXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1oaWRkZW5fX19VQklYUVwiLFwib3ZlcmZsb3dfX3ktLXZpc2libGVcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLXZpc2libGVfX19zZk9iVVwiLFwib3ZlcmZsb3dfX3ktLXNjcm9sbFwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tc2Nyb2xsX19feWtaMjFcIixcIm92ZXJmbG93X195LS1hdXRvXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS1hdXRvX19fMU9OSEtcIixcIm92ZXJmbG93X194LS1oaWRkZW5cIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLWhpZGRlbl9fX0xLM1VoXCIsXCJvdmVyZmxvd19feC0tdmlzaWJsZVwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tdmlzaWJsZV9fX3UtLTZGXCIsXCJvdmVyZmxvd19feC0tc2Nyb2xsXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1zY3JvbGxfX19haUlINlwiLFwib3ZlcmZsb3dfX3gtLWF1dG9cIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLWF1dG9fX19TNm9WTFwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5wb3BvdmVyLW1vZHVsZV9fcG9wb3Zlcl9fb3ZlcmxheV9fX1RjS3YtIHtcXG4gIGluc2V0OiAwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICB6LWluZGV4OiA5OTk7XFxufVxcbi5wb3BvdmVyLW1vZHVsZV9fcG9wb3Zlcl9fY29udGVudF9fX1VDVVo2IHtcXG4gIHotaW5kZXg6IDEwMDA7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wicG9wb3Zlcl9fb3ZlcmxheVwiOlwicG9wb3Zlci1tb2R1bGVfX3BvcG92ZXJfX292ZXJsYXlfX19UY0t2LVwiLFwicG9wb3Zlcl9fY29udGVudFwiOlwicG9wb3Zlci1tb2R1bGVfX3BvcG92ZXJfX2NvbnRlbnRfX19VQ1VaNlwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi50ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tY2VudGVyX19fYkRyUjIge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4udGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLXJpZ2h0X19fSlZSTVAge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi50ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tbGVmdF9fX0xMTGs2IHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1widGV4dC1hbGlnbi0tY2VudGVyXCI6XCJ0ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tY2VudGVyX19fYkRyUjJcIixcInRleHQtYWxpZ24tLXJpZ2h0XCI6XCJ0ZXh0LWFsaWduLW1vZHVsZV9fdGV4dC1hbGlnbi0tcmlnaHRfX19KVlJNUFwiLFwidGV4dC1hbGlnbi0tbGVmdFwiOlwidGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLWxlZnRfX19MTExrNlwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90aW50L3RpbnQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi50aW50LW1vZHVsZV9fdGludF9fX2dDekc3LCAudGludC1tb2R1bGVfX3RpbnRfX19nQ3pHNyAqIHtcXG4gIGZpbGw6IHZhcigtLWVsZW1lbnQtdGludCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1widGludFwiOlwidGludC1tb2R1bGVfX3RpbnRfX19nQ3pHN1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi50cmFuc2l0aW9uLW1vZHVsZV9fdHJhbnNpdGlvbl9fX1N3d09FIHtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcInRyYW5zaXRpb25cIjpcInRyYW5zaXRpb24tbW9kdWxlX190cmFuc2l0aW9uX19fU3d3T0VcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLnZpc3VhbGx5LWhpZGRlbi1tb2R1bGVfX3Zpc3VhbGx5LWhpZGRlbl9fX0RQdWxNIHtcXG4gIG9wYWNpdHk6IDA7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1widmlzdWFsbHktaGlkZGVuXCI6XCJ2aXN1YWxseS1oaWRkZW4tbW9kdWxlX192aXN1YWxseS1oaWRkZW5fX19EUHVsTVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy93aWR0aC93aWR0aC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1mdWxsX19fbm9Ja1Qge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWNvbnRlbnRfX195a3NVciB7XFxuICBtYXgtd2lkdGg6IDkwMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXplcm9fX184TlVGMSB7XFxuICBtYXgtd2lkdGg6IDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS00eHNfX19nSGxMSSB7XFxuICBtYXgtd2lkdGg6IDFweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0zeHNfX19yZG9QOCB7XFxuICBtYXgtd2lkdGg6IDJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14eHNfX19qbHA4diB7XFxuICBtYXgtd2lkdGg6IDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14c19fX2tRc1d4IHtcXG4gIG1heC13aWR0aDogOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXNfX19NZ0dheiB7XFxuICBtYXgtd2lkdGg6IDEycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tbV9fX2FGelNjIHtcXG4gIG1heC13aWR0aDogMTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1sX19faUtsYUgge1xcbiAgbWF4LXdpZHRoOiAyMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXhsX19fNHpVZEMge1xcbiAgbWF4LXdpZHRoOiAyNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXh4bF9fXzU4ejNQIHtcXG4gIG1heC13aWR0aDogMjhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0zeGxfX18yWVhuSCB7XFxuICBtYXgtd2lkdGg6IDMycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNHhsX19fakZKOVYge1xcbiAgbWF4LXdpZHRoOiAzNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTV4bF9fXzctVlFHIHtcXG4gIG1heC13aWR0aDogNDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS02eGxfX19QUzM3SiB7XFxuICBtYXgtd2lkdGg6IDQ0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tN3hsX19fc1NCd2sge1xcbiAgbWF4LXdpZHRoOiA0OHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTh4bF9fX1YzSUh5IHtcXG4gIG1heC13aWR0aDogNTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS05eGxfX180VldFTSB7XFxuICBtYXgtd2lkdGg6IDU2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tMTB4bF9fX3o5N1RRIHtcXG4gIG1heC13aWR0aDogNjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0xMXhsX19fanhlblgge1xcbiAgbWF4LXdpZHRoOiA2NHB4O1xcbn1cXG5cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGhfX19xbmxZQyB7XFxuICAvKiBBcyB3aWRlIGFzIHRoZSBjb250ZW50IHdhbnRzIHRvIGJlLCBzbyBpdCBuZXZlciBoYXMgdG8gd3JhcCB0byBmaXQgaXRzIHN1cnJvdW5kaW5ncy4gKi9cXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1maXRfX18yVy1URCB7XFxuICBtaW4td2lkdGg6IG1heC1jb250ZW50O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXplcm9fX185NDI5UyB7XFxuICBtaW4td2lkdGg6IDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS00eHNfX18zVEdNLSB7XFxuICBtaW4td2lkdGg6IDFweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0zeHNfX19SNmozMiB7XFxuICBtaW4td2lkdGg6IDJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14eHNfX192aktkQyB7XFxuICBtaW4td2lkdGg6IDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14c19fX1YtTDFzIHtcXG4gIG1pbi13aWR0aDogOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXNfX19kSWZabSB7XFxuICBtaW4td2lkdGg6IDEycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tbV9fX0pINUlQIHtcXG4gIG1pbi13aWR0aDogMTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1sX19fR2drRTgge1xcbiAgbWluLXdpZHRoOiAyMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXhsX19fYUdMdWkge1xcbiAgbWluLXdpZHRoOiAyNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXh4bF9fX3pRT3RUIHtcXG4gIG1pbi13aWR0aDogMjhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0zeGxfX19KZXZEWiB7XFxuICBtaW4td2lkdGg6IDMycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNHhsX19fMWU2TjEge1xcbiAgbWluLXdpZHRoOiAzNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTV4bF9fX0t1bXRvIHtcXG4gIG1pbi13aWR0aDogNDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS02eGxfX19ZRWttOCB7XFxuICBtaW4td2lkdGg6IDQ0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tN3hsX19fdlgxRlkge1xcbiAgbWluLXdpZHRoOiA0OHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTh4bF9fX1ZiUWhrIHtcXG4gIG1pbi13aWR0aDogNTJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS05eGxfX19lVUtRaSB7XFxuICBtaW4td2lkdGg6IDU2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tMTB4bF9fX1pvTjNOIHtcXG4gIG1pbi13aWR0aDogNjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0xMXhsX19fQk5GakEge1xcbiAgbWluLXdpZHRoOiA2NHB4O1xcbn1cXG5cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tZnVsbF9fXzFtcGl6IHtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tc3RyZXRjaF9fX1JxdzAwIHtcXG4gIHdpZHRoOiBzdHJldGNoO1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0temVyb19fX0lOZFZ2IHtcXG4gIHdpZHRoOiAwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS00eHNfX19kUlVoVyB7XFxuICB3aWR0aDogMXB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tM3hzX19fb1JKMHoge1xcbiAgd2lkdGg6IDJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXh4c19fX0h5bDlSIHtcXG4gIHdpZHRoOiA0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS14c19fX0czalF6IHtcXG4gIHdpZHRoOiA4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS1zX19fLW16cW0ge1xcbiAgd2lkdGg6IDEycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS1tX19fbUVaNzcge1xcbiAgd2lkdGg6IDE2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS1sX19fcXlJTjcge1xcbiAgd2lkdGg6IDIwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS14bF9fX21PMjVJIHtcXG4gIHdpZHRoOiAyNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0teHhsX19fRUdRTXAge1xcbiAgd2lkdGg6IDI4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS0zeGxfX19IdWw3LSB7XFxuICB3aWR0aDogMzJweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTR4bF9fX3pPUGJTIHtcXG4gIHdpZHRoOiAzNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tNXhsX19feGJxbmkge1xcbiAgd2lkdGg6IDQwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS02eGxfX19ObWJmOSB7XFxuICB3aWR0aDogNDRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTd4bF9fX0IwbnZ3IHtcXG4gIHdpZHRoOiA0OHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tOHhsX19fVzFIRFAge1xcbiAgd2lkdGg6IDUycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS05eGxfX19LSkw4VSB7XFxuICB3aWR0aDogNTZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTEweGxfX185NHoxOSB7XFxuICB3aWR0aDogNjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTExeGxfX19qQi1MbiB7XFxuICB3aWR0aDogNjRweDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJtYXgtd2lkdGgtLWZ1bGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1mdWxsX19fbm9Ja1RcIixcIm1heC13aWR0aC0tY29udGVudFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWNvbnRlbnRfX195a3NVclwiLFwibWF4LXdpZHRoLS16ZXJvXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0temVyb19fXzhOVUYxXCIsXCJtYXgtd2lkdGgtLTR4c1wiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTR4c19fX2dIbExJXCIsXCJtYXgtd2lkdGgtLTN4c1wiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTN4c19fX3Jkb1A4XCIsXCJtYXgtd2lkdGgtLXh4c1wiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXh4c19fX2pscDh2XCIsXCJtYXgtd2lkdGgtLXhzXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHNfX19rUXNXeFwiLFwibWF4LXdpZHRoLS1zXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tc19fX01nR2F6XCIsXCJtYXgtd2lkdGgtLW1cIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1tX19fYUZ6U2NcIixcIm1heC13aWR0aC0tbFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLWxfX19pS2xhSFwiLFwibWF4LXdpZHRoLS14bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXhsX19fNHpVZENcIixcIm1heC13aWR0aC0teHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHhsX19fNTh6M1BcIixcIm1heC13aWR0aC0tM3hsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tM3hsX19fMllYbkhcIixcIm1heC13aWR0aC0tNHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNHhsX19fakZKOVZcIixcIm1heC13aWR0aC0tNXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNXhsX19fNy1WUUdcIixcIm1heC13aWR0aC0tNnhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNnhsX19fUFMzN0pcIixcIm1heC13aWR0aC0tN3hsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tN3hsX19fc1NCd2tcIixcIm1heC13aWR0aC0tOHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tOHhsX19fVjNJSHlcIixcIm1heC13aWR0aC0tOXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tOXhsX19fNFZXRU1cIixcIm1heC13aWR0aC0tMTB4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTEweGxfX196OTdUUVwiLFwibWF4LXdpZHRoLS0xMXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tMTF4bF9fX2p4ZW5YXCIsXCJtaW4td2lkdGhcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoX19fcW5sWUNcIixcIm1pbi13aWR0aC0tZml0XCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tZml0X19fMlctVERcIixcIm1pbi13aWR0aC0temVyb1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXplcm9fX185NDI5U1wiLFwibWluLXdpZHRoLS00eHNcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS00eHNfX18zVEdNLVwiLFwibWluLXdpZHRoLS0zeHNcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0zeHNfX19SNmozMlwiLFwibWluLXdpZHRoLS14eHNcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14eHNfX192aktkQ1wiLFwibWluLXdpZHRoLS14c1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXhzX19fVi1MMXNcIixcIm1pbi13aWR0aC0tc1wiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXNfX19kSWZabVwiLFwibWluLXdpZHRoLS1tXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tbV9fX0pINUlQXCIsXCJtaW4td2lkdGgtLWxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1sX19fR2drRThcIixcIm1pbi13aWR0aC0teGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14bF9fX2FHTHVpXCIsXCJtaW4td2lkdGgtLXh4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLXh4bF9fX3pRT3RUXCIsXCJtaW4td2lkdGgtLTN4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTN4bF9fX0pldkRaXCIsXCJtaW4td2lkdGgtLTR4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTR4bF9fXzFlNk4xXCIsXCJtaW4td2lkdGgtLTV4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTV4bF9fX0t1bXRvXCIsXCJtaW4td2lkdGgtLTZ4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTZ4bF9fX1lFa204XCIsXCJtaW4td2lkdGgtLTd4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTd4bF9fX3ZYMUZZXCIsXCJtaW4td2lkdGgtLTh4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTh4bF9fX1ZiUWhrXCIsXCJtaW4td2lkdGgtLTl4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTl4bF9fX2VVS1FpXCIsXCJtaW4td2lkdGgtLTEweGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0xMHhsX19fWm9OM05cIixcIm1pbi13aWR0aC0tMTF4bFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTExeGxfX19CTkZqQVwiLFwid2lkdGgtLWZ1bGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLWZ1bGxfX18xbXBpelwiLFwid2lkdGgtLXN0cmV0Y2hcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXN0cmV0Y2hfX19ScXcwMFwiLFwid2lkdGgtLXplcm9cIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXplcm9fX19JTmRWdlwiLFwid2lkdGgtLTR4c1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tNHhzX19fZFJVaFdcIixcIndpZHRoLS0zeHNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTN4c19fX29SSjB6XCIsXCJ3aWR0aC0teHhzXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS14eHNfX19IeWw5UlwiLFwid2lkdGgtLXhzXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS14c19fX0czalF6XCIsXCJ3aWR0aC0tc1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tc19fXy1tenFtXCIsXCJ3aWR0aC0tbVwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tbV9fX21FWjc3XCIsXCJ3aWR0aC0tbFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tbF9fX3F5SU43XCIsXCJ3aWR0aC0teGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXhsX19fbU8yNUlcIixcIndpZHRoLS14eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXh4bF9fX0VHUU1wXCIsXCJ3aWR0aC0tM3hsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS0zeGxfX19IdWw3LVwiLFwid2lkdGgtLTR4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tNHhsX19fek9QYlNcIixcIndpZHRoLS01eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTV4bF9fX3hicW5pXCIsXCJ3aWR0aC0tNnhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS02eGxfX19ObWJmOVwiLFwid2lkdGgtLTd4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tN3hsX19fQjBudndcIixcIndpZHRoLS04eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTh4bF9fX1cxSERQXCIsXCJ3aWR0aC0tOXhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS05eGxfX19LSkw4VVwiLFwid2lkdGgtLTEweGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTEweGxfX185NHoxOVwiLFwid2lkdGgtLTExeGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTExeGxfX19qQi1MblwifTsiLCAiaW1wb3J0ICogYXMgbW9kdWxlMCBmcm9tICcuL3BsdWdpbnMvYWJzb2x1dGUvYWJzb2x1dGUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTEgZnJvbSAnLi9wbHVnaW5zL2FuY2hvci9hbmNob3IubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTIgZnJvbSAnLi9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMyBmcm9tICcuL3BsdWdpbnMvYmxvY2svYmxvY2subW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTQgZnJvbSAnLi9wbHVnaW5zL2JvcmRlci9ib3JkZXIubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTUgZnJvbSAnLi9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvdy5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlNiBmcm9tICcuL3BsdWdpbnMvY29sb3IvY29sb3IubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTcgZnJvbSAnLi9wbHVnaW5zL2N1cnNvci9jdXJzb3IubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTggZnJvbSAnLi9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlOSBmcm9tICcuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxMCBmcm9tICcuL3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxMSBmcm9tICcuL3BsdWdpbnMvZmFkZWQvZmFkZWQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTEyIGZyb20gJy4vcGx1Z2lucy9mbGV4LWNoaWxkL2ZsZXgtY2hpbGQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTEzIGZyb20gJy4vcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTE0IGZyb20gJy4vcGx1Z2lucy9mb250L2ZvbnQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTE1IGZyb20gJy4vcGx1Z2lucy9ncmFkaWVudC9ncmFkaWVudC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTYgZnJvbSAnLi9wbHVnaW5zL2dyYXlzY2FsZS9ncmF5c2NhbGUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTE3IGZyb20gJy4vcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTE4IGZyb20gJy4vcGx1Z2lucy9oZWlnaHQvaGVpZ2h0Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxOSBmcm9tICcuL3BsdWdpbnMvaGlkZGVuL2hpZGRlbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjAgZnJvbSAnLi9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyMSBmcm9tICcuL3BsdWdpbnMvaW52aXNpYmxlLWJhY2tkcm9wL2ludmlzaWJsZS1iYWNrZHJvcC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjIgZnJvbSAnLi9wbHVnaW5zL21hcmdpbi9tYXJnaW4ubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTIzIGZyb20gJy4vcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjQgZnJvbSAnLi9wbHVnaW5zL29mZnNldC1jaGlsZHJlbi9vZmZzZXQtY2hpbGRyZW4ubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI1IGZyb20gJy4vcGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyNiBmcm9tICcuL3BsdWdpbnMvb3V0bGluZS9vdXRsaW5lLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyNyBmcm9tICcuL3BsdWdpbnMvb3ZlcmZsb3cvb3ZlcmZsb3cubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI4IGZyb20gJy4vcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI5IGZyb20gJy4vcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTMwIGZyb20gJy4vcGx1Z2lucy9yZWxhdGl2ZS9yZWxhdGl2ZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzEgZnJvbSAnLi9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzIgZnJvbSAnLi9wbHVnaW5zL3RpbnQvdGludC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzMgZnJvbSAnLi9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzQgZnJvbSAnLi9wbHVnaW5zL3RyYW5zaXRpb24vdHJhbnNpdGlvbi5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMzUgZnJvbSAnLi9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTM2IGZyb20gJy4vcGx1Z2lucy93aWR0aC93aWR0aC5tb2R1bGUuc2NzcydcblxuY29uc3QgbW9kdWxlcyA9IFttb2R1bGUwLG1vZHVsZTEsbW9kdWxlMixtb2R1bGUzLG1vZHVsZTQsbW9kdWxlNSxtb2R1bGU2LG1vZHVsZTcsbW9kdWxlOCxtb2R1bGU5LG1vZHVsZTEwLG1vZHVsZTExLG1vZHVsZTEyLG1vZHVsZTEzLG1vZHVsZTE0LG1vZHVsZTE1LG1vZHVsZTE2LG1vZHVsZTE3LG1vZHVsZTE4LG1vZHVsZTE5LG1vZHVsZTIwLG1vZHVsZTIxLG1vZHVsZTIyLG1vZHVsZTIzLG1vZHVsZTI0LG1vZHVsZTI1LG1vZHVsZTI2LG1vZHVsZTI3LG1vZHVsZTI4LG1vZHVsZTI5LG1vZHVsZTMwLG1vZHVsZTMxLG1vZHVsZTMyLG1vZHVsZTMzLG1vZHVsZTM0LG1vZHVsZTM1LG1vZHVsZTM2XTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbJ3BsdWdpbnMvYWJzb2x1dGUvYWJzb2x1dGUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2FuY2hvci9hbmNob3IubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvYmxvY2svYmxvY2subW9kdWxlLnNjc3MnLCdwbHVnaW5zL2JvcmRlci9ib3JkZXIubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvdy5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvY29sb3IvY29sb3IubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2N1cnNvci9jdXJzb3IubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLm1vZHVsZS5zY3NzJywncGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ZhZGVkL2ZhZGVkLm1vZHVsZS5zY3NzJywncGx1Z2lucy9mbGV4LWNoaWxkL2ZsZXgtY2hpbGQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ZsZXgvZmxleC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9ncmFkaWVudC9ncmFkaWVudC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZS5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZ3JpZC9ncmlkLm1vZHVsZS5zY3NzJywncGx1Z2lucy9oZWlnaHQvaGVpZ2h0Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9oaWRkZW4vaGlkZGVuLm1vZHVsZS5zY3NzJywncGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvaW52aXNpYmxlLWJhY2tkcm9wL2ludmlzaWJsZS1iYWNrZHJvcC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvbWFyZ2luL21hcmdpbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHMubW9kdWxlLnNjc3MnLCdwbHVnaW5zL29mZnNldC1jaGlsZHJlbi9vZmZzZXQtY2hpbGRyZW4ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL29mZnNldC9vZmZzZXQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL291dGxpbmUvb3V0bGluZS5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvb3ZlcmZsb3cvb3ZlcmZsb3cubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZS5zY3NzJywncGx1Z2lucy9yZWxhdGl2ZS9yZWxhdGl2ZS5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvdGV4dC1hbGlnbi90ZXh0LWFsaWduLm1vZHVsZS5zY3NzJywncGx1Z2lucy90aW50L3RpbnQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uLm1vZHVsZS5zY3NzJywncGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLm1vZHVsZS5zY3NzJywncGx1Z2lucy93aWR0aC93aWR0aC5tb2R1bGUuc2NzcyddXG4iLCAiaW1wb3J0IHR5cGUgeyBUdXBsZSB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5cbi8qIGM4IGlnbm9yZSBzdGFydCAqL1xuZXhwb3J0IHR5cGUgVFNoaXJ0U2l6ZSA9XG4gIHwgXCJ6ZXJvXCJcbiAgfCBgJHtSYW5nZTwzLCA0Pn14c2BcbiAgfCBcInh4c1wiXG4gIHwgXCJ4c1wiXG4gIHwgXCJzXCJcbiAgfCBcIm1cIlxuICB8IFwibFwiXG4gIHwgXCJ4bFwiXG4gIHwgXCJ4eGxcIlxuICB8IGAke1JhbmdlPDMsIDExPn14bGA7XG5cbmV4cG9ydCB0eXBlIFJhbmdlPFN0YXJ0IGV4dGVuZHMgbnVtYmVyLCBFbmQgZXh0ZW5kcyBudW1iZXI+ID0gUmFuZ2VJbXBsPFN0YXJ0LCBFbmQ+O1xudHlwZSBSYW5nZUltcGw8XG4gIFN0YXJ0IGV4dGVuZHMgbnVtYmVyLFxuICBFbmQgZXh0ZW5kcyBudW1iZXIsXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9Db25mdXNpbmdWb2lkVHlwZTogcmVxdWlyZWQgZm9yIHRoZSBidWlsZCB0byBwYXNzXG4gIFQgZXh0ZW5kcyB2b2lkW10gPSBUdXBsZTx2b2lkLCBTdGFydD4sXG4+ID0gRW5kIGV4dGVuZHMgVFtcImxlbmd0aFwiXSA/IEVuZCA6IFRbXCJsZW5ndGhcIl0gfCBSYW5nZUltcGw8U3RhcnQsIEVuZCwgW3VuZGVmaW5lZCwgLi4uVF0+O1xuXG4vKiBjOCBpZ25vcmUgZW5kICovXG5cbi8qKiBUaGUgYmFzZSB1bml0IChpbiBwaXhlbHMpIHRoZSB0LXNoaXJ0IHNjYWxlIGlzIGJ1aWx0IG9uLiBNaXJyb3JzIGAkdW5pdGAgaW4gYHNpemVzLnNjc3NgLiAqL1xuZXhwb3J0IGNvbnN0IHNpemVVbml0SW5QaXhlbHMgPSA0O1xuXG4vLyBNdWx0aXBsaWVyIHBlciBzaXplLCBtaXJyb3JpbmcgdGhlIGAkc2l6ZXNgIG1hcCBpbiBgc2l6ZXMuc2Nzc2AuIEtlZXAgdGhlIHR3byBpbiBzeW5jLlxuY29uc3Qgc2l6ZU11bHRpcGxpZXJzOiBSZWNvcmQ8VFNoaXJ0U2l6ZSwgbnVtYmVyPiA9IHtcbiAgemVybzogMCxcbiAgXCI0eHNcIjogMSAvIDQsXG4gIFwiM3hzXCI6IDEgLyAyLFxuICB4eHM6IDEsXG4gIHhzOiAyLFxuICBzOiAzLFxuICBtOiA0LFxuICBsOiA1LFxuICB4bDogNixcbiAgeHhsOiA3LFxuICBcIjN4bFwiOiA4LFxuICBcIjR4bFwiOiA5LFxuICBcIjV4bFwiOiAxMCxcbiAgXCI2eGxcIjogMTEsXG4gIFwiN3hsXCI6IDEyLFxuICBcIjh4bFwiOiAxMyxcbiAgXCI5eGxcIjogMTQsXG4gIFwiMTB4bFwiOiAxNSxcbiAgXCIxMXhsXCI6IDE2LFxufTtcblxuLyoqXG4gKiBUaGUgcGl4ZWwgbGVuZ3RoIG9mIGEgdC1zaGlydCBzaXplIFx1MjAxNCB0aGUgc2FtZSB2YWx1ZSB0aGUgYCRzaXplYC9gJHdpZHRoYC9gJGhlaWdodGBcbiAqIGNsYXNzZXMgcmVzb2x2ZSB0byBpbiBDU1MuIFVzZSB3aGVuIGEgbGVuZ3RoIGlzIG5lZWRlZCByYXRoZXIgdGhhbiBhIHNpemluZyBjbGFzcyxcbiAqIGUuZy4gdG8gZHJpdmUgYW4gaWNvbiBmb250J3MgYGZvbnQtc2l6ZWAuXG4gKi9cbmV4cG9ydCBjb25zdCB0U2hpcnRTaXplSW5QaXhlbHMgPSAoc2l6ZTogVFNoaXJ0U2l6ZSk6IG51bWJlciA9PiBzaXplVW5pdEluUGl4ZWxzICogc2l6ZU11bHRpcGxpZXJzW3NpemVdO1xuIiwgIi8qIGM4IGlnbm9yZSBzdGFydCAqL1xuaW1wb3J0IHsgZ2V0RWxlbWVudENvbXBvbmVudCB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZmxleFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZmxleC9mbGV4XCI7XG5pbXBvcnQgeyBncmlkUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ncmlkL2dyaWRcIjtcbmltcG9ydCB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyB3aWR0aFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvd2lkdGgvd2lkdGhcIjtcbmltcG9ydCB7IHBhZGRpbmdQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZ1wiO1xuaW1wb3J0IHsgc3R5bGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBoZWlnaHRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2hlaWdodC9oZWlnaHRcIjtcbmltcG9ydCB7IGJvcmRlclBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYm9yZGVyL2JvcmRlclwiO1xuaW1wb3J0IHsgZm9udFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZm9udC9mb250XCI7XG5pbXBvcnQgeyBjb2xvclBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvY29sb3IvY29sb3JcIjtcbmltcG9ydCB7IGJhY2tncm91bmRDb2xvclBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5pbXBvcnQgeyBncmFkaWVudFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZHJhZ2dhYmxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9kcmFnZ2FibGVcIjtcbmltcG9ydCB7IGRyb3BwYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJvcHBhYmxlXCI7XG5pbXBvcnQgeyBvYnNlcnZlciB9IGZyb20gXCJtb2J4LXJlYWN0XCI7XG5pbXBvcnQgeyB0b29sdGlwUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXBcIjtcbmltcG9ydCB7IHRyYW5zaXRpb25QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3RyYW5zaXRpb24vdHJhbnNpdGlvblwiO1xuaW1wb3J0IHsgb2Zmc2V0UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9vZmZzZXQvb2Zmc2V0XCI7XG5pbXBvcnQgeyBvZmZzZXRDaGlsZHJlblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlblwiO1xuaW1wb3J0IHsgaGlkZGVuUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9oaWRkZW4vaGlkZGVuXCI7XG5pbXBvcnQgeyBub1BvaW50ZXJFdmVudHNQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzXCI7XG5pbXBvcnQgeyBtYXJnaW5QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL21hcmdpbi9tYXJnaW5cIjtcbmltcG9ydCB7IHJlbGF0aXZlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9yZWxhdGl2ZS9yZWxhdGl2ZVwiO1xuaW1wb3J0IHsgYWJzb2x1dGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5pbXBvcnQgeyB2aXN1YWxseUhpZGRlblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlblwiO1xuaW1wb3J0IHsgaG92ZXJhYmxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nXCI7XG5pbXBvcnQgeyBib3hTaGFkb3dQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvd1wiO1xuaW1wb3J0IHsgb3ZlcmZsb3dQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93XCI7XG5pbXBvcnQgeyBmbGV4Q2hpbGRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZFwiO1xuaW1wb3J0IHsgZ3JheXNjYWxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlXCI7XG5pbXBvcnQgeyB0aW50UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy90aW50L3RpbnRcIjtcbmltcG9ydCB7IGZhZGVkUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mYWRlZC9mYWRlZFwiO1xuaW1wb3J0IHsgZW5hYmxlZFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkXCI7XG5pbXBvcnQgeyBmb2N1c2FibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGVcIjtcbmltcG9ydCB7IGFyZWFQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2FyZWEvYXJlYVwiO1xuaW1wb3J0IHsgYXJlYUNvbnRlbnRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2FyZWEtY29udGVudC9hcmVhLWNvbnRlbnRcIjtcbmltcG9ydCB7IHNpemVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3NpemUvc2l6ZVwiO1xuaW1wb3J0IHsgY3Vyc29yUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9jdXJzb3IvY3Vyc29yXCI7XG5pbXBvcnQgeyBjbGlja2FibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcbmltcG9ydCB7IHJlZlBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvcmVmL3JlZlwiO1xuaW1wb3J0IHsgZGlzcGxheUNvbnRlbnRzUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9kaXNwbGF5LWNvbnRlbnRzL2Rpc3BsYXktY29udGVudHNcIjtcbmltcG9ydCB7IHRleHRBbGlnblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvdGV4dC1hbGlnbi90ZXh0LWFsaWduXCI7XG5pbXBvcnQgeyBibG9ja1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYmxvY2svYmxvY2tcIjtcbmltcG9ydCB7IG91dGxpbmVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL291dGxpbmUvb3V0bGluZVwiO1xuaW1wb3J0IHsgaW50ZXJhY3RpdmVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlXCI7XG5pbXBvcnQgeyBwb3BvdmVyUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXJcIjtcbmltcG9ydCB7IGZsb2F0aW5nUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mbG9hdGluZy9mbG9hdGluZ1wiO1xuaW1wb3J0IHsgaW52aXNpYmxlQmFja2Ryb3BQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ludmlzaWJsZS1iYWNrZHJvcC9pbnZpc2libGUtYmFja2Ryb3BcIjtcbmltcG9ydCB7IG9uT3V0c2lkZUNsaWNrUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcbmltcG9ydCB7IGRyb3BEb3duTWVudVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZHJvcC1kb3duLW1lbnUvZHJvcC1kb3duLW1lbnVcIjtcbmltcG9ydCB7IGFuY2hvclBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvYW5jaG9yL2FuY2hvclwiO1xuXG5leHBvcnQgY29uc3Qgc2hhcmVkUGx1Z2lucyA9IFtcbiAgLy8gQ29udHJpYnV0ZXMgcHJvcHMgb2YgaXRzIG93biwgc28gaXQgaGFzIHRvIHJ1biBiZWZvcmUgdGhlIHBsdWdpbnMgdGhhdCByZXNvbHZlIHRoZW0uXG4gIGFuY2hvclBsdWdpbixcbiAgc2l6ZVBsdWdpbixcbiAgZHJhZ2dhYmxlUGx1Z2luLFxuICB0ZXh0QWxpZ25QbHVnaW4sXG4gIGRyb3BwYWJsZVBsdWdpbixcbiAgYXJlYVBsdWdpbixcbiAgYXJlYUNvbnRlbnRQbHVnaW4sXG4gIGZsZXhQbHVnaW4sXG4gIGdyaWRQbHVnaW4sXG4gIHdpZHRoUGx1Z2luLFxuICBoZWlnaHRQbHVnaW4sXG4gIGZsZXhDaGlsZFBsdWdpbixcbiAgb3ZlcmZsb3dQbHVnaW4sXG4gIHBhZGRpbmdQbHVnaW4sXG4gIG1hcmdpblBsdWdpbixcbiAgYmxvY2tQbHVnaW4sXG4gIGJveFNoYWRvd1BsdWdpbixcbiAgYm9yZGVyUGx1Z2luLFxuICBvdXRsaW5lUGx1Z2luLFxuICBpbnRlcmFjdGl2ZVBsdWdpbixcbiAgZm9udFBsdWdpbixcbiAgY29sb3JQbHVnaW4sXG4gIGJhY2tncm91bmRDb2xvclBsdWdpbixcbiAgZ3JhZGllbnRQbHVnaW4sXG4gIGdyYXlzY2FsZVBsdWdpbixcbiAgdGludFBsdWdpbixcbiAgZmFkZWRQbHVnaW4sXG4gIHN0eWxlUGx1Z2luLFxuICB0cmFuc2l0aW9uUGx1Z2luLFxuICBvZmZzZXRQbHVnaW4sXG4gIG9mZnNldENoaWxkcmVuUGx1Z2luLFxuICBoaWRkZW5QbHVnaW4sXG4gIG5vUG9pbnRlckV2ZW50c1BsdWdpbixcbiAgaW52aXNpYmxlQmFja2Ryb3BQbHVnaW4sXG4gIHZpc3VhbGx5SGlkZGVuUGx1Z2luLFxuICByZWxhdGl2ZVBsdWdpbixcbiAgYWJzb2x1dGVQbHVnaW4sXG4gIGN1cnNvclBsdWdpbixcbiAgZGlzcGxheUNvbnRlbnRzUGx1Z2luLFxuICBvbk91dHNpZGVDbGlja1BsdWdpbixcbiAgY2xhc3NOYW1lUGx1Z2luLFxuXTtcblxuY29uc3Qgc2hhcmVkQ2xpY2thYmxlUGx1Z2lucyA9IFtkcm9wRG93bk1lbnVQbHVnaW4sIHBvcG92ZXJQbHVnaW4sIGVuYWJsZWRQbHVnaW4sIGNsaWNrYWJsZVBsdWdpbl07XG5cbmV4cG9ydCBjb25zdCBnZXRTaGFyZWRUeXBlZFBsdWdpbnMgPSA8VCBleHRlbmRzIEhUTUxFbGVtZW50PigpID0+IFtcbiAgLi4uZ2V0U2hhcmVkQ2hpbGRyZW5BZGRpbmdUeXBlZFBsdWdpbnM8VD4oKSxcbiAgLi4uZ2V0U2hhcmVkTm9uQ2hpbGRyZW5BZGRpbmdUeXBlZFBsdWdpbnM8VD4oKSxcbl07XG5cbmNvbnN0IGdldFNoYXJlZENoaWxkcmVuQWRkaW5nVHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbdG9vbHRpcFBsdWdpbjxUPigpLCBmbG9hdGluZ1BsdWdpbjxUPigpXTtcblxuY29uc3QgZ2V0U2hhcmVkTm9uQ2hpbGRyZW5BZGRpbmdUeXBlZFBsdWdpbnMgPSA8VCBleHRlbmRzIEhUTUxFbGVtZW50PigpID0+IFtcbiAgaG92ZXJhYmxlUGx1Z2luPFQ+KCksXG4gIGhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW48VD4oKSxcbiAgZm9jdXNhYmxlUGx1Z2luPFQ+KCksXG4gIHJlZlBsdWdpbjxUPigpLFxuXTtcblxuZXhwb3J0IGNvbnN0IERpdiA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJkaXZcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxEaXZFbGVtZW50PigpKSk7XG5cbmV4cG9ydCB0eXBlIERpdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIERpdj47XG5cbi8vIFVzZSBkaXYgYXMgbmV1dHJhbCB0ZW1wbGF0ZSBmb3Igd2hhdCBjb21tb24gcHJvcHMgc2hvdWxkIGxvb2sgbGlrZVxuZXhwb3J0IGNvbnN0IENvbW1vbiA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJkaXZcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPGFueT4oKSkpO1xuZXhwb3J0IHR5cGUgQ29tbW9uUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQ29tbW9uPjtcblxuZXhwb3J0IGNvbnN0IFN2ZyA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJzdmdcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5cbmV4cG9ydCB0eXBlIFN2Z1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFN2Zz47XG5cbmV4cG9ydCBjb25zdCBJbnB1dCA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFxuICAgIFwiaW5wdXRcIixcbiAgICBlbmFibGVkUGx1Z2luLFxuICAgIC4uLnNoYXJlZFBsdWdpbnMsXG4gICAgLi4uZ2V0U2hhcmVkTm9uQ2hpbGRyZW5BZGRpbmdUeXBlZFBsdWdpbnM8SFRNTElucHV0RWxlbWVudD4oKSxcbiAgKSxcbik7XG5leHBvcnQgdHlwZSBJbnB1dFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIElucHV0PjtcblxuZXhwb3J0IGNvbnN0IFRleHRBcmVhID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0ZXh0YXJlYVwiLCBlbmFibGVkUGx1Z2luLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRleHRBcmVhRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgVGV4dEFyZWFQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUZXh0QXJlYT47XG5cbmV4cG9ydCBjb25zdCBGb3JtID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJmb3JtXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRm9ybUVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIEZvcm1Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBGb3JtPjtcblxuZXhwb3J0IGNvbnN0IFNwYW4gPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInNwYW5cIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxTcGFuRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgU3BhblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFNwYW4+O1xuXG5leHBvcnQgY29uc3QgQ2xpY2thYmxlRGl2ID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJkaXZcIiwgLi4uc2hhcmVkQ2xpY2thYmxlUGx1Z2lucywgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxEaXZFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBDbGlja2FibGVEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBDbGlja2FibGVEaXY+O1xuXG5leHBvcnQgY29uc3QgSSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJpXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEk+O1xuXG5leHBvcnQgY29uc3QgQSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJhXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MQW5jaG9yRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgQVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEE+O1xuXG5leHBvcnQgY29uc3QgQnV0dG9uID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXG4gICAgXCJidXR0b25cIixcbiAgICAuLi5zaGFyZWRDbGlja2FibGVQbHVnaW5zLFxuICAgIC4uLnNoYXJlZFBsdWdpbnMsXG4gICAgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxCdXR0b25FbGVtZW50PigpLFxuICApLFxuKTtcbmV4cG9ydCB0eXBlIEJ1dHRvblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEJ1dHRvbj47XG5cbmV4cG9ydCBjb25zdCBDb2RlID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImNvZGVcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBDb2RlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQ29kZT47XG5cbmV4cG9ydCBjb25zdCBMYWJlbCA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJsYWJlbFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIExhYmVsUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTGFiZWw+O1xuXG5leHBvcnQgY29uc3QgUHJlID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcInByZVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFByZUVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIFByZVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFByZT47XG5cbmV4cG9ydCBjb25zdCBOYXYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwibmF2XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgTmF2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTmF2PjtcblxuZXhwb3J0IGNvbnN0IEgxID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImgxXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEgxUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDE+O1xuXG5leHBvcnQgY29uc3QgSDIgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDJcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBIMj47XG5cbmV4cG9ydCBjb25zdCBIMyA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoM1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBIM1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEgzPjtcblxuZXhwb3J0IGNvbnN0IEg0ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImg0XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEg0UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDQ+O1xuXG5leHBvcnQgY29uc3QgSDUgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDVcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBINT47XG5cbmV4cG9ydCBjb25zdCBINiA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoNlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBINlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEg2PjtcblxuZXhwb3J0IGNvbnN0IE9sID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcIm9sXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MT0xpc3RFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBPbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIE9sPjtcblxuZXhwb3J0IGNvbnN0IFVsID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcInVsXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVUxpc3RFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBVbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFVsPjtcblxuZXhwb3J0IGNvbnN0IExpID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImxpXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MTElFbGVtZW50PigpKSk7XG5cbmV4cG9ydCBjb25zdCBDbGlja2FibGVMaSA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwibGlcIiwgLi4uc2hhcmVkQ2xpY2thYmxlUGx1Z2lucywgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxMSUVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIENsaWNrYWJsZUxpUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQ2xpY2thYmxlTGk+O1xuZXhwb3J0IHR5cGUgTGlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBMaT47XG5cbmV4cG9ydCBjb25zdCBQID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcInBcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxQYXJhZ3JhcGhFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBQUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgUD47XG5cbmV4cG9ydCBjb25zdCBUaCA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidGhcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUYWJsZUNlbGxFbGVtZW50PigpKSxcbik7XG5cbmV4cG9ydCB0eXBlIFRoUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVGg+O1xuXG5leHBvcnQgY29uc3QgVGQgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRkXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVDZWxsRWxlbWVudD4oKSksXG4pO1xuXG5leHBvcnQgdHlwZSBUZFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRkPjtcblxuZXhwb3J0IGNvbnN0IFRyID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0clwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlUm93RWxlbWVudD4oKSksXG4pO1xuXG5leHBvcnQgdHlwZSBUclByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRyPjtcblxuZXhwb3J0IGNvbnN0IFRhYmxlID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0YWJsZVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgVGFibGVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUYWJsZT47XG5cbmV4cG9ydCBjb25zdCBUQm9keSA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidGJvZHlcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBUQm9keVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRCb2R5PjtcblxuZXhwb3J0IGNvbnN0IERpYWxvZyA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwiZGlhbG9nXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRGlhbG9nRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgRGlhbG9nUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgRGlhbG9nPjtcblxuZXhwb3J0IGNvbnN0IENhbnZhcyA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwiY2FudmFzXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MQ2FudmFzRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgQ2FudmFzUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQ2FudmFzPjtcblxuZXhwb3J0IGNvbnN0IEltZyA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJpbWdcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxJbWFnZUVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEltZ1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEltZz47XG5cbi8qIGM4IGlnbm9yZSBlbmQgKi9cbiIsICJpbXBvcnQgZmxleFN0eWxlcyBmcm9tIFwiLi9mbGV4Lm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgSG9yaXpvbnRhbEZsZXhQcm9wcyA9IHtcbiAgZGlyZWN0aW9uPzogXCJob3Jpem9udGFsXCIgfCBcImhvcml6b250YWwtcmV2ZXJzZWRcIjtcblxuICBob3Jpem9udGFsQWxpZ24/OiBcImNlbnRlclwiIHwgXCJzcGFjZS1iZXR3ZWVuXCIgfCBcInNwYWNlLWFyb3VuZFwiIHwgXCJsZWZ0XCIgfCBcInJpZ2h0XCI7XG4gIHZlcnRpY2FsQWxpZ24/OiBcImNlbnRlclwiIHwgXCJzdHJldGNoXCIgfCBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbmV4cG9ydCB0eXBlIFZlcnRpY2FsRmxleFByb3BzID0ge1xuICBkaXJlY3Rpb24/OiBcInZlcnRpY2FsXCIgfCBcInZlcnRpY2FsLXJldmVyc2VkXCI7XG5cbiAgaG9yaXpvbnRhbEFsaWduPzogXCJjZW50ZXJcIiB8IFwic3RyZXRjaFwiIHwgXCJsZWZ0XCIgfCBcInJpZ2h0XCI7XG4gIHZlcnRpY2FsQWxpZ24/OiBcImNlbnRlclwiIHwgXCJzcGFjZS1iZXR3ZWVuXCIgfCBcInNwYWNlLWFyb3VuZFwiIHwgXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG5leHBvcnQgdHlwZSBNYXhpbWFsRmxleFByb3BzID0gKEhvcml6b250YWxGbGV4UHJvcHMgfCBWZXJ0aWNhbEZsZXhQcm9wcykgJiB7XG4gIGdhcD86IFRTaGlydFNpemUgfCB7IHJvdz86IFRTaGlydFNpemU7IGNvbHVtbj86IFRTaGlydFNpemUgfTtcbiAgd3JhcD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBTaW1wbGVGbGV4UHJvcCA9IGJvb2xlYW47XG5cbmV4cG9ydCB0eXBlIEZsZXhQbHVnaW5Qcm9wcyA9IHsgJGZsZXg/OiBTaW1wbGVGbGV4UHJvcCB8IE1heGltYWxGbGV4UHJvcHMgfTtcblxuZXhwb3J0IGNvbnN0IGZsZXhQbHVnaW4gPSBnZXRQbHVnaW48RmxleFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRmbGV4IH0gPSBwcm9wcztcblxuICBpZiAoISRmbGV4KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRmbGV4OiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBkaXJlY3Rpb24gPSBcImhvcml6b250YWxcIixcbiAgICB2ZXJ0aWNhbEFsaWduID0gXCJcIixcbiAgICBob3Jpem9udGFsQWxpZ24gPSBcIlwiLFxuICAgIGdhcCA9IHVuZGVmaW5lZCxcbiAgICB3cmFwLFxuICB9ID0gJGZsZXggPT09IHRydWUgPyB7fSA6ICRmbGV4O1xuXG4gIGNvbnN0IGhvcml6b250YWxBbGlnblByb3BzID0ge1xuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoYF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcInN0cmV0Y2hcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tY2VudGVyYF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcImNlbnRlclwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwidG9wXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwiYm90dG9tXCIsXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwic3BhY2UtYXJvdW5kXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5gXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzcGFjZS1iZXR3ZWVuXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwic3RyZXRjaFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tY2VudGVyYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwiY2VudGVyXCIsXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJsZWZ0XCIpIHx8XG4gICAgICAoZGlyZWN0aW9uID09PSBcImhvcml6b250YWwtcmV2ZXJzZWRcIiAmJiBob3Jpem9udGFsQWxpZ24gPT09IFwicmlnaHRcIiksXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRgXV06XG4gICAgICAoZGlyZWN0aW9uID09PSBcImhvcml6b250YWxcIiAmJiBob3Jpem9udGFsQWxpZ24gPT09IFwicmlnaHRcIikgfHxcbiAgICAgIChkaXJlY3Rpb24gPT09IFwiaG9yaXpvbnRhbC1yZXZlcnNlZFwiICYmIGhvcml6b250YWxBbGlnbiA9PT0gXCJsZWZ0XCIpLFxuICB9O1xuXG4gIGNvbnN0IHZlcnRpY2FsQWxpZ25Qcm9wcyA9IHtcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kYF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcInNwYWNlLWFyb3VuZFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuYF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcInNwYWNlLWJldHdlZW5cIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hgXV06IHZlcnRpY2FsQWxpZ24gPT09IFwic3RyZXRjaFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tY2VudGVyYF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcImNlbnRlclwiLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRgXV06XG4gICAgICAoZGlyZWN0aW9uID09PSBcInZlcnRpY2FsXCIgJiYgdmVydGljYWxBbGlnbiA9PT0gXCJ0b3BcIikgfHxcbiAgICAgIChkaXJlY3Rpb24gPT09IFwidmVydGljYWwtcmV2ZXJzZWRcIiAmJiB2ZXJ0aWNhbEFsaWduID09PSBcImJvdHRvbVwiKSxcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZGBdXTpcbiAgICAgIChkaXJlY3Rpb24gPT09IFwidmVydGljYWxcIiAmJiB2ZXJ0aWNhbEFsaWduID09PSBcImJvdHRvbVwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbC1yZXZlcnNlZFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwidG9wXCIpLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWNlbnRlcmBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcImNlbnRlclwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJsZWZ0XCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJyaWdodFwiLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgZmxleFN0eWxlcy5mbGV4LFxuICAgICAgZmxleFN0eWxlc1tgZmxleF9fZGlyZWN0aW9uLS0ke2RpcmVjdGlvbn1gXSxcblxuICAgICAgW1wiaG9yaXpvbnRhbFwiLCBcImhvcml6b250YWwtcmV2ZXJzZWRcIl0uaW5jbHVkZXMoZGlyZWN0aW9uKSA/IGhvcml6b250YWxBbGlnblByb3BzIDogdmVydGljYWxBbGlnblByb3BzLFxuXG4gICAgICB0eXBlb2YgZ2FwID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gZmxleFN0eWxlc1tgZmxleF9fZ2FwLS0ke2dhcH1gXVxuICAgICAgICA6IGdhcFxuICAgICAgICAgID8gW1xuICAgICAgICAgICAgICBnYXAuY29sdW1uID8gZmxleFN0eWxlc1tgZmxleF9fZ2FwLS1jb2x1bW4tLSR7Z2FwLmNvbHVtbn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgZ2FwLnJvdyA/IGZsZXhTdHlsZXNbYGZsZXhfX2dhcC0tcm93LS0ke2dhcC5yb3d9YF0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB3cmFwICYmIGZsZXhTdHlsZXNbYGZsZXhfX3dyYXAtLXdyYXBgXSxcblxuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICBdLFxuXG4gICAgJGZsZXg6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCBncmlkU3R5bGVzIGZyb20gXCIuL2dyaWQubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBHcmlkQ29sdW1ucyA9IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcblxuZXhwb3J0IHR5cGUgR3JpZFByb3BzID0ge1xuICBjb2x1bW5zOiBHcmlkQ29sdW1ucztcbiAgZ2FwPzogVFNoaXJ0U2l6ZSB8IHsgcm93PzogVFNoaXJ0U2l6ZTsgY29sdW1uPzogVFNoaXJ0U2l6ZSB9O1xuICBhbGlnbkl0ZW1zPzogXCJzdHJldGNoXCIgfCBcImNlbnRlclwiIHwgXCJzdGFydFwiIHwgXCJlbmRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIEdyaWRQbHVnaW5Qcm9wcyA9IHsgJGdyaWQ/OiBHcmlkUHJvcHMgfTtcblxuZXhwb3J0IGNvbnN0IGdyaWRQbHVnaW4gPSBnZXRQbHVnaW48R3JpZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRncmlkIH0gPSBwcm9wcztcblxuICBpZiAoISRncmlkKSB7XG4gICAgcmV0dXJuIHsgJGdyaWQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgeyBjb2x1bW5zLCBnYXAsIGFsaWduSXRlbXMgfSA9ICRncmlkO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgZ3JpZFN0eWxlcy5ncmlkLFxuICAgICAgZ3JpZFN0eWxlc1tgZ3JpZF9fY29sdW1ucy0tJHtjb2x1bW5zfWBdLFxuICAgICAgYWxpZ25JdGVtcyA/IGdyaWRTdHlsZXNbYGdyaWRfX2FsaWduSXRlbXMtLSR7YWxpZ25JdGVtc31gXSA6IHVuZGVmaW5lZCxcblxuICAgICAgdHlwZW9mIGdhcCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGdyaWRTdHlsZXNbYGdyaWRfX2dhcC0tJHtnYXB9YF1cbiAgICAgICAgOiBnYXBcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgZ2FwLmNvbHVtbiA/IGdyaWRTdHlsZXNbYGdyaWRfX2dhcC0tY29sdW1uLS0ke2dhcC5jb2x1bW59YF0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGdhcC5yb3cgPyBncmlkU3R5bGVzW2BncmlkX19nYXAtLXJvdy0tJHtnYXAucm93fWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIF0sXG5cbiAgICAkZ3JpZDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHdpZHRoU3R5bGVzIGZyb20gXCIuL3dpZHRoLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgc3R5bGVQbHVnaW4gfSBmcm9tIFwiLi4vc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuLyoqIEEgc2hhcmUgb2YgdGhlIHBhcmVudCdzIHdpZHRoLCBlLmcuIGBcIjMwJVwiYCwgZm9yIGxheW91dHMgdGhhdCBkaXZpZGUgYSByb3cgcmF0aGVyIHRoYW4gc2l6ZSBhIGJveC4gKi9cbmV4cG9ydCB0eXBlIFBlcmNlbnRhZ2UgPSBgJHtudW1iZXJ9JWA7XG5cbmV4cG9ydCB0eXBlICRXaWR0aFByb3BzID0ge1xuICB3aWR0aD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwic3RyZXRjaFwiIHwgUGVyY2VudGFnZTtcbiAgbWluPzogVFNoaXJ0U2l6ZSB8IFwiZml0XCIgfCBQZXJjZW50YWdlO1xuICBtYXg/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcImNvbnRlbnRcIiB8IFBlcmNlbnRhZ2U7XG59O1xuXG5leHBvcnQgdHlwZSBXaWR0aFBsdWdpblByb3BzID0geyAkd2lkdGg/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcInN0cmV0Y2hcIiB8IFBlcmNlbnRhZ2UgfCAkV2lkdGhQcm9wcyB9O1xuXG5jb25zdCBpc1BlcmNlbnRhZ2UgPSAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZhbHVlIGlzIFBlcmNlbnRhZ2UgPT4gdmFsdWU/LmVuZHNXaXRoKFwiJVwiKSA9PT0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IHdpZHRoUGx1Z2luID0gZ2V0UGx1Z2luPFdpZHRoUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkd2lkdGgsICRjbGFzc05hbWUsICRzdHlsZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgd2lkdGgsIG1pbiwgbWF4IH0gPSB0eXBlb2YgJHdpZHRoID09PSBcInN0cmluZ1wiID8geyB3aWR0aDogJHdpZHRoIH0gOiAoJHdpZHRoID8/IHt9KTtcbiAgY29uc3QgcGVyY2VudGFnZXMgPSB7XG4gICAgLi4uKGlzUGVyY2VudGFnZSh3aWR0aCkgPyB7IHdpZHRoIH0gOiB7fSksXG4gICAgLi4uKGlzUGVyY2VudGFnZShtaW4pID8geyBtaW5XaWR0aDogbWluIH0gOiB7fSksXG4gICAgLi4uKGlzUGVyY2VudGFnZShtYXgpID8geyBtYXhXaWR0aDogbWF4IH0gOiB7fSksXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICB3aWR0aCAmJiAhaXNQZXJjZW50YWdlKHdpZHRoKSA/IHdpZHRoU3R5bGVzW2B3aWR0aC0tJHt3aWR0aH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIG1pbiAmJiAhaXNQZXJjZW50YWdlKG1pbikgPyB3aWR0aFN0eWxlc1tgbWluLXdpZHRoLS0ke21pbn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIG1heCAmJiAhaXNQZXJjZW50YWdlKG1heCkgPyB3aWR0aFN0eWxlc1tgbWF4LXdpZHRoLS0ke21heH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgICRjbGFzc05hbWUsXG4gICAgXSxcbiAgICAkc3R5bGU6IE9iamVjdC5rZXlzKHBlcmNlbnRhZ2VzKS5sZW5ndGggPiAwID8geyAuLi4kc3R5bGUsIC4uLnBlcmNlbnRhZ2VzIH0gOiAkc3R5bGUsXG4gICAgJHdpZHRoOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuZXhwb3J0IHR5cGUgU3R5bGVQbHVnaW5Qcm9wcyA9IHsgJHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllczsgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzIH07XG5cbmV4cG9ydCBjb25zdCBzdHlsZVBsdWdpbiA9IGdldFBsdWdpbjxTdHlsZVBsdWdpblByb3BzPigocHJvcHMpID0+IHtcbiAgLyogYzggaWdub3JlIG5leHQgKi9cbiAgY29uc3QgJHN0eWxlID0gcHJvcHMuJHN0eWxlIHx8IHt9O1xuXG4gIGNvbnN0IHN0eWxlID0gcHJvcHMuc3R5bGUgfHwge307XG5cbiAgcmV0dXJuIHtcbiAgICBzdHlsZTogeyAuLi4kc3R5bGUsIC4uLnN0eWxlIH0sXG4gICAgJHN0eWxlOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgaGVpZ2h0U3R5bGVzIGZyb20gXCIuL2hlaWdodC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5pbXBvcnQgdHlwZSB7IFBlcmNlbnRhZ2UgfSBmcm9tIFwiLi4vd2lkdGgvd2lkdGhcIjtcblxuZXhwb3J0IHR5cGUgJEhlaWdodFByb3BzID0ge1xuICBoZWlnaHQ/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcInN0cmV0Y2hcIiB8IFwiYXV0b1wiIHwgUGVyY2VudGFnZTtcbiAgbWluPzogVFNoaXJ0U2l6ZSB8IFBlcmNlbnRhZ2U7XG4gIG1heD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFBlcmNlbnRhZ2U7XG59O1xuXG5leHBvcnQgdHlwZSBIZWlnaHRQbHVnaW5Qcm9wcyA9IHsgJGhlaWdodD86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwiYXV0b1wiIHwgXCJzdHJldGNoXCIgfCBQZXJjZW50YWdlIHwgJEhlaWdodFByb3BzIH07XG5cbmNvbnN0IGlzUGVyY2VudGFnZSA9ICh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogdmFsdWUgaXMgUGVyY2VudGFnZSA9PiB2YWx1ZT8uZW5kc1dpdGgoXCIlXCIpID09PSB0cnVlO1xuXG5leHBvcnQgY29uc3QgaGVpZ2h0UGx1Z2luID0gZ2V0UGx1Z2luPEhlaWdodFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbiwgdHlwZW9mIHN0eWxlUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGhlaWdodCwgJHN0eWxlIH0gPSBwcm9wcztcbiAgY29uc3QgeyBoZWlnaHQsIG1pbiwgbWF4IH0gPSB0eXBlb2YgJGhlaWdodCA9PT0gXCJzdHJpbmdcIiA/IHsgaGVpZ2h0OiAkaGVpZ2h0IH0gOiAoJGhlaWdodCA/PyB7fSk7XG4gIGNvbnN0IHBlcmNlbnRhZ2VzID0ge1xuICAgIC4uLihpc1BlcmNlbnRhZ2UoaGVpZ2h0KSA/IHsgaGVpZ2h0IH0gOiB7fSksXG4gICAgLi4uKGlzUGVyY2VudGFnZShtaW4pID8geyBtaW5IZWlnaHQ6IG1pbiB9IDoge30pLFxuICAgIC4uLihpc1BlcmNlbnRhZ2UobWF4KSA/IHsgbWF4SGVpZ2h0OiBtYXggfSA6IHt9KSxcbiAgfTtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIGhlaWdodCAmJiAhaXNQZXJjZW50YWdlKGhlaWdodCkgPyBoZWlnaHRTdHlsZXNbYGhlaWdodC0tJHtoZWlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgICBtaW4gJiYgIWlzUGVyY2VudGFnZShtaW4pID8gaGVpZ2h0U3R5bGVzW2BtaW4taGVpZ2h0LS0ke21pbn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIG1heCAmJiAhaXNQZXJjZW50YWdlKG1heCkgPyBoZWlnaHRTdHlsZXNbYG1heC1oZWlnaHQtLSR7bWF4fWBdIDogdW5kZWZpbmVkLFxuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICBdLFxuICAgICRzdHlsZTogT2JqZWN0LmtleXMocGVyY2VudGFnZXMpLmxlbmd0aCA+IDAgPyB7IC4uLiRzdHlsZSwgLi4ucGVyY2VudGFnZXMgfSA6ICRzdHlsZSxcbiAgICAkaGVpZ2h0OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGNvbG9yU3R5bGVzIGZyb20gXCIuL2NvbG9yLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5cbmV4cG9ydCB0eXBlIFRleHRDb2xvciA9IENvbG9yIHwgVGV4dENvbG9yQWxpYXM7XG5cbmV4cG9ydCB0eXBlICRDb2xvclByb3BzID0ge1xuICByZWFkb25seSBub3JtYWw/OiBUZXh0Q29sb3I7XG4gIHJlYWRvbmx5IGhvdmVyPzogVGV4dENvbG9yO1xuICByZWFkb25seSBmb2N1cz86IFRleHRDb2xvcjtcbiAgcmVhZG9ubHkgZGlzYWJsZWQ/OiBUZXh0Q29sb3I7XG59O1xuXG5leHBvcnQgdHlwZSBDb2xvclBsdWdpblByb3BzID0geyByZWFkb25seSAkY29sb3I/OiBUZXh0Q29sb3IgfCAkQ29sb3JQcm9wcyB9O1xuZXhwb3J0IHR5cGUgVGV4dENvbG9yQWxpYXMgPSBrZXlvZiB0eXBlb2YgYWxpYXNUb05vbWluYWw7XG5cbmNvbnN0IGFsaWFzVG9Ob21pbmFsID0ge1xuICB0ZXh0TXV0ZWQ6IFwiZ3JleTI1XCIsXG4gIHRleHREZWZhdWx0OiBcImdyZXkyMFwiLFxuICB0ZXh0SGlnaGxpZ2h0OiBcImdyZXkxMFwiLFxufSBhcyBjb25zdDtcblxuY29uc3QgaXNUZXh0Q29sb3JBbGlhcyA9IChjb2xvcjogVGV4dENvbG9yKTogY29sb3IgaXMgVGV4dENvbG9yQWxpYXMgPT4gY29sb3IgaW4gYWxpYXNUb05vbWluYWw7XG5cbmV4cG9ydCBjb25zdCBjb2xvclBsdWdpbiA9IGdldFBsdWdpbjxDb2xvclBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRjbGFzc05hbWUsICRjb2xvciB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgbm9ybWFsLCBob3ZlciwgZm9jdXMsIGRpc2FibGVkIH0gPSB0eXBlb2YgJGNvbG9yID09PSBcInN0cmluZ1wiID8geyBub3JtYWw6ICRjb2xvciB9IDogKCRjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgPyAoaXNUZXh0Q29sb3JBbGlhcyhub3JtYWwpID8gYWxpYXNUb05vbWluYWxbbm9ybWFsXSA6IG5vcm1hbCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGhvdmVyQ29sb3IgPSBob3ZlciA/IChpc1RleHRDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZm9jdXNDb2xvciA9IGZvY3VzID8gKGlzVGV4dENvbG9yQWxpYXMoZm9jdXMpID8gYWxpYXNUb05vbWluYWxbZm9jdXNdIDogZm9jdXMpIDogdW5kZWZpbmVkO1xuICBjb25zdCBkaXNhYmxlZENvbG9yID0gZGlzYWJsZWQgPyAoaXNUZXh0Q29sb3JBbGlhcyhkaXNhYmxlZCkgPyBhbGlhc1RvTm9taW5hbFtkaXNhYmxlZF0gOiBkaXNhYmxlZCkgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICAkY2xhc3NOYW1lLFxuICAgICAgbm9ybWFsQ29sb3IgPyBjb2xvclN0eWxlc1tgY29sb3ItLSR7bm9ybWFsQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBob3ZlckNvbG9yID8gY29sb3JTdHlsZXNbYGNvbG9yLWhvdmVyLS0ke2hvdmVyQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBmb2N1c0NvbG9yID8gY29sb3JTdHlsZXNbYGNvbG9yLWZvY3VzLS0ke2ZvY3VzQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBkaXNhYmxlZENvbG9yID8gY29sb3JTdHlsZXNbYGNvbG9yLWRpc2FibGVkLS0ke2Rpc2FibGVkQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgXSxcbiAgICAkY29sb3I6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgZ3JhZGllbnRTdHlsZXMgZnJvbSBcIi4vZ3JhZGllbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgR3JhZGllbnRQbHVnaW5Qcm9wcyA9IHsgJGdyYWRpZW50PzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgZ3JhZGllbnRQbHVnaW4gPSBnZXRQbHVnaW48R3JhZGllbnRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kZ3JhZGllbnQgPyBncmFkaWVudFN0eWxlcy5ncmFkaWVudCA6IHVuZGVmaW5lZF0sXG4gICRncmFkaWVudDogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBEcmFnZ2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9kcmFnZ2VkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vZHJhZ2dhYmxlLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgZHJhZ2dhYmxlUGx1Z2luID0gZ2V0UGx1Z2luPERyYWdnYWJsZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRkcmFnZ2FibGUpIHtcbiAgICByZXR1cm4geyAkZHJhZ2dhYmxlOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IFtkcmFnZ2luZywgc2V0RHJhZ2dpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IHsgY29udGV4dCwgaXRlbSB9ID0gcHJvcHMuJGRyYWdnYWJsZTtcblxuICBjb25zdCBkcmFnZ2VkSXRlbVN0YXRlID0gdXNlU3luY0luamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSwgY29udGV4dCk7XG5cbiAgcmV0dXJuIHtcbiAgICBkcmFnZ2FibGU6IHRydWUsXG5cbiAgICAkdmlzdWFsbHlIaWRkZW46IGRyYWdnaW5nLFxuXG4gICAgb25EcmFnU3RhcnQ6IGFjdGlvbigoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gXCJtb3ZlXCI7XG5cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHByb3BzLm9uRHJhZ1N0YXJ0Py4oZXZlbnQpO1xuXG4gICAgICBtYWtlQ2hyb21pdW1Ob3RHbGl0Y2hXaGVuRHJhZ2dpbmcoZXZlbnQpO1xuXG4gICAgICBkcmFnZ2VkSXRlbVN0YXRlLnNldChpdGVtKTtcblxuICAgICAgLy8gRG9uJ3Qgc2V0IGRyYWdnaW5nIHRvbyBlYXJseSwgYmVjYXVzZSBpdCB3b3VsZCBoaWRlIHRoZSBcImRyYWcgcHJldmlld1wiIGZvciBlbGVtZW50IGJlaW5nIGRyYWdnZWQuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0RHJhZ2dpbmcodHJ1ZSk7XG4gICAgICB9LCAwKTtcbiAgICB9KSxcblxuICAgIG9uRHJhZ0VuZDogYWN0aW9uKChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25EcmFnRW5kPy4oZXZlbnQpO1xuXG4gICAgICBkcmFnZ2VkSXRlbVN0YXRlLnNldCh1bmRlZmluZWQpO1xuICAgICAgc2V0RHJhZ2dpbmcoZmFsc2UpO1xuICAgIH0pLFxuXG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHN0eWxlcy5kcmFnZ2FibGVdLFxuXG4gICAgJGRyYWdnYWJsZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IG1ha2VDaHJvbWl1bU5vdEdsaXRjaFdoZW5EcmFnZ2luZyA9IChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YShcInRleHQvcGxhaW5cIiwgXCJzdHViLWRhdGEtdG8tZml4LWNocm9taXVtXCIpO1xufTtcbiIsICJpbXBvcnQgeyBkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSB9IGZyb20gXCIuL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgeyBtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUgfSBmcm9tIFwiLi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IERyb3BwYWJsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCBjb25zdCBkcm9wcGFibGVQbHVnaW4gPSBnZXRQbHVnaW48RHJvcHBhYmxlUGx1Z2luUHJvcHM+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRkcm9wcGFibGUpIHtcbiAgICByZXR1cm4geyAkZHJvcHBhYmxlOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHsgY29udGV4dCwgb25Ecm9wIH0gPSBwcm9wcy4kZHJvcHBhYmxlO1xuXG4gIGNvbnN0IGRyYWdnZWRJdGVtU3RhdGUgPSB1c2VTeW5jSW5qZWN0KGRyYWdnZWRJdGVtU3RhdGVJbmplY3RhYmxlLCBjb250ZXh0KTtcbiAgY29uc3Qgc29tZSA9IHVzZVN5bmNJbmplY3QobWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlKTtcblxuICBjb25zdCBkcmFnZ2VkSXRlbSA9IGRyYWdnZWRJdGVtU3RhdGUuZ2V0KCk7XG5cbiAgcmV0dXJuIHtcbiAgICBvbkRyYWdPdmVyOiAoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHByb3BzLm9uRHJhZ092ZXI/LihldmVudCk7XG5cbiAgICAgIGlmIChkcmFnZ2VkSXRlbSkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBvbkRyb3A6IChldmVudDogUmVhY3QuRHJhZ0V2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcHJvcHMub25Ecm9wPy4oZXZlbnQpO1xuXG4gICAgICBpZiAoZHJhZ2dlZEl0ZW0pIHtcbiAgICAgICAgc29tZSgoKSA9PiB7XG4gICAgICAgICAgb25Ecm9wKGRyYWdnZWRJdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcblxuICAgICRkcm9wcGFibGU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHJhbnNpdGlvblN0eWxlcyBmcm9tIFwiLi90cmFuc2l0aW9uLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIFRyYW5zaXRpb25QbHVnaW5Qcm9wcyA9IHsgJHRyYW5zaXRpb24/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2l0aW9uUGx1Z2luID0gZ2V0UGx1Z2luPFRyYW5zaXRpb25QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFt0cmFuc2l0aW9uU3R5bGVzLnRyYW5zaXRpb25dOiAhIXByb3BzLiR0cmFuc2l0aW9uIH1dLFxuICAkdHJhbnNpdGlvbjogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgb2Zmc2V0U3R5bGVzIGZyb20gXCIuL29mZnNldC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3Rpb24gfSBmcm9tIFwiLi4vX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBPZmZzZXRQbHVnaW5Qcm9wcyA9IHsgJG9mZnNldD86IHsgZGlyZWN0aW9uOiBEaXJlY3Rpb247IHNpemU6IFRTaGlydFNpemUgfSB9O1xuXG5leHBvcnQgY29uc3Qgb2Zmc2V0UGx1Z2luID0gZ2V0UGx1Z2luPE9mZnNldFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRvZmZzZXQpIHtcbiAgICByZXR1cm4geyAkb2Zmc2V0OiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIG9mZnNldFN0eWxlc1tgb2Zmc2V0X18ke3Byb3BzLiRvZmZzZXQuZGlyZWN0aW9ufS0tJHtwcm9wcy4kb2Zmc2V0LnNpemV9YF1dLFxuXG4gICAgJG9mZnNldDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBvZmZzZXRTdHlsZXMgZnJvbSBcIi4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IERpcmVjdGlvbiB9IGZyb20gXCIuLi9fc2hhcmVkL2RpcmVjdGlvbnNcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIE9mZnNldENoaWxkcmVuUGx1Z2luUHJvcHMgPSB7ICRvZmZzZXRDaGlsZHJlbj86IHsgZGlyZWN0aW9uOiBEaXJlY3Rpb247IHNpemU6IFRTaGlydFNpemUgfSB9O1xuXG5leHBvcnQgY29uc3Qgb2Zmc2V0Q2hpbGRyZW5QbHVnaW4gPSBnZXRQbHVnaW48T2Zmc2V0Q2hpbGRyZW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kb2Zmc2V0Q2hpbGRyZW4pIHtcbiAgICByZXR1cm4geyAkb2Zmc2V0Q2hpbGRyZW46IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgb2Zmc2V0U3R5bGVzW2BvZmZzZXQtY2hpbGRyZW5fXyR7cHJvcHMuJG9mZnNldENoaWxkcmVuLmRpcmVjdGlvbn0tLSR7cHJvcHMuJG9mZnNldENoaWxkcmVuLnNpemV9YF0sXG4gICAgXSxcblxuICAgICRvZmZzZXRDaGlsZHJlbjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBoaWRkZW5TdHlsZXMgZnJvbSBcIi4vaGlkZGVuLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIEhpZGRlblBsdWdpblByb3BzID0geyAkaGlkZGVuPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgaGlkZGVuUGx1Z2luID0gZ2V0UGx1Z2luPEhpZGRlblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHsgW2hpZGRlblN0eWxlcy5oaWRkZW5dOiAhIXByb3BzLiRoaWRkZW4gfV0sXG5cbiAgJGhpZGRlbjogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgbWFyZ2luU3R5bGVzIGZyb20gXCIuL21hcmdpbi5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBEaXJlY3Rpb25hbE1hcmdpbiA9IHtcbiAgdG9wPzogVFNoaXJ0U2l6ZTtcbiAgYm90dG9tPzogVFNoaXJ0U2l6ZTtcbiAgbGVmdD86IFRTaGlydFNpemU7XG4gIHJpZ2h0PzogVFNoaXJ0U2l6ZTtcbiAgaG9yaXpvbnRhbD86IFRTaGlydFNpemU7XG4gIHZlcnRpY2FsPzogVFNoaXJ0U2l6ZTtcbn07XG5cbmV4cG9ydCB0eXBlIE1hcmdpblBsdWdpblByb3BzID0geyAkbWFyZ2luPzogYm9vbGVhbiB8IERpcmVjdGlvbmFsTWFyZ2luIHwgVFNoaXJ0U2l6ZSB8IFwiYXV0b1wiIH07XG5cbmV4cG9ydCBjb25zdCBtYXJnaW5QbHVnaW4gPSBnZXRQbHVnaW48TWFyZ2luUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJG1hcmdpbikge1xuICAgIHJldHVybiB7ICRtYXJnaW46IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgbWFyZ2luID0gcHJvcHMuJG1hcmdpbiA9PT0gdHJ1ZSA/IFwieHNcIiA6IHByb3BzLiRtYXJnaW47XG5cbiAgaWYgKGlzU3RyaW5nKG1hcmdpbikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIG1hcmdpblN0eWxlc1tgbWFyZ2luLS0ke21hcmdpbn1gXV0sXG4gICAgICAkbWFyZ2luOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHRvcFNpemUgPSBtYXJnaW4udG9wIHx8IG1hcmdpbi52ZXJ0aWNhbDtcbiAgY29uc3QgYm90dG9tU2l6ZSA9IG1hcmdpbi5ib3R0b20gfHwgbWFyZ2luLnZlcnRpY2FsO1xuICBjb25zdCByaWdodFNpemUgPSBtYXJnaW4ucmlnaHQgfHwgbWFyZ2luLmhvcml6b250YWw7XG4gIGNvbnN0IGxlZnRTaXplID0gbWFyZ2luLmxlZnQgfHwgbWFyZ2luLmhvcml6b250YWw7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgdG9wU2l6ZSA/IG1hcmdpblN0eWxlc1tgbWFyZ2luX190b3AtLSR7dG9wU2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHJpZ2h0U2l6ZSA/IG1hcmdpblN0eWxlc1tgbWFyZ2luX19yaWdodC0tJHtyaWdodFNpemV9YF0gOiB1bmRlZmluZWQsXG4gICAgICBib3R0b21TaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX2JvdHRvbS0tJHtib3R0b21TaXplfWBdIDogdW5kZWZpbmVkLFxuICAgICAgbGVmdFNpemUgPyBtYXJnaW5TdHlsZXNbYG1hcmdpbl9fbGVmdC0tJHtsZWZ0U2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICBdLFxuICAgICRtYXJnaW46IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdmlzdWFsbHlIaWRkZW5TdHlsZXMgZnJvbSBcIi4vdmlzdWFsbHktaGlkZGVuLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIFZpc3VhbGx5SGlkZGVuUGx1Z2luUHJvcHMgPSB7ICR2aXN1YWxseUhpZGRlbj86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IHZpc3VhbGx5SGlkZGVuUGx1Z2luID0gZ2V0UGx1Z2luPFZpc3VhbGx5SGlkZGVuUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgeyBbdmlzdWFsbHlIaWRkZW5TdHlsZXNbXCJ2aXN1YWxseS1oaWRkZW5cIl1dOiAhIXByb3BzLiR2aXN1YWxseUhpZGRlbiB9XSxcblxuICAkdmlzdWFsbHlIaWRkZW46IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IG92ZXJmbG93U3R5bGVzIGZyb20gXCIuL292ZXJmbG93Lm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIE92ZXJmbG93ID0gXCJoaWRkZW5cIiB8IFwic2Nyb2xsXCIgfCBcImF1dG9cIiB8IFwidmlzaWJsZVwiO1xuXG5leHBvcnQgdHlwZSBPdmVyZmxvd1BsdWdpblByb3BzID0geyAkb3ZlcmZsb3c/OiBPdmVyZmxvdyB8IHsgeD86IE92ZXJmbG93OyB5PzogT3ZlcmZsb3c7IGhpZGVTY3JvbGxiYXI/OiBib29sZWFuIH0gfTtcblxuZXhwb3J0IGNvbnN0IG92ZXJmbG93UGx1Z2luID0gZ2V0UGx1Z2luPE92ZXJmbG93UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0ICRvdmVyZmxvdyA9IHByb3BzLiRvdmVyZmxvdztcblxuICBpZiAoISRvdmVyZmxvdykge1xuICAgIHJldHVybiB7ICRvdmVyZmxvdzogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCB4ID0gdHlwZW9mICRvdmVyZmxvdyA9PT0gXCJzdHJpbmdcIiA/ICRvdmVyZmxvdyA6ICRvdmVyZmxvdy54O1xuICBjb25zdCB5ID0gdHlwZW9mICRvdmVyZmxvdyA9PT0gXCJzdHJpbmdcIiA/ICRvdmVyZmxvdyA6ICRvdmVyZmxvdy55O1xuICBjb25zdCBoaWRlU2Nyb2xsYmFyID0gdHlwZW9mICRvdmVyZmxvdyA9PT0gXCJzdHJpbmdcIiA/IGZhbHNlIDogJG92ZXJmbG93LmhpZGVTY3JvbGxiYXI7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuXG4gICAgICB4ID8gb3ZlcmZsb3dTdHlsZXNbYG92ZXJmbG93X194LS0ke3h9YF0gOiB1bmRlZmluZWQsXG4gICAgICB5ID8gb3ZlcmZsb3dTdHlsZXNbYG92ZXJmbG93X195LS0ke3l9YF0gOiB1bmRlZmluZWQsXG4gICAgICB7IFtvdmVyZmxvd1N0eWxlc1tcIm92ZXJmbG93LS1oaWRlLXNjcm9sbGJhclwiXV06IGhpZGVTY3JvbGxiYXIgfSxcbiAgICBdLFxuXG4gICAgJG92ZXJmbG93OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgZmxleENoaWxkU3R5bGVzIGZyb20gXCIuL2ZsZXgtY2hpbGQubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5cbi8qKlxuICogLSBgdHJ1ZWA6IHNoYXJlIHRoZSBwYXJlbnQncyByZW1haW5pbmcgc3BhY2UgZXF1YWxseSAoYGZsZXg6IDEgMSAwYCkuXG4gKiAtIGBcInNocmlua2FibGVcImA6IGFkZGl0aW9uYWxseSByZW1vdmUgdGhlIGl0ZW0ncyBpbXBsaWNpdCBjb250ZW50LXNpemVkXG4gKiAgIG1pbmltdW0gKGBtaW4taGVpZ2h0OiBhdXRvYCAvIGBtaW4td2lkdGg6IGF1dG9gKSwgc28gaXQgY2FuIGFjdHVhbGx5IGJlXG4gKiAgIHNpemVkIHRvIHRoZSByZW1haW5pbmcgc3BhY2UgaW4gYSBjb25zdHJhaW5lZCBsYXlvdXQgXHUyMDE0IHJlcXVpcmVkIGZvciBhXG4gKiAgIGRlc2NlbmRhbnQgdG8gc2Nyb2xsIGludGVybmFsbHkgaW5zdGVhZCBvZiBpbmZsYXRpbmcgZXZlcnkgYW5jZXN0b3IuXG4gKiAtIGEgbnVtYmVyOiBsaWtlIGBcInNocmlua2FibGVcImAsIGJ1dCB0YWtpbmcgdGhhdCBtYW55IHNoYXJlcyBvZiB0aGVcbiAqICAgcmVtYWluaW5nIHNwYWNlIGluc3RlYWQgb2Ygb25lIChgZmxleC1ncm93YCksIGZvciB3ZWlnaHRlZCBzcGxpdHMgYmV0d2VlblxuICogICBzaWJsaW5ncy5cbiAqIC0gYFwiZml4ZWRcImA6IHRoZSBvcHBvc2l0ZSBcdTIwMTQga2VlcCB0aGUgaXRlbSdzIG93biBzaXplIChgZmxleC1zaHJpbms6IDBgKSxcbiAqICAgb3B0aW5nIG91dCBvZiB0aGUgc2hyaW5rIG5lZ290aWF0aW9uIGVudGlyZWx5IChlLmcuIGEgY29udGVudC1odWdnaW5nXG4gKiAgIHBhbmVsIG5leHQgdG8gYSBmaWxsaW5nIG9uZSkuXG4gKi9cbmV4cG9ydCB0eXBlIEZsZXhDaGlsZFBsdWdpblByb3BzID0geyAkZmxleENoaWxkPzogYm9vbGVhbiB8IG51bWJlciB8IFwic2hyaW5rYWJsZVwiIHwgXCJmaXhlZFwiIH07XG5cbmV4cG9ydCBjb25zdCBmbGV4Q2hpbGRQbHVnaW4gPSBnZXRQbHVnaW48RmxleENoaWxkUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLCB0eXBlb2Ygc3R5bGVQbHVnaW5dPihcbiAgKHByb3BzKSA9PiB7XG4gICAgY29uc3Qgd2VpZ2h0ID0gdHlwZW9mIHByb3BzLiRmbGV4Q2hpbGQgPT09IFwibnVtYmVyXCIgPyBwcm9wcy4kZmxleENoaWxkIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHNocmlua2FibGUgPSBwcm9wcy4kZmxleENoaWxkID09PSBcInNocmlua2FibGVcIiB8fCB3ZWlnaHQgIT09IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICAkY2xhc3NOYW1lOiBbXG4gICAgICAgIHByb3BzLiRmbGV4Q2hpbGQgPT09IHRydWUgfHwgc2hyaW5rYWJsZSA/IGZsZXhDaGlsZFN0eWxlc1tcImZsZXgtY2hpbGRcIl0gOiB1bmRlZmluZWQsXG4gICAgICAgIHNocmlua2FibGUgPyBmbGV4Q2hpbGRTdHlsZXNbXCJmbGV4LWNoaWxkLS1zaHJpbmthYmxlXCJdIDogdW5kZWZpbmVkLFxuICAgICAgICBwcm9wcy4kZmxleENoaWxkID09PSBcImZpeGVkXCIgPyBmbGV4Q2hpbGRTdHlsZXNbXCJmbGV4LWNoaWxkLS1maXhlZFwiXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIF0sXG4gICAgICAkc3R5bGU6IHdlaWdodCA9PT0gdW5kZWZpbmVkID8gcHJvcHMuJHN0eWxlIDogeyAuLi5wcm9wcy4kc3R5bGUsIGZsZXhHcm93OiB3ZWlnaHQgfSxcbiAgICAgICRmbGV4Q2hpbGQ6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9LFxuKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGdyYXlzY2FsZVN0eWxlcyBmcm9tIFwiLi9ncmF5c2NhbGUubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgR3JheXNjYWxlUGx1Z2luUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBGdWxseSBkZXNhdHVyYXRlcyB0aGUgZWxlbWVudCAoYGZpbHRlcjogZ3JheXNjYWxlKDEwMCUpYCkgd2hlbiBgdHJ1ZWAgXHUyMDE0IHNvXG4gICAqIGV2ZW4gZml4ZWQtY29sb3VyIGNvbnRlbnQgKGUuZy4gYnJhbmQgbG9nb3MpIGdyZXlzIG91dCwgbm90IGp1c3QgdGhlbWVkXG4gICAqIGNvbG91cnMuIENvbWJpbmUgd2l0aCBgJGZhZGVkYCB0byBkZS1lbXBoYXNpc2UgYW4gdW5hdmFpbGFibGUgaXRlbS5cbiAgICovXG4gICRncmF5c2NhbGU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGdyYXlzY2FsZVBsdWdpbiA9IGdldFBsdWdpbjxHcmF5c2NhbGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwcm9wcy4kZ3JheXNjYWxlID8gZ3JheXNjYWxlU3R5bGVzLmdyYXlzY2FsZSA6IHVuZGVmaW5lZF0sXG4gICRncmF5c2NhbGU6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgc3R5bGVQbHVnaW4gfSBmcm9tIFwiLi4vc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdGludFN0eWxlcyBmcm9tIFwiLi90aW50Lm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIFRpbnRQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgZWxlbWVudCdzIChhbmQgaXRzIGRlc2NlbmRhbnRzJykgU1ZHIGBmaWxsYCB0byB0aGlzIGNvbG91ciwgdmlhIGEgQ1NTIGN1c3RvbVxuICAgKiBwcm9wZXJ0eSBcdTIwMTQgYHN0cm9rZWAgaXMgbGVmdCB1bnRvdWNoZWQsIHNvIHN0cm9rZWQgZGV0YWlscyBzdXJ2aXZlLiBVbmxpa2UgYCRncmF5c2NhbGVgICh3aGljaCBvbmx5XG4gICAqIGRlc2F0dXJhdGVzKSB0aGlzIHBhaW50cyB0aGUgc2hhcGUgYW4gZXhhY3QgZmxhdCBjb2xvdXIgd2hpbGUgcmVzcGVjdGluZyB0cmFuc3BhcmVuY3ksIHNvIGFcbiAgICogZml4ZWQtY29sb3VyIGJyYW5kIG1hcmsgY2FuIGJlIHRpbnRlZCAoZS5nLiBhbiBBSS10b29sIGxvZ28gdGludGVkIHRvIHRoZSBjbHVzdGVyIGNvbG91cikuIExlYXZlXG4gICAqIHVuc2V0IHRvIHJlbmRlciB0aGUgZWxlbWVudCdzIG5hdHVyYWwgY29sb3Vycy5cbiAgICovXG4gICR0aW50Pzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IHRpbnRQbHVnaW4gPSBnZXRQbHVnaW48VGludFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbiwgdHlwZW9mIHN0eWxlUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgcHJvcHMuJHRpbnQgPyB0aW50U3R5bGVzLnRpbnQgOiB1bmRlZmluZWRdLFxuICAvLyBUaGUgdGludCBjb2xvdXIgaXMgZXhwb3NlZCBhcyBhIGN1c3RvbSBwcm9wZXJ0eSB0aGUgYC50aW50YCBjbGFzcyByZWFkcyAoYGZpbGw6IHZhcigtLWVsZW1lbnQtdGludClgKS5cbiAgJHN0eWxlOiBwcm9wcy4kdGludCA/ICh7IC4uLnByb3BzLiRzdHlsZSwgXCItLWVsZW1lbnQtdGludFwiOiBwcm9wcy4kdGludCB9IGFzIFJlYWN0LkNTU1Byb3BlcnRpZXMpIDogcHJvcHMuJHN0eWxlLFxuICAkdGludDogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgZmFkZWRTdHlsZXMgZnJvbSBcIi4vZmFkZWQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRmFkZWRQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqXG4gICAqIEZhZGVzIHRoZSBlbGVtZW50IChgb3BhY2l0eTogNTAlYCkgd2hlbiBgdHJ1ZWAuIENvbWJpbmUgd2l0aCBgJGdyYXlzY2FsZWBcbiAgICogdG8gZGUtZW1waGFzaXNlIGFuIHVuYXZhaWxhYmxlIGl0ZW0uXG4gICAqL1xuICAkZmFkZWQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGZhZGVkUGx1Z2luID0gZ2V0UGx1Z2luPEZhZGVkUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgcHJvcHMuJGZhZGVkID8gZmFkZWRTdHlsZXMuZmFkZWQgOiB1bmRlZmluZWRdLFxuICAkZmFkZWQ6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4sIHR5cGUgQ29udHJpYnV0ZVByb3BzLCB0eXBlIENvbnRyaWJ1dGVSZWYgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSB9IGZyb20gXCIuL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgdXNlVXBkYXRlV2hlblByb3BzQ2hhbmdlIH0gZnJvbSBcIi4vX3ByaXZhdGUvdXNlLXVwZGF0ZS13aGVuLXByb3BzLWNoYW5nZVwiO1xuaW1wb3J0IHsgdXNlQ2xlYW51cE9uVW5tb3VudCB9IGZyb20gXCIuL19wcml2YXRlL3VzZS1jbGVhbnVwLW9uLXVubW91bnRcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgdXNlS2V5Ym9hcmROYXZpZ2F0aW9uIH0gZnJvbSBcIi4vX3ByaXZhdGUvdXNlLWtleWJvYXJkLW5hdmlnYXRpb25cIjtcbmltcG9ydCB7IGhhbmRsZUZvY3VzRm9yIH0gZnJvbSBcIi4vX3ByaXZhdGUvaGFuZGxlLWZvY3VzXCI7XG5pbXBvcnQgeyBoYW5kbGVCbHVyRm9yIH0gZnJvbSBcIi4vX3ByaXZhdGUvaGFuZGxlLWJsdXJcIjtcbmltcG9ydCB7IHVzZVByb2dyYW1tYXRpY0ZvY3VzaW5nIH0gZnJvbSBcIi4vX3ByaXZhdGUvdXNlLXByb2dyYW1tYXRpYy1mb2N1c2luZ1wiO1xuaW1wb3J0IHR5cGUgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuXG5leHBvcnQgdHlwZSBGb2N1c2FibGVQbHVnaW5Qcm9wczxULCBGb2N1c2VkSXRlbSA9IGFueT4gPSB7XG4gICRmb2N1c2FibGU/OiB7XG4gICAgY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT47XG4gICAgaXRlbTogRm9jdXNlZEl0ZW07XG4gICAgb3JkZXJOdW1iZXI/OiBudW1iZXI7XG4gIH07XG5cbiAgb25Gb2N1cz86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPFQ+O1xuICBvbkJsdXI/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxUPjtcbiAgb25LZXlEb3duPzogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8VD47XG4gIHRhYkluZGV4PzogSFRNTEVsZW1lbnRbXCJ0YWJJbmRleFwiXTtcbn07XG5cbnR5cGUgRm9jdXNhYmxlV3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBmb2N1c2FibGU6IHtcbiAgICBjb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PGFueT47XG4gICAgaXRlbTogYW55O1xuICAgIG9yZGVyTnVtYmVyPzogbnVtYmVyO1xuICB9O1xuICByZWFkb25seSB0YWJJbmRleDogbnVtYmVyO1xuICByZWFkb25seSBvbkZvY3VzPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8YW55PjtcbiAgcmVhZG9ubHkgb25CbHVyPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8YW55PjtcbiAgcmVhZG9ubHkgb25LZXlEb3duPzogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8YW55PjtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVJlZjogQ29udHJpYnV0ZVJlZjtcbiAgcmVhZG9ubHkgY29udHJpYnV0ZVByb3BzOiBDb250cmlidXRlUHJvcHM7XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBGb2N1c2FibGVXcmFwcGVyQ29tcG9uZW50ID0gKHtcbiAgZm9jdXNhYmxlLFxuICB0YWJJbmRleCxcbiAgb25Gb2N1cyxcbiAgb25CbHVyLFxuICBvbktleURvd24sXG4gIGNvbnRyaWJ1dGVSZWYsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBGb2N1c2FibGVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgeyBjb250ZXh0OiBmb2N1c2FibGVDb250ZXh0LCBpdGVtOiBmb2N1c2FibGVJdGVtLCBvcmRlck51bWJlciB9ID0gZm9jdXNhYmxlO1xuXG4gIGNvbnN0IFtlbGVtZW50LCBzZXRFbGVtZW50XSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnRyaWJ1dGVSZWYoc2V0RWxlbWVudCk7XG5cbiAgY29uc3QgaHRtbEVsZW1lbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KHVuZGVmaW5lZCk7XG4gIGh0bWxFbGVtZW50UmVmLmN1cnJlbnQgPSAoZWxlbWVudCA/PyB1bmRlZmluZWQpIGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgY29uc3Qgb2xkU3RhdGVSZWYgPSB1c2VSZWY8SU9ic2VydmFibGVWYWx1ZTx1bmtub3duPj4odW5kZWZpbmVkKTtcblxuICBjb25zdCBzdGF0ZSA9IHVzZVN5bmNJbmplY3QoZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSwgZm9jdXNhYmxlQ29udGV4dCk7XG5cbiAgdXNlVXBkYXRlV2hlblByb3BzQ2hhbmdlKGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmLCBvbGRTdGF0ZVJlZiwgc3RhdGUsIGZvY3VzYWJsZUl0ZW0pO1xuICB1c2VDbGVhbnVwT25Vbm1vdW50KGh0bWxFbGVtZW50SXNGb2N1c2VkUmVmLCBvbGRTdGF0ZVJlZik7XG4gIHVzZVByb2dyYW1tYXRpY0ZvY3VzaW5nKGZvY3VzYWJsZUNvbnRleHQsIGZvY3VzYWJsZUl0ZW0sIGh0bWxFbGVtZW50UmVmKTtcblxuICBjb25zdCBoYW5kbGVGb2N1cyA9IGhhbmRsZUZvY3VzRm9yKHN0YXRlLCBmb2N1c2FibGVJdGVtLCBmb2N1c2FibGVDb250ZXh0LCBodG1sRWxlbWVudElzRm9jdXNlZFJlZik7XG4gIGNvbnN0IGhhbmRsZUJsdXIgPSBoYW5kbGVCbHVyRm9yKGZvY3VzYWJsZUNvbnRleHQsIHN0YXRlLCBodG1sRWxlbWVudElzRm9jdXNlZFJlZik7XG5cbiAgY29uc3Qga2V5Ym9hcmROYXZpZ2F0aW9uID0gdXNlS2V5Ym9hcmROYXZpZ2F0aW9uKFxuICAgIGZvY3VzYWJsZUNvbnRleHQuaXNLZXlib2FyZE5hdmlnYWJsZSA/IGZvY3VzYWJsZUNvbnRleHQgOiB1bmRlZmluZWQsXG4gICAgZm9jdXNhYmxlSXRlbSxcbiAgICBvcmRlck51bWJlcixcbiAgICBlbGVtZW50LFxuICApO1xuXG4gIGNvbnRyaWJ1dGVQcm9wcyh7XG4gICAgdGFiSW5kZXgsXG5cbiAgICBvbkZvY3VzOiAoZTogUmVhY3QuRm9jdXNFdmVudDxhbnk+KSA9PiB7XG4gICAgICBoYW5kbGVGb2N1cyhlKTtcbiAgICAgIGtleWJvYXJkTmF2aWdhdGlvbi5vbkZvY3VzKCk7XG4gICAgICBvbkZvY3VzPy4oZSk7XG4gICAgfSxcblxuICAgIG9uQmx1cjogKGU6IFJlYWN0LkZvY3VzRXZlbnQ8YW55PikgPT4ge1xuICAgICAgaWYgKCFodG1sRWxlbWVudFJlZi5jdXJyZW50Py5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgIGhhbmRsZUJsdXIoZSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihlKTtcbiAgICB9LFxuXG4gICAgb25LZXlEb3duOiAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxhbnk+KSA9PiB7XG4gICAgICBvbktleURvd24/LihlKTtcbiAgICAgIGtleWJvYXJkTmF2aWdhdGlvbi5vbktleURvd24oZSk7XG4gICAgfSxcblxuICAgIG9uTW91c2VFbnRlcjoga2V5Ym9hcmROYXZpZ2F0aW9uLmZvY3VzV2hhdFRoZVBvaW50ZXJJc09uLFxuICAgIG9uTW91c2VNb3ZlOiBrZXlib2FyZE5hdmlnYXRpb24uZm9jdXNXaGF0VGhlUG9pbnRlcklzT24sXG4gIH0pO1xuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZm9jdXNhYmxlUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEZvY3VzYWJsZVBsdWdpblByb3BzPFQ+LCBbUmV0dXJuVHlwZTx0eXBlb2YgcmVmUGx1Z2luPFQ+Pl0+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGZvY3VzYWJsZSwgdGFiSW5kZXgsIG9uQmx1ciwgb25Gb2N1cywgb25LZXlEb3duIH0gPSBwcm9wcztcblxuICAgIGlmICghJGZvY3VzYWJsZSkge1xuICAgICAgcmV0dXJuIHsgJGZvY3VzYWJsZTogdW5kZWZpbmVkIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRmb2N1c2FibGU6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogRm9jdXNhYmxlV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBmb2N1c2FibGU6ICRmb2N1c2FibGUsXG4gICAgICAgICAgdGFiSW5kZXg6IHRhYkluZGV4ID8/IC0xLFxuICAgICAgICAgIG9uRm9jdXMsXG4gICAgICAgICAgb25CbHVyLFxuICAgICAgICAgIG9uS2V5RG93bixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG4iLCAiaW1wb3J0IHsgYXNzZXJ0RGVmaW5lZCB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSB7IElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgcnVuSW5BY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB0eXBlIE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IHVzZVVwZGF0ZVdoZW5Qcm9wc0NoYW5nZSA9IChcbiAgZm9jdXNlZFJlZjogTXV0YWJsZVJlZk9iamVjdDxib29sZWFuPixcbiAgb2xkU3RhdGVSZWY6IE11dGFibGVSZWZPYmplY3Q8SU9ic2VydmFibGVWYWx1ZTx1bmtub3duPiB8IHVuZGVmaW5lZD4sXG4gIHN0YXRlOiBJT2JzZXJ2YWJsZVZhbHVlPHVua25vd24+LFxuICBmb2N1c2FibGVJdGVtOiB1bmtub3duLFxuKSA9PiB7XG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHJlbW92ZSB3aGVuIHBvc3NpYmxlXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAoZm9jdXNlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICBzdGF0ZS5zZXQoZm9jdXNhYmxlSXRlbSk7XG5cbiAgICAgICAgICBjb25zdCBjb250ZXh0SGFzQ2hhbmdlZCA9IG9sZFN0YXRlUmVmLmN1cnJlbnQgIT09IHN0YXRlO1xuXG4gICAgICAgICAgaWYgKGNvbnRleHRIYXNDaGFuZ2VkICYmIG9sZFN0YXRlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGFzc2VydERlZmluZWQob2xkU3RhdGVSZWYuY3VycmVudCk7XG4gICAgICAgICAgICBvbGRTdGF0ZVJlZi5jdXJyZW50LnNldCh1bmRlZmluZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIG9sZFN0YXRlUmVmLmN1cnJlbnQgPSBzdGF0ZTtcbiAgICB9LFxuICAgIC8vIE5vdGU6IGZvY3VzZWRSZWYgYW5kIG9sZFN0YXRlUmVmIG5ldmVyIGNoYW5nZS5cbiAgICBbZm9jdXNhYmxlSXRlbSwgc3RhdGVdLFxuICApO1xufTtcbiIsICJpbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHR5cGUgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgdXNlQ2xlYW51cE9uVW5tb3VudCA9IChcbiAgZm9jdXNlZFJlZjogTXV0YWJsZVJlZk9iamVjdDxib29sZWFuPixcbiAgb2xkU3RhdGVSZWY6IE11dGFibGVSZWZPYmplY3Q8SU9ic2VydmFibGVWYWx1ZTx1bmtub3duPiB8IHVuZGVmaW5lZD4sXG4pID0+IHtcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlRXhoYXVzdGl2ZURlcGVuZGVuY2llczogcmVtb3ZlIHdoZW4gcG9zc2libGVcbiAgdXNlRWZmZWN0KFxuICAgICgpID0+ICgpID0+IHtcbiAgICAgIGlmIChmb2N1c2VkUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgICAgIGFzc2VydERlZmluZWQob2xkU3RhdGVSZWYuY3VycmVudCk7XG4gICAgICAgICAgb2xkU3RhdGVSZWYuY3VycmVudC5zZXQodW5kZWZpbmVkKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcblxuICAgIC8vIE5vdGU6IGZvY3VzZWRSZWYgYW5kIG9sZFN0YXRlUmVmIG5ldmVyIGNoYW5nZS5cbiAgICBbXSxcbiAgKTtcbn07XG4iLCAiaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7XG4gIGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSxcbiAgdHlwZSBOYXZpZ2FibGVFbnRyeSxcbn0gZnJvbSBcIi4uL19zaGFyZWQva2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCwgS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb24gfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5cbnR5cGUgS2V5Ym9hcmROYXZpZ2F0aW9uID0ge1xuICByZWFkb25seSBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Gb2N1czogKCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgZm9jdXNXaGF0VGhlUG9pbnRlcklzT246IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IG5vS2V5Ym9hcmROYXZpZ2F0aW9uOiBLZXlib2FyZE5hdmlnYXRpb24gPSB7XG4gIG9uS2V5RG93bjogKCkgPT4ge30sXG4gIG9uRm9jdXM6ICgpID0+IHt9LFxuICBmb2N1c1doYXRUaGVQb2ludGVySXNPbjogKCkgPT4ge30sXG59O1xuXG5leHBvcnQgY29uc3QgdXNlS2V5Ym9hcmROYXZpZ2F0aW9uID0gKFxuICBjb250ZXh0OiBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQ8YW55PiB8IHVuZGVmaW5lZCxcbiAgaXRlbTogdW5rbm93bixcbiAgb3JkZXJOdW1iZXI6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLFxuKTogS2V5Ym9hcmROYXZpZ2F0aW9uID0+IHtcbiAgY29uc3QgbmF2aWdhdGlvbiA9IHVzZVN5bmNJbmplY3Qoa2V5Ym9hcmROYXZpZ2F0aW9uU3RhdGVJbmplY3RhYmxlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghY29udGV4dCB8fCAhZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJ5OiBOYXZpZ2FibGVFbnRyeSA9IHsgaXRlbSwgb3JkZXJOdW1iZXI6IG9yZGVyTnVtYmVyID8/IDAsIGVsZW1lbnQgfTtcblxuICAgIG5hdmlnYXRpb24ucmVnaXN0ZXIoY29udGV4dCwgZW50cnkpO1xuXG4gICAgY29uc3QgZm9jdXNXaGF0U2hvdWxkSGF2ZUZvY3VzID0gKCkgPT4ge1xuICAgICAgLy8gT25seSB3aXRoaW4gdGhlIHdpbmRvdyB0aGUgdXNlciBpcyBhY3R1YWxseSBpbi4gTGVucyBEZXNrdG9wIGlzIG1vcmUgdGhhbiBvbmUgd2luZG93LFxuICAgICAgLy8gYW5kIGZvY3VzaW5nIGFuIGVsZW1lbnQgb2YgYSB3aW5kb3cgdGhhdCBkb2VzIG5vdCBoYXZlIGZvY3VzIGlzIGhvdyBhIGJyb3dzZXIgaXMgYXNrZWRcbiAgICAgIC8vIHRvIGJyaW5nIHRoYXQgd2luZG93IHRvIHRoZSBmcm9udDogYSBsaXN0IHVwZGF0aW5nIGluIHRoZSBhcHBsaWNhdGlvbiB3aW5kb3cgd2hpbGUgdGhlXG4gICAgICAvLyB1c2VyIHJlYWRzIGEgc3ViLXdpbmRvdyB3b3VsZCBrZWVwIHNuYXRjaGluZyB0aGUgc3ViLXdpbmRvdydzIGZvY3VzIGF3YXkuIFdoaWNoIG1lbWJlclxuICAgICAgLy8gdGhpcyB3aW5kb3cgaXMgb24gaXMgc3RpbGwgcmVtZW1iZXJlZCwgc28gaXQgbGFuZHMgdGhlcmUgd2hlbiB0aGUgdXNlciBjb21lcyBiYWNrLlxuICAgICAgaWYgKCFkb2N1bWVudC5oYXNGb2N1cygpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGV4dEluRm9jdXMgPSBuYXZpZ2F0aW9uLmNvbnRleHRJbkZvY3VzKCk7XG5cbiAgICAgIGlmICghY29udGV4dEluRm9jdXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlbnRyaWVzID0gbmF2aWdhdGlvbi5zb3J0ZWRFbnRyaWVzT2YoY29udGV4dEluRm9jdXMpO1xuXG4gICAgICAvLyBUaGUgbWVtYmVyIHRoYXQgY29udGV4dCB3YXMgbGVmdCBvbiwgc28gc3RlcHBpbmcgaW50byBzb21ldGhpbmcgYW5kIGJhY2sgb3V0IG9mIGl0IGxhbmRzXG4gICAgICAvLyB3aGVyZSBpdCBzdGFydGVkLiBPbmx5IHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHdoZW4gaXQgd2FzIG5ldmVyIGxlZnQgYW55d2hlcmU6IHRoYXQgaXMgYVxuICAgICAgLy8gc2V0IG9mIG1lbWJlcnMgYXBwZWFyaW5nIHJhdGhlciB0aGFuIG9uZSBiZWluZyByZXR1cm5lZCB0byBcdTIwMTQgYW5kIGEgc2V0IHRoYXQgbGVhdmVzIGZvY3VzXG4gICAgICAvLyB3aGVyZSBpdCBpcyBhcyBpdCBhcHBlYXJzIGhhcyBub3RoaW5nIHRvIG9mZmVyIHVudGlsIG9uZSBvZiBpdHMgbWVtYmVycyBoYXMgaGFkIGZvY3VzLlxuICAgICAgY29uc3QgaXRlbUluRm9jdXMgPSBuYXZpZ2F0aW9uLml0ZW1JbkZvY3VzT2YoY29udGV4dEluRm9jdXMpO1xuICAgICAgY29uc3QgdG9Gb2N1cyA9XG4gICAgICAgIGVudHJpZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBjYW5kaWRhdGUuaXRlbSA9PT0gaXRlbUluRm9jdXMpID8/XG4gICAgICAgIChjb250ZXh0SW5Gb2N1cy50YWtlc0ZvY3VzQXNJdEFwcGVhcnMgPyBlbnRyaWVzWzBdIDogdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKHRvRm9jdXM/LmVsZW1lbnQuaXNDb25uZWN0ZWQgJiYgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdG9Gb2N1cy5lbGVtZW50KSB7XG4gICAgICAgIHRvRm9jdXMuZWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBEZWZlcnJlZCBzbyB0aGF0IGV2ZXJ5dGhpbmcgYXBwZWFyaW5nIHRvZ2V0aGVyIGhhcyByZWdpc3RlcmVkLCBhbmQgdGhlIGxvd2VzdCBvcmRlciBudW1iZXIgb2ZcbiAgICAvLyB0aGUgd2hvbGUgc2V0IHdpbnMgcmF0aGVyIHRoYW4gd2hpY2hldmVyIGFwcGVhcmVkIGZpcnN0LlxuICAgIHZvaWQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmb2N1c1doYXRTaG91bGRIYXZlRm9jdXMpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIG5hdmlnYXRpb24uZGVyZWdpc3Rlcihjb250ZXh0LCBlbnRyeSk7XG5cbiAgICAgIHZvaWQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmb2N1c1doYXRTaG91bGRIYXZlRm9jdXMpO1xuICAgIH07XG4gIH0sIFtuYXZpZ2F0aW9uLCBjb250ZXh0LCBpdGVtLCBvcmRlck51bWJlciwgZWxlbWVudF0pO1xuXG4gIGlmICghY29udGV4dCkge1xuICAgIHJldHVybiBub0tleWJvYXJkTmF2aWdhdGlvbjtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLy8gV2hpY2ggbWVtYmVyIHRoZSBjb250ZXh0IGlzIG9uLCByZW1lbWJlcmVkIGZvciBhcyBsb25nIGFzIGl0cyBtZW1iZXJzIGFyZSB0aGVyZTogaXQgaXMgd2hhdFxuICAgIC8vIGZvY3VzIHJldHVybnMgdG8gd2hlbiBzb21ldGhpbmcgdGhhdCB0b29rIGZvY3VzIG92ZXIgZ29lcyBhd2F5IGFnYWluLlxuICAgIG9uRm9jdXM6ICgpID0+IG5hdmlnYXRpb24ubm90ZUl0ZW1JbkZvY3VzKGNvbnRleHQsIGl0ZW0pLFxuXG4gICAgLy8gV2hlcmUgdGhlIHBvaW50ZXIgZ29lcywgZm9jdXMgZ29lczogdGhlIG1lbWJlciB1bmRlciBpdCBiZWNvbWVzIHRoZSBmb2N1c2VkIG9uZSwgc28gYXJyb3dpbmdcbiAgICAvLyBvbiBmcm9tIHRoZXJlIGNvbnRpbnVlcyBmcm9tIHdoYXQgdGhlIHVzZXIgaXMgbG9va2luZyBhdCByYXRoZXIgdGhhbiBmcm9tIHdoZXJldmVyIHRoZVxuICAgIC8vIGtleWJvYXJkIHdhcyBsZWZ0LiBXaGljaGV2ZXIgb2YgdGhlIHR3byBtb3ZlZCBsYXN0IGRlY2lkZXMsIHdoaWNoIGlzIHdoeSB0aGlzIGFuc3dlcnMgdG8gdGhlXG4gICAgLy8gcG9pbnRlciBtb3ZpbmcgYXMgd2VsbCBhcyB0byBpdCBhcnJpdmluZyBcdTIwMTQgdGhlIGtleWJvYXJkIG1heSBoYXZlIHRha2VuIGZvY3VzIGVsc2V3aGVyZSB3aGlsZVxuICAgIC8vIHRoZSBwb2ludGVyIHJlc3RlZCB3aGVyZSBpdCB3YXMsIGFuZCBtb3ZpbmcgaXQgYXQgYWxsIGlzIHRoZSB1c2VyIHBvaW50aW5nIGFnYWluLlxuICAgIC8vXG4gICAgLy8gVGhlIGVsZW1lbnQgY29tZXMgZnJvbSB0aGUgZXZlbnQgcmF0aGVyIHRoYW4gZnJvbSB0aGUgcmVuZGVyIHRoaXMgaGFuZGxlciB3YXMgY3JlYXRlZCBpbjpcbiAgICAvLyB0aGUgaGFuZGxlciB0aGUgRE9NIGVuZHMgdXAgd2l0aCBpcyB0aGUgb25lIGZyb20gdGhlIGZpcnN0IHJlbmRlciwgd2hlbiB0aGVyZSB3YXMgbm8gZWxlbWVudFxuICAgIC8vIHlldCBcdTIwMTQgUmVhY3QgaGFzIG5vIHJlYXNvbiB0byByZW5kZXIgdGhlIGVsZW1lbnQgYWdhaW4gZm9yIGEgd3JhcHBlcidzIG93biBzdGF0ZS5cbiAgICBmb2N1c1doYXRUaGVQb2ludGVySXNPbjogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCBob3ZlcmVkID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IGhvdmVyZWQpIHtcbiAgICAgICAgaG92ZXJlZC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgY29uc3Qgc3RlcCA9IHN0ZXBPZihldmVudC5rZXksIGNvbnRleHQub3JpZW50YXRpb24pO1xuXG4gICAgICBpZiAoc3RlcCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50cmllcyA9IG5hdmlnYXRpb24uc29ydGVkRW50cmllc09mKGNvbnRleHQpO1xuXG4gICAgICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBlbnRyaWVzLmZpbmRJbmRleCgoY2FuZGlkYXRlKSA9PiBjYW5kaWRhdGUuaXRlbSA9PT0gaXRlbSk7XG5cbiAgICAgIGNvbnN0IG5leHRJbmRleCA9XG4gICAgICAgIHN0ZXAgPT09IFwiZmlyc3RcIlxuICAgICAgICAgID8gMFxuICAgICAgICAgIDogc3RlcCA9PT0gXCJsYXN0XCJcbiAgICAgICAgICAgID8gZW50cmllcy5sZW5ndGggLSAxXG4gICAgICAgICAgICA6IChjdXJyZW50SW5kZXggKyBzdGVwICsgZW50cmllcy5sZW5ndGgpICUgZW50cmllcy5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IG5leHQgPSBlbnRyaWVzW25leHRJbmRleF07XG5cbiAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG5leHQuZWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59O1xuXG5jb25zdCBzdGVwT2YgPSAoa2V5OiBzdHJpbmcsIG9yaWVudGF0aW9uOiBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbikgPT4ge1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgPyB1bmRlZmluZWQgOiAxO1xuICAgIGNhc2UgXCJBcnJvd1JpZ2h0XCI6XG4gICAgICByZXR1cm4gb3JpZW50YXRpb24gPT09IFwidmVydGljYWxcIiA/IHVuZGVmaW5lZCA6IDE7XG4gICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgIHJldHVybiBvcmllbnRhdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgPyB1bmRlZmluZWQgOiAtMTtcbiAgICBjYXNlIFwiQXJyb3dMZWZ0XCI6XG4gICAgICByZXR1cm4gb3JpZW50YXRpb24gPT09IFwidmVydGljYWxcIiA/IHVuZGVmaW5lZCA6IC0xO1xuICAgIGNhc2UgXCJIb21lXCI6XG4gICAgICByZXR1cm4gXCJmaXJzdFwiIGFzIGNvbnN0O1xuICAgIGNhc2UgXCJFbmRcIjpcbiAgICAgIHJldHVybiBcImxhc3RcIiBhcyBjb25zdDtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiIsICJpbXBvcnQgeyBydW5JbkFjdGlvbiwgdHlwZSBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBGb2N1c2FibGVFdmVudCB9IGZyb20gXCIuL19zaGFyZWQvZm9jdXNhYmxlLWV2ZW50XCI7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVGb2N1c0ZvciA9XG4gIDxGb2N1c2FibGVJdGVtPihcbiAgICBzdGF0ZTogSU9ic2VydmFibGVWYWx1ZTxGb2N1c2FibGVJdGVtIHwgdW5kZWZpbmVkPixcbiAgICBmb2N1c2FibGVJdGVtOiBGb2N1c2FibGVJdGVtLFxuICAgIGZvY3VzYWJsZUNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNhYmxlSXRlbT4sXG4gICAgZm9jdXNlZFJlZjogTXV0YWJsZVJlZk9iamVjdDxib29sZWFuPixcbiAgKSA9PlxuICA8VD4oZXZlbnQ6IEZvY3VzYWJsZUV2ZW50PFQ+KSA9PiB7XG4gICAgY29uc3QgbmF0aXZlRXZlbnQgPSBldmVudC5uYXRpdmVFdmVudDtcblxuICAgIG5hdGl2ZUV2ZW50LmFscmVhZHlQcm9jZXNzZWRGb2N1c2FibGVDb250ZXh0cyA/Pz0gbmV3IFNldCgpO1xuXG4gICAgaWYgKG5hdGl2ZUV2ZW50LmFscmVhZHlQcm9jZXNzZWRGb2N1c2FibGVDb250ZXh0cy5oYXMoZm9jdXNhYmxlQ29udGV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBuYXRpdmVFdmVudC5hbHJlYWR5UHJvY2Vzc2VkRm9jdXNhYmxlQ29udGV4dHMuYWRkKGZvY3VzYWJsZUNvbnRleHQpO1xuXG4gICAgZm9jdXNlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcblxuICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgIHN0YXRlLnNldChmb2N1c2FibGVJdGVtKTtcbiAgICB9KTtcbiAgfTtcbiIsICJpbXBvcnQgdHlwZSB7IElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgcnVuSW5BY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4uL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBGb2N1c2FibGVFdmVudCB9IGZyb20gXCIuL19zaGFyZWQvZm9jdXNhYmxlLWV2ZW50XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZUJsdXJGb3IgPVxuICA8VD4oXG4gICAgZm9jdXNhYmxlQ29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxUPixcbiAgICBzdGF0ZTogSU9ic2VydmFibGVWYWx1ZTxUIHwgdW5kZWZpbmVkPixcbiAgICBmb2N1c2VkUmVmOiBNdXRhYmxlUmVmT2JqZWN0PGJvb2xlYW4+LFxuICApID0+XG4gIDxUPihldmVudDogRm9jdXNhYmxlRXZlbnQ8VD4pID0+IHtcbiAgICBjb25zdCBuYXRpdmVFdmVudCA9IGV2ZW50Lm5hdGl2ZUV2ZW50O1xuXG4gICAgaWYgKG5hdGl2ZUV2ZW50LmFscmVhZHlQcm9jZXNzZWRGb2N1c2FibGVDb250ZXh0cz8uaGFzKGZvY3VzYWJsZUNvbnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9jdXNlZFJlZi5jdXJyZW50ID0gZmFsc2U7XG5cbiAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICBzdGF0ZS5zZXQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfTtcbiIsICJpbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlIH0gZnJvbSBcIi4uL19zaGFyZWQvZm9jdXNhYmxlLWh0bWwtZWxlbWVudC1yZWYtc2V0LmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4uL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuXG5leHBvcnQgY29uc3QgdXNlUHJvZ3JhbW1hdGljRm9jdXNpbmcgPSA8VD4oXG4gIGZvY3VzYWJsZUNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4sXG4gIGZvY3VzYWJsZUl0ZW06IFQsXG4gIGh0bWxFbGVtZW50UmVmOiBNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkPixcbikgPT4ge1xuICBjb25zdCBodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcCA9IHVzZVN5bmNJbmplY3QoXG4gICAgZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlLFxuICAgIGZvY3VzYWJsZUNvbnRleHQsXG4gICAgZm9jdXNhYmxlSXRlbSxcbiAgKTtcblxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiByZW1vdmUgd2hlbiBwb3NzaWJsZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGh0bWxFbGVtZW50c0J5Rm9jdXNhYmxlTWFwLmFkZChodG1sRWxlbWVudFJlZik7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaHRtbEVsZW1lbnRzQnlGb2N1c2FibGVNYXAuZGVsZXRlKGh0bWxFbGVtZW50UmVmKTtcbiAgICB9O1xuICB9LCBbaHRtbEVsZW1lbnRzQnlGb2N1c2FibGVNYXAsIGZvY3VzYWJsZUl0ZW0sIGh0bWxFbGVtZW50UmVmXSk7XG59O1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBmbGV4UGx1Z2luIH0gZnJvbSBcIi4uL2ZsZXgvZmxleFwiO1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyBvdmVyZmxvd1BsdWdpbiB9IGZyb20gXCIuLi9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG5leHBvcnQgdHlwZSBBcmVhUGx1Z2luUHJvcHMgPSB7ICRhcmVhPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYXJlYVBsdWdpbiA9IGdldFBsdWdpbjxBcmVhUGx1Z2luUHJvcHMsIFt0eXBlb2YgZmxleFBsdWdpbiwgdHlwZW9mIG92ZXJmbG93UGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IGV4cGxpY2l0RmxleFByb3BzID0gaXNPYmplY3QocHJvcHMuJGZsZXgpID8gcHJvcHMuJGZsZXggOiB7fTtcblxuICByZXR1cm4ge1xuICAgICRhcmVhOiB1bmRlZmluZWQsXG5cbiAgICAkZmxleDogcHJvcHMuJGFyZWFcbiAgICAgID8ge1xuICAgICAgICAgIHZlcnRpY2FsQWxpZ246IFwic3RyZXRjaFwiLFxuICAgICAgICAgIGhvcml6b250YWxBbGlnbjogXCJzdHJldGNoXCIsXG4gICAgICAgICAgLi4uZXhwbGljaXRGbGV4UHJvcHMsXG4gICAgICAgIH1cbiAgICAgIDogcHJvcHMuJGZsZXgsXG5cbiAgICAkb3ZlcmZsb3c6IHByb3BzLiRvdmVyZmxvdyA/PyAocHJvcHMuJGFyZWEgPyBcImhpZGRlblwiIDogdW5kZWZpbmVkKSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBmbGV4Q2hpbGRQbHVnaW4gfSBmcm9tIFwiLi4vZmxleC1jaGlsZC9mbGV4LWNoaWxkXCI7XG5cbmV4cG9ydCB0eXBlIEFyZWFDb250ZW50UGx1Z2luUHJvcHMgPSB7ICRhcmVhQ29udGVudD86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IGFyZWFDb250ZW50UGx1Z2luID0gZ2V0UGx1Z2luPEFyZWFDb250ZW50UGx1Z2luUHJvcHMsIFt0eXBlb2YgZmxleENoaWxkUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkYXJlYUNvbnRlbnQ6IHVuZGVmaW5lZCxcbiAgJGZsZXhDaGlsZDogcHJvcHMuJGFyZWFDb250ZW50ID8gdHJ1ZSA6IHByb3BzLiRmbGV4Q2hpbGQsXG59KSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IHR5cGUgeyB3aWR0aFBsdWdpbiB9IGZyb20gXCIuLi93aWR0aC93aWR0aFwiO1xuaW1wb3J0IHR5cGUgeyBoZWlnaHRQbHVnaW4gfSBmcm9tIFwiLi4vaGVpZ2h0L2hlaWdodFwiO1xuXG5leHBvcnQgdHlwZSAkU2l6ZVByb3BzID0ge1xuICBzaXplPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJhdXRvXCI7XG4gIG1pbj86IFRTaGlydFNpemUgfCBcImZ1bGxcIjtcbiAgbWF4PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiO1xufTtcblxuZXhwb3J0IHR5cGUgU2l6ZVBsdWdpblByb3BzID0geyAkc2l6ZT86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8ICRTaXplUHJvcHMgfTtcblxuZXhwb3J0IGNvbnN0IHNpemVQbHVnaW4gPSBnZXRQbHVnaW48U2l6ZVBsdWdpblByb3BzLCBbdHlwZW9mIHdpZHRoUGx1Z2luLCB0eXBlb2YgaGVpZ2h0UGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHNpemUgfSA9IHByb3BzO1xuXG4gIGlmICghJHNpemUpIHtcbiAgICByZXR1cm4geyAkc2l6ZTogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCB7IHNpemUsIG1pbiwgbWF4IH0gPSB0eXBlb2YgJHNpemUgPT09IFwic3RyaW5nXCIgPyB7IHNpemU6ICRzaXplIH0gOiAkc2l6ZTtcblxuICByZXR1cm4ge1xuICAgICRoZWlnaHQ6IHsgaGVpZ2h0OiBzaXplLCBtaW4sIG1heCB9LFxuICAgICR3aWR0aDogeyB3aWR0aDogc2l6ZSwgbWluLCBtYXggfSxcbiAgICAkc2l6ZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHJhd1N0eWxlcyBmcm9tIFwiLi9jdXJzb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcblxuY29uc3Qgc3R5bGVzID0gc2FuaXRpemVTY3NzTW9kdWxlcyhyYXdTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSAkQ3Vyc29yUHJvcHMgPVxuICB8IFwiYWxpYXNcIlxuICB8IFwiYWxsLXNjcm9sbFwiXG4gIHwgXCJjZWxsXCJcbiAgfCBcImNvbHVtbi1yZXNpemVcIlxuICB8IFwiY29udGV4dC1tZW51XCJcbiAgfCBcImNvcHlcIlxuICB8IFwiY3Jvc3NoYWlyXCJcbiAgfCBcImRlZmF1bHRcIlxuICB8IFwiZWFzdC1yZXNpemVcIlxuICB8IFwiZWFzdC1hbmQtd2VzdC1yZXNpemVcIlxuICB8IFwiZ3JhYlwiXG4gIHwgXCJncmFiYmluZ1wiXG4gIHwgXCJoZWxwXCJcbiAgfCBcIm1vdmVcIlxuICB8IFwibm9ydGgtcmVzaXplXCJcbiAgfCBcIm5vcnRoZWFzdC1yZXNpemVcIlxuICB8IFwibm9ydGhlYXN0LWFuZC1zb3V0aHdlc3QtcmVzaXplXCJcbiAgfCBcIm5vLWRyb3BcIlxuICB8IFwibm9uZVwiXG4gIHwgXCJub3QtYWxsb3dlZFwiXG4gIHwgXCJub3J0aC1hbmQtc291dGgtcmVzaXplXCJcbiAgfCBcIm5vcnRod2VzdC1yZXNpemVcIlxuICB8IFwibm9ydGh3ZXN0LWFuZC1zb3V0aGVhc3QtcmVzaXplXCJcbiAgfCBcInBvaW50ZXJcIlxuICB8IFwicHJvZ3Jlc3NcIlxuICB8IFwicm93LXJlc2l6ZVwiXG4gIHwgXCJzb3V0aC1yZXNpemVcIlxuICB8IFwic291dGhlYXN0LXJlc2l6ZVwiXG4gIHwgXCJzb3V0aHdlc3QtcmVzaXplXCJcbiAgfCBcInRleHRcIlxuICB8IFwidmVydGljYWwtdGV4dFwiXG4gIHwgXCJ3ZXN0LXJlc2l6ZVwiXG4gIHwgXCJ3YWl0XCJcbiAgfCBcInpvb20taW5cIlxuICB8IFwiem9vbS1vdXRcIjtcblxuZXhwb3J0IHR5cGUgQ3Vyc29yUGx1Z2luUHJvcHMgPSB7XG4gICRjdXJzb3I/OiAkQ3Vyc29yUHJvcHM7XG59O1xuXG5leHBvcnQgY29uc3QgY3Vyc29yUGx1Z2luID0gZ2V0UGx1Z2luPEN1cnNvclBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRjdXJzb3IsICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGN1cnNvcikge1xuICAgIHJldHVybiB7ICRjdXJzb3I6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY3Vyc29yOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsIHN0eWxlc1skY3Vyc29yXV0sXG4gICAgXCJkYXRhLWN1cnNvci10ZXN0XCI6ICRjdXJzb3IsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IG9uTWlkZGxlQ2xpY2ssIG9uVHJpZ2dlciB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgZW5hYmxlZFBsdWdpbiB9IGZyb20gXCIuLi9lbmFibGVkL2VuYWJsZWRcIjtcbmltcG9ydCB0eXBlIHsgJEN1cnNvclByb3BzLCBjdXJzb3JQbHVnaW4gfSBmcm9tIFwiLi4vY3Vyc29yL2N1cnNvclwiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgb25SaWdodFRyaWdnZXJJbmplY3RhYmxlIH0gZnJvbSBcIi4vb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIFBvc2l0aW9uMmQgPSB7XG4gIHJlYWRvbmx5IHg6IG51bWJlcjtcbiAgcmVhZG9ubHkgeTogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ2xpY2tIYW5kbGVyRGV0YWlscyA9IHtcbiAgcmVhZG9ubHkgY3Vyc29yOiBQb3NpdGlvbjJkO1xuICByZWFkb25seSBjYXVzZTogXCJjbGlja1wiIHwgXCJrZXlib2FyZFwiO1xufTtcblxuZXhwb3J0IHR5cGUgQ2xpY2tIYW5kbGVyID0gKChkZXRhaWxzOiBDbGlja0hhbmRsZXJEZXRhaWxzKSA9PiB2b2lkKSB8ICgoZGV0YWlsczogQ2xpY2tIYW5kbGVyRGV0YWlscykgPT4gUHJvbWlzZTx2b2lkPik7XG5cbmV4cG9ydCB0eXBlIENsaWNrUGx1Z2luUHJvcHMgPSB7XG4gICRvbkNsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICAkb25Pbmx5TW91c2VDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uRG91YmxlQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gICRvblJpZ2h0Q2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gICRvbk1pZGRsZUNsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICB0YWJJbmRleD86IG51bWJlcjtcbn07XG5cbmNvbnN0IGNsaWNrVXNlZCA9IFN5bWJvbCgpO1xuXG5leHBvcnQgY29uc3QgY2xpY2thYmxlUGx1Z2luID0gZ2V0UGx1Z2luPENsaWNrUGx1Z2luUHJvcHMsIFt0eXBlb2YgZW5hYmxlZFBsdWdpbiwgdHlwZW9mIGN1cnNvclBsdWdpbl0+KChwcm9wcykgPT4ge1xuICAvLyB0eXBpbmcgcmVxdWlyZWQgZHVlIHRvIGxhY2sgb2YgZ29vZCB0eXBpbmcgb2YgcHJlLXByb2Nlc3NlZCBkZXBlbmRlbnQgcGx1Z2luc1xuICBjb25zdCB7XG4gICAgJGN1cnNvcixcbiAgICAkb25DbGljayxcbiAgICAkb25Pbmx5TW91c2VDbGljayxcbiAgICAkb25NaWRkbGVDbGljayxcbiAgICAkb25SaWdodENsaWNrLFxuICAgICRvbkRvdWJsZUNsaWNrLFxuICAgIG9uRG91YmxlQ2xpY2ssXG4gICAgb25BdXhDbGljayxcbiAgICBvbkNsaWNrLFxuICAgIG9uQ29udGV4dE1lbnUsXG4gICAgb25LZXlEb3duLFxuICAgIHRhYkluZGV4LFxuICAgIGRpc2FibGVkLFxuICAgIHJvbGUsXG4gIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiBSZWFjdC5IVE1MUHJvcHM8SFRNTEVsZW1lbnQ+O1xuICBjb25zdCBbcGVuZGluZywgc2V0UGVuZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IG9uUmlnaHRUcmlnZ2VyID0gdXNlU3luY0luamVjdChvblJpZ2h0VHJpZ2dlckluamVjdGFibGUpO1xuICBjb25zdCBvbk1vdXNlQ2xpY2sgPSAkb25DbGljayA/PyAkb25Pbmx5TW91c2VDbGljaztcblxuICBpZiAoJG9uQ2xpY2sgJiYgJG9uT25seU1vdXNlQ2xpY2spIHtcbiAgICBjb25zb2xlLndhcm4oXCJDYW5ub3QgaGF2ZSBib3RoICRvbkNsaWNrIGFuZCAkb25Nb3VzZUNsaWNrT25seSBvbiB0aGUgc2FtZSBjb21wb25lbnRcIik7XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRvbkNsaWNrOiB1bmRlZmluZWQsXG4gICAgJG9uTWlkZGxlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25SaWdodENsaWNrOiB1bmRlZmluZWQsXG4gICAgJG9uRG91YmxlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkb25Pbmx5TW91c2VDbGljazogdW5kZWZpbmVkLFxuICAgIHRhYkluZGV4OiB0YWJJbmRleCA/PyAob25Nb3VzZUNsaWNrIHx8ICRvblJpZ2h0Q2xpY2sgfHwgJG9uRG91YmxlQ2xpY2sgPyAwIDogdW5kZWZpbmVkKSxcbiAgICAkY3Vyc29yOiBnZXRDdXJzb3JQcm9wcygkY3Vyc29yLCBkaXNhYmxlZCwgcGVuZGluZywgb25Nb3VzZUNsaWNrLCAkb25SaWdodENsaWNrKSxcbiAgICByb2xlOiByb2xlID8/IChvbk1vdXNlQ2xpY2sgPyBcImJ1dHRvblwiIDogcm9sZSksXG4gICAgb25DbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25DbGljaz8uKGV2ZW50KTtcblxuICAgICAgaWYgKCFkaXNhYmxlZCAmJiBvbk1vdXNlQ2xpY2sgJiYgIShjbGlja1VzZWQgaW4gZXZlbnQpKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oZXZlbnQsIHsgW2NsaWNrVXNlZF06IHRydWUgfSk7XG5cbiAgICAgICAgY29uc3QgbWF5YmVQcm9taXNlID0gb25Nb3VzZUNsaWNrKHRvRGV0YWlscyhldmVudCkpO1xuXG4gICAgICAgIGlmIChpc1Byb21pc2VMaWtlKG1heWJlUHJvbWlzZSkpIHtcbiAgICAgICAgICBzZXRQZW5kaW5nKHRydWUpO1xuICAgICAgICAgIG1heWJlUHJvbWlzZS50aGVuKCgpID0+IHNldFBlbmRpbmcoZmFsc2UpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgb25Eb3VibGVDbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Eb3VibGVDbGljaz8uKGV2ZW50KTtcbiAgICAgICRvbkRvdWJsZUNsaWNrPy4odG9EZXRhaWxzKGV2ZW50KSk7XG4gICAgfSxcbiAgICBvbkNvbnRleHRNZW51OiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbkNvbnRleHRNZW51Py4oZXZlbnQpO1xuICAgICAgJG9uUmlnaHRDbGljaz8uKHRvRGV0YWlscyhldmVudCkpO1xuICAgIH0sXG4gICAgb25BdXhDbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25BdXhDbGljaz8uKGV2ZW50KTtcbiAgICAgIG9uTWlkZGxlQ2xpY2soZXZlbnQsICgpID0+ICRvbk1pZGRsZUNsaWNrPy4odG9EZXRhaWxzKGV2ZW50KSkpO1xuICAgIH0sXG4gICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBvbktleURvd24/LihldmVudCk7XG5cbiAgICAgIGlmICgkb25DbGljaykge1xuICAgICAgICBvblRyaWdnZXIoZXZlbnQsICgpID0+IHtcbiAgICAgICAgICBpZiAoIWRpc2FibGVkICYmICEoY2xpY2tVc2VkIGluIGV2ZW50KSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihldmVudCwgeyBbY2xpY2tVc2VkXTogdHJ1ZSB9KTtcblxuICAgICAgICAgICAgY29uc3QgbWF5YmVQcm9taXNlID0gJG9uQ2xpY2sodG9EZXRhaWxzKGV2ZW50KSk7XG5cbiAgICAgICAgICAgIGlmIChpc1Byb21pc2VMaWtlKG1heWJlUHJvbWlzZSkpIHtcbiAgICAgICAgICAgICAgc2V0UGVuZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgbWF5YmVQcm9taXNlLnRoZW4oKCkgPT4gc2V0UGVuZGluZyhmYWxzZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICgkb25SaWdodENsaWNrKSB7XG4gICAgICAgIG9uUmlnaHRUcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgJG9uUmlnaHRDbGljayh0b0RldGFpbHMoZXZlbnQpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbn0pO1xuXG5jb25zdCB0b01pZGRsZSA9IChyZWN0OiBET01SZWN0KSA9PiAoe1xuICB4OiByZWN0LmxlZnQgKyByZWN0LndpZHRoIC8gMixcbiAgeTogcmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIsXG59KTtcblxuY29uc3QgdG9EZXRhaWxzID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PiB8IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTEVsZW1lbnQ+KTogQ2xpY2tIYW5kbGVyRGV0YWlscyA9PiB7XG4gIGNvbnN0IGN1cnNvciA9XG4gICAgXCJjbGllbnRYXCIgaW4gZXZlbnRcbiAgICAgID8ge1xuICAgICAgICAgIHg6IGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgeTogZXZlbnQuY2xpZW50WSxcbiAgICAgICAgfVxuICAgICAgOiB0b01pZGRsZShldmVudC5jdXJyZW50VGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTtcblxuICByZXR1cm4ge1xuICAgIGN1cnNvcixcbiAgICBjYXVzZTogZXZlbnQuZGV0YWlsID8gXCJjbGlja1wiIDogXCJrZXlib2FyZFwiLFxuICB9O1xufTtcblxuY29uc3QgaXNQcm9taXNlTGlrZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFByb21pc2U8dW5rbm93bj4gPT5cbiAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmICEhdmFsdWUgJiYgXCJ0aGVuXCIgaW4gdmFsdWU7XG5cbmNvbnN0IGdldEN1cnNvclByb3BzID0gKFxuICAkY3Vyc29yOiAkQ3Vyc29yUHJvcHMgfCB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBwZW5kaW5nOiBib29sZWFuLFxuICAkb25DbGljazogRnVuY3Rpb24gfCB1bmRlZmluZWQsXG4gICRvblJpZ2h0Q2xpY2s6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkLFxuKTogJEN1cnNvclByb3BzIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKCRjdXJzb3IpIHtcbiAgICByZXR1cm4gJGN1cnNvcjtcbiAgfVxuXG4gIGlmIChwZW5kaW5nKSB7XG4gICAgcmV0dXJuIFwicHJvZ3Jlc3NcIjtcbiAgfVxuXG4gIGlmICghJG9uQ2xpY2sgJiYgISRvblJpZ2h0Q2xpY2spIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKGRpc2FibGVkKSB7XG4gICAgcmV0dXJuIFwibm90LWFsbG93ZWRcIjtcbiAgfVxuXG4gIGlmICgkb25DbGljaykge1xuICAgIHJldHVybiBcInBvaW50ZXJcIjtcbiAgfVxuXG4gIHJldHVybiBcImNvbnRleHQtbWVudVwiO1xufTtcbiIsICJpbXBvcnQgcmF3U3R5bGVzIGZyb20gXCIuL2Rpc3BsYXktY29udGVudHMubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcblxuY29uc3Qgc3R5bGVzID0gc2FuaXRpemVTY3NzTW9kdWxlcyhyYXdTdHlsZXMpO1xuXG5leHBvcnQgdHlwZSBEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcyA9IHtcbiAgJGRpc3BsYXlDb250ZW50cz86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgZGlzcGxheUNvbnRlbnRzUGx1Z2luID0gZ2V0UGx1Z2luPERpc3BsYXlDb250ZW50c1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRkaXNwbGF5Q29udGVudHMsICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGRpc3BsYXlDb250ZW50cykge1xuICAgIHJldHVybiB7ICRkaXNwbGF5Q29udGVudHM6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkZGlzcGxheUNvbnRlbnRzOiB1bmRlZmluZWQsXG4gICAgJGNsYXNzTmFtZTogWyRjbGFzc05hbWUsIHN0eWxlcy5jb250ZW50c10sXG4gIH07XG59KTtcbiIsICJpbXBvcnQgc3R5bGVzIGZyb20gXCIuL3RleHQtYWxpZ24ubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5cbmV4cG9ydCB0eXBlIFRleHRBbGlnblBsdWdpblByb3BzID0geyAkdGV4dEFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiIHwgXCJyaWdodFwiIH07XG5cbmV4cG9ydCBjb25zdCB0ZXh0QWxpZ25QbHVnaW4gPSBnZXRQbHVnaW48VGV4dEFsaWduUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHRleHRBbGlnbiB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkdGV4dEFsaWduKSB7XG4gICAgcmV0dXJuIHsgJHRleHRBbGlnbjogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4geyAkY2xhc3NOYW1lOiBbc3R5bGVzW2B0ZXh0LWFsaWduLS0keyR0ZXh0QWxpZ259YF0sIHByb3BzLiRjbGFzc05hbWVdLCAkdGV4dEFsaWduOiB1bmRlZmluZWQgfTtcbn0pO1xuIiwgImltcG9ydCBzdHlsZXMgZnJvbSBcIi4vYmxvY2subW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5cbmV4cG9ydCB0eXBlIEJsb2NrUGx1Z2luUHJvcHMgPSB7XG4gICRibG9jaz86IGJvb2xlYW4gfCBcImlubGluZVwiO1xufTtcblxuZXhwb3J0IGNvbnN0IGJsb2NrUGx1Z2luID0gZ2V0UGx1Z2luPEJsb2NrUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGJsb2NrLCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRibG9jaykge1xuICAgIHJldHVybiB7ICRibG9jazogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRibG9jazogdW5kZWZpbmVkLFxuICAgICRjbGFzc05hbWU6IFskY2xhc3NOYW1lLCAkYmxvY2sgPT09IFwiaW5saW5lXCIgPyBzdHlsZXNbXCJibG9jay0taW5saW5lXCJdIDogc3R5bGVzLmJsb2NrXSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5pbXBvcnQgdHlwZSB7IFJhbmdlIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcbmltcG9ydCBvdXRsaW5lU3R5bGVzIGZyb20gXCIuL291dGxpbmUubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IHNhbml0aXplU2Nzc01vZHVsZXMgfSBmcm9tIFwiQGs4c2xlbnMvdGVzdC11dGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBJQ2xhc3NOYW1lIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuY29uc3Qgc3R5bGVzID0gc2FuaXRpemVTY3NzTW9kdWxlcyhvdXRsaW5lU3R5bGVzKTtcblxuZXhwb3J0IHR5cGUgT3V0bGluZVdpZHRoID0gXCJ6ZXJvXCIgfCBcInh4c1wiIHwgXCJ4c1wiIHwgXCJzXCIgfCBcIm1cIiB8IFwibFwiIHwgXCJ4bFwiIHwgXCJ4eGxcIiB8IGAke1JhbmdlPDMsIDU+fXhsYDtcblxuZXhwb3J0IHR5cGUgJE91dGxpbmVQcm9wcyA9IHsgY29sb3I/OiBDb2xvcjsgd2lkdGg/OiBPdXRsaW5lV2lkdGggfTtcblxuZXhwb3J0IHR5cGUgT3V0bGluZVBsdWdpblByb3BzID0geyAkb3V0bGluZT86IHsgZm9jdXNWaXNpYmxlPzogJE91dGxpbmVQcm9wcyB9IH07XG5cbmV4cG9ydCBjb25zdCBvdXRsaW5lUGx1Z2luID0gZ2V0UGx1Z2luPE91dGxpbmVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0Rm9jdXNWaXNpYmxlT3V0bGluZVN0eWxlcyhwcm9wcy4kb3V0bGluZT8uZm9jdXNWaXNpYmxlKV0sXG4gICAgJG91dGxpbmU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBnZXRGb2N1c1Zpc2libGVPdXRsaW5lU3R5bGVzID0gKHByb3BzOiAkT3V0bGluZVByb3BzIHwgdW5kZWZpbmVkKTogSUNsYXNzTmFtZSA9PiB7XG4gIGlmICghcHJvcHMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgeyBjb2xvciwgd2lkdGggfSA9IHByb3BzO1xuXG4gIHJldHVybiBbXG4gICAgY29sb3IgIT09IHVuZGVmaW5lZCB8fCB3aWR0aCAhPT0gdW5kZWZpbmVkID8gW3N0eWxlcy5vdXRsaW5lLCBzdHlsZXMuZm9jdXNWaXNpYmxlXSA6IHVuZGVmaW5lZCxcbiAgICBjb2xvciA/IHN0eWxlc1tgY29sb3ItLSR7Y29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgd2lkdGggPyBzdHlsZXNbYHdpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICBdO1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdHlwZSBJQ2xhc3NOYW1lLCBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCBpbnRlcmFjdGl2ZVN0eWxlcyBmcm9tIFwiLi9pbnRlcmFjdGl2ZS5tb2R1bGUuc2Nzc1wiO1xuXG5jb25zdCBzdHlsZXMgPSBzYW5pdGl6ZVNjc3NNb2R1bGVzKGludGVyYWN0aXZlU3R5bGVzKTtcblxuZXhwb3J0IHR5cGUgJEludGVyYWN0aXZlUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBTaG93cyB0aGUgZWxlbWVudCBhcyB0aGUgYWN0aXZlIG9uZSwgZS5nLiB0aGUgdHJpZ2dlciBvZiBhIG1lbnUgdGhhdCBpc1xuICAgKiBvcGVuOiB0aGUgaGlnaGxpZ2h0IHN0YXlzIG9uIHdpdGggYSByaW5nIGFyb3VuZCBpdC5cbiAgICovXG4gIGFjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIga2V5Ym9hcmQgZm9jdXMgZHJhd3MgdGhlIGZvY3VzIHJpbmcuIERlZmF1bHRzIHRvIGB0cnVlYDsgb3B0IG91dFxuICAgKiBvbmx5IHdoZXJlIHRoZSBzdXJyb3VuZGluZyBjb250cm9sIGRyYXdzIGl0cyBvd24uXG4gICAqL1xuICBmb2N1c1Zpc2libGVPdXRsaW5lPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEludGVyYWN0aXZlUGx1Z2luUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBHaXZlcyB0aGUgZWxlbWVudCB0aGUgYWZmb3JkYW5jZSBvZiBhbiBpY29uIGJ1dHRvbjogYSBoaWdobGlnaHQgb24gaG92ZXIsXG4gICAqIGEgZm9jdXMgcmluZyBmb3Iga2V5Ym9hcmQgdXNlcnMsIGFuZCB3aXRoIGBhY3RpdmVgIGEgcmluZyB0aGF0IG1hcmtzIGl0XG4gICAqIGFzIHRoZSBhY3RpdmUgb25lLlxuICAgKi9cbiAgJGludGVyYWN0aXZlPzogYm9vbGVhbiB8ICRJbnRlcmFjdGl2ZVByb3BzO1xufTtcblxuZXhwb3J0IGNvbnN0IGludGVyYWN0aXZlUGx1Z2luID0gZ2V0UGx1Z2luPEludGVyYWN0aXZlUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0SW50ZXJhY3RpdmVDbGFzc05hbWVzKHByb3BzLiRpbnRlcmFjdGl2ZSldLFxuICAkaW50ZXJhY3RpdmU6IHVuZGVmaW5lZCxcbn0pKTtcblxuY29uc3QgZ2V0SW50ZXJhY3RpdmVDbGFzc05hbWVzID0gKGludGVyYWN0aXZlOiBib29sZWFuIHwgJEludGVyYWN0aXZlUHJvcHMgfCB1bmRlZmluZWQpOiBJQ2xhc3NOYW1lID0+IHtcbiAgaWYgKCFpbnRlcmFjdGl2ZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCB7IGFjdGl2ZSA9IGZhbHNlLCBmb2N1c1Zpc2libGVPdXRsaW5lID0gdHJ1ZSB9ID0gaW50ZXJhY3RpdmUgPT09IHRydWUgPyB7fSA6IGludGVyYWN0aXZlO1xuXG4gIHJldHVybiBbc3R5bGVzLmludGVyYWN0aXZlLCB7IFtzdHlsZXMuYWN0aXZlXTogYWN0aXZlLCBbc3R5bGVzLmlnbm9yZUZvY3VzVmlzaWJsZV06ICFmb2N1c1Zpc2libGVPdXRsaW5lIH1dO1xufTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IGNsaWNrYWJsZVBsdWdpbiwgQ2xpY2tIYW5kbGVyRGV0YWlscyB9IGZyb20gXCIuLi9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgeyBhdXRvVXBkYXRlLCBmbGlwLCBvZmZzZXQsIHNoaWZ0LCB1c2VGbG9hdGluZyB9IGZyb20gXCJAZmxvYXRpbmctdWkvcmVhY3QtZG9tXCI7XG5pbXBvcnQgdHlwZSB7IFJlZlBsdWdpbiB9IGZyb20gXCIuLi9yZWYvcmVmXCI7XG5pbXBvcnQgeyBleHBlY3REZWZpbmVkLCBzdG9wUHJvcGFnYXRpb24gfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9wb3BvdmVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBNaW5pbWFsRGl2IH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzL21pbmltYWwtZGl2XCI7XG5cbmV4cG9ydCB0eXBlIFBvcG92ZXJQbHVnaW5Qcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gICRwb3BvdmVyPzogKCkgPT4gUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvcG92ZXJJc09wZW5Db250ZXh0ID0gY3JlYXRlQ29udGV4dChmYWxzZSk7XG5cbmV4cG9ydCBjb25zdCB1c2VQb3BvdmVySXNPcGVuID0gKCkgPT4gdXNlQ29udGV4dChwb3BvdmVySXNPcGVuQ29udGV4dCk7XG5cbmV4cG9ydCBjb25zdCBwb3BvdmVyUGx1Z2luID0gZ2V0UGx1Z2luPFBvcG92ZXJQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGlja2FibGVQbHVnaW4sIFJlZlBsdWdpbjxhbnk+XT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHBvcG92ZXIsICRvbkNsaWNrLCAkcmVmIH0gPSBwcm9wcztcbiAgY29uc3QgW3BvcG92ZXJDb250ZW50SXNTaG93biwgc2V0UG9wb3ZlckNvbnRlbnRJc1Nob3duXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0RWxlbWVudF0gPSB1c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBjbG9zZVBvcG92ZXIgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXRQb3BvdmVyQ29udGVudElzU2hvd24oZmFsc2UpLCBbXSk7XG5cbiAgaWYgKCEkcG9wb3Zlcikge1xuICAgIHJldHVybiB7XG4gICAgICAkcG9wb3ZlcjogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRwb3BvdmVyOiB1bmRlZmluZWQsXG4gICAgJHJlZjogWyRyZWYsIHNldEVsZW1lbnRdLFxuICAgICRvbkNsaWNrOiAoZGV0YWlsczogQ2xpY2tIYW5kbGVyRGV0YWlscykgPT4ge1xuICAgICAgc2V0UG9wb3ZlckNvbnRlbnRJc1Nob3duKCFwb3BvdmVyQ29udGVudElzU2hvd24pO1xuICAgICAgJG9uQ2xpY2s/LihkZXRhaWxzKTtcbiAgICB9LFxuICAgIG9uQ2xpY2s6IHN0b3BQcm9wYWdhdGlvbixcbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBQb3BvdmVyV3JhcHBlckNvbXBvbmVudCxcbiAgICAgIHByb3BzOiB7XG4gICAgICAgIHBvcG92ZXI6IHtcbiAgICAgICAgICAkcG9wb3ZlcixcbiAgICAgICAgICBpc1Nob3duOiBwb3BvdmVyQ29udGVudElzU2hvd24sXG4gICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgIGNsb3NlUG9wb3ZlcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuXG50eXBlIFBvcG92ZXJXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHBvcG92ZXI6IHtcbiAgICByZWFkb25seSAkcG9wb3ZlcjogKCkgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICAgIHJlYWRvbmx5IGlzU2hvd246IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgcmVmZXJlbmNlOiBIVE1MRGl2RWxlbWVudCB8IG51bGw7XG4gICAgcmVhZG9ubHkgY2xvc2VQb3BvdmVyOiBWb2lkRnVuY3Rpb247XG4gIH07XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBQb3BvdmVyV3JhcHBlckNvbXBvbmVudCA9ICh7IHBvcG92ZXIsIGNoaWxkcmVuIH06IFBvcG92ZXJXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgeyAkcG9wb3ZlciwgaXNTaG93biwgcmVmZXJlbmNlLCBjbG9zZVBvcG92ZXIgfSA9IHBvcG92ZXI7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2lzU2hvd24gJiZcbiAgICAgICAgY3JlYXRlUG9ydGFsKFxuICAgICAgICAgIDxQb3BvdmVyT3ZlcmxheUNvbnRlbnRcbiAgICAgICAgICAgIHsuLi57XG4gICAgICAgICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgJHBvcG92ZXIsXG4gICAgICAgICAgICAgIGNsb3NlUG9wb3ZlcixcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz4sXG4gICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgKX1cbiAgICAgIDxwb3BvdmVySXNPcGVuQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17aXNTaG93bn0+e2NoaWxkcmVufTwvcG9wb3ZlcklzT3BlbkNvbnRleHQuUHJvdmlkZXI+XG4gICAgPC8+XG4gICk7XG59O1xuXG50eXBlIFBvcG92ZXJPdmVybGF5Q29udGVudFByb3BzID0ge1xuICByZWZlcmVuY2U6IEhUTUxEaXZFbGVtZW50IHwgbnVsbDtcbiAgJHBvcG92ZXI6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY2xvc2VQb3BvdmVyOiBWb2lkRnVuY3Rpb247XG59O1xuXG5jb25zdCBQb3BvdmVyT3ZlcmxheUNvbnRlbnQgPSAocHJvcHM6IFBvcG92ZXJPdmVybGF5Q29udGVudFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHBvcG92ZXIsIGNsb3NlUG9wb3ZlciwgcmVmZXJlbmNlIH0gPSBwcm9wcztcbiAgY29uc3QgW2Zsb2F0aW5nLCBzZXRGbG9hdGluZ10gPSB1c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCB7IGZsb2F0aW5nU3R5bGVzIH0gPSB1c2VGbG9hdGluZyh7XG4gICAgcGxhY2VtZW50OiBcImJvdHRvbVwiLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGNsb3NlUG9wb3ZlckZyb21PdmVybGF5ID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50KTtcbiAgICBjbG9zZVBvcG92ZXIoKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxNaW5pbWFsRGl2XG4gICAgICBkYXRhLXBvcG92ZXItb3ZlcmxheS10ZXN0XG4gICAgICAkYWJzb2x1dGVcbiAgICAgICRjbGFzc05hbWU9e3N0eWxlcy5wb3BvdmVyX19vdmVybGF5fVxuICAgICAgb25DbGljaz17Y2xvc2VQb3BvdmVyRnJvbU92ZXJsYXl9XG4gICAgPlxuICAgICAgPE1pbmltYWxEaXZcbiAgICAgICAgJHJlZj17c2V0RmxvYXRpbmd9XG4gICAgICAgIHN0eWxlPXtmbG9hdGluZ1N0eWxlc31cbiAgICAgICAgb25DbGljaz17c3RvcFByb3BhZ2F0aW9ufVxuICAgICAgICAkY2xhc3NOYW1lPXtzdHlsZXMucG9wb3Zlcl9fY29udGVudH1cbiAgICAgID5cbiAgICAgICAgPGNvbnRleHRGb3JDbG9zaW5nUG9wb3Zlci5Qcm92aWRlciB2YWx1ZT17Y2xvc2VQb3BvdmVyfT57JHBvcG92ZXIoKX08L2NvbnRleHRGb3JDbG9zaW5nUG9wb3Zlci5Qcm92aWRlcj5cbiAgICAgIDwvTWluaW1hbERpdj5cbiAgICA8L01pbmltYWxEaXY+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgY29udGV4dEZvckNsb3NpbmdQb3BvdmVyID0gY3JlYXRlQ29udGV4dDxWb2lkRnVuY3Rpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbmV4cG9ydCBjb25zdCB1c2VDbG9zZVBvcG92ZXIgPSAoKSA9PlxuICBleHBlY3REZWZpbmVkKFxuICAgIHVzZUNvbnRleHQoY29udGV4dEZvckNsb3NpbmdQb3BvdmVyKSxcbiAgICBcIlRyaWVkIHRvIHVzZSBjbG9zZSBwb3BvdmVyIHdoaWxlIGNvbnRlbnQgaXMgbm90IHNob3duIGluc2lkZSB0aGUgcG9wb3ZlciBjb250ZW50LlwiLFxuICApO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUmVmLCB0eXBlIFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBhdXRvVXBkYXRlLCBmbGlwLCBvZmZzZXQsIHNoaWZ0LCB1c2VGbG9hdGluZywgdHlwZSBQbGFjZW1lbnQgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdDb250ZW50QXJncyA9IHtcbiAgcmVhZG9ubHkgZmxvYXRpbmdTdHlsZXM6IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGNvbnRlbnRSZWY6IE5vbk51bGxhYmxlPFJlYWN0LlJlZjxIVE1MRGl2RWxlbWVudD4+O1xufTtcblxuZXhwb3J0IHR5cGUgRmxvYXRpbmdDb250ZW50RmFjdG9yeSA9IChhcmdzOiBGbG9hdGluZ0NvbnRlbnRBcmdzKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG5cbmV4cG9ydCB0eXBlICRGbG9hdGluZ1Byb3BzID0ge1xuICByZWFkb25seSBwb3NpdGlvbj86IFBsYWNlbWVudDtcbiAgcmVhZG9ubHkgY29udGVudDogRmxvYXRpbmdDb250ZW50RmFjdG9yeTtcbn07XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICByZWFkb25seSAkZmxvYXRpbmc/OiAkRmxvYXRpbmdQcm9wcztcbn07XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nUGx1Z2luID0gUGx1Z2luPEZsb2F0aW5nUGx1Z2luUHJvcHMsIHVua25vd24+O1xuXG50eXBlIEZsb2F0aW5nV3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBmbG9hdGluZzogJEZsb2F0aW5nUHJvcHM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBGbG9hdGluZ1dyYXBwZXJDb21wb25lbnQgPSAoeyBmbG9hdGluZywgY29udHJpYnV0ZVJlZiwgY2hpbGRyZW4gfTogRmxvYXRpbmdXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0UmVmZXJlbmNlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtmbG9hdGluZ0VsLCBzZXRGbG9hdGluZ10gPSB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnRyaWJ1dGVSZWYoc2V0UmVmZXJlbmNlKTtcblxuICBjb25zdCB7IGZsb2F0aW5nU3R5bGVzIH0gPSB1c2VGbG9hdGluZyh7XG4gICAgcGxhY2VtZW50OiBmbG9hdGluZy5wb3NpdGlvbiA/PyBcImJvdHRvbVwiLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nOiBmbG9hdGluZ0VsLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIGNvbnN0IGZsb2F0aW5nQ29udGVudCA9IGZsb2F0aW5nLmNvbnRlbnQoeyBmbG9hdGluZ1N0eWxlcywgY29udGVudFJlZjogc2V0RmxvYXRpbmcgfSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2Zsb2F0aW5nQ29udGVudCA/IGNyZWF0ZVBvcnRhbChmbG9hdGluZ0NvbnRlbnQsIGRvY3VtZW50LmJvZHkpIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBmbG9hdGluZ1BsdWdpbjxUPigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxGbG9hdGluZ1BsdWdpblByb3BzLCBbUmVmUGx1Z2luPFQ+XT4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkZmxvYXRpbmcgfSA9IHByb3BzO1xuXG4gICAgaWYgKCRmbG9hdGluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4geyAkZmxvYXRpbmc6IHVuZGVmaW5lZCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAkZmxvYXRpbmc6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogRmxvYXRpbmdXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBwcm9wczogeyBmbG9hdGluZzogJGZsb2F0aW5nIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xufVxuIiwgImltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSBJbnZpc2libGVCYWNrZHJvcFBsdWdpblByb3BzID0ge1xuICAkaW52aXNpYmxlQmFja2Ryb3A/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGludmlzaWJsZUJhY2tkcm9wUGx1Z2luID0gZ2V0UGx1Z2luPEludmlzaWJsZUJhY2tkcm9wUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGludmlzaWJsZUJhY2tkcm9wLCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRpbnZpc2libGVCYWNrZHJvcCkge1xuICAgIHJldHVybiB7ICRpbnZpc2libGVCYWNrZHJvcDogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRpbnZpc2libGVCYWNrZHJvcDogdW5kZWZpbmVkLFxuICAgICRjbGFzc05hbWU6IFskY2xhc3NOYW1lLCBzdHlsZXMuaW52aXNpYmxlQmFja2Ryb3BdLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEcm9wRG93bk1lbnUsIHR5cGUgRHJvcERvd25NZW51U3BlYyB9IGZyb20gXCJAazhzbGVucy9kcm9wLWRvd24tbWVudS1jb250cmFjdHNcIjtcbmltcG9ydCB7IG9uVHJpZ2dlciB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgb25SaWdodFRyaWdnZXJJbmplY3RhYmxlIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgUG9zaXRpb24yZCB9IGZyb20gXCIuLi9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgdHlwZSB7IGN1cnNvclBsdWdpbiB9IGZyb20gXCIuLi9jdXJzb3IvY3Vyc29yXCI7XG5pbXBvcnQgeyB0eXBlIGVuYWJsZWRQbHVnaW4sIGlzRGlzYWJsZWQgfSBmcm9tIFwiLi4vZW5hYmxlZC9lbmFibGVkXCI7XG5pbXBvcnQgeyB1c2VPbk91dHNpZGVDbGljayB9IGZyb20gXCIuLi9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcblxuZXhwb3J0IHR5cGUgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICByZWFkb25seSB0YWJJbmRleD86IG51bWJlcjtcblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBkcm9wLWRvd24gbWVudSB0byB0aGUgZWxlbWVudC4gQ3JlYXRlIHRoZSB2YWx1ZSB3aXRoIGBkcm9wRG93bk1lbnUoa2luZCwgb3B0aW9ucz8pYFxuICAgKiBmcm9tIGBAazhzbGVucy9kcm9wLWRvd24tbWVudS1jb250cmFjdHNgOyB0aGUgaXRlbXMgY29tZSBmcm9tIHRoZSBjb250cmlidXRpb25zIHJlZ2lzdGVyZWQgZm9yXG4gICAqIHRoZSBraW5kLlxuICAgKlxuICAgKiBUaGUgbWVudSBwb3NpdGlvbnMgaXRzZWxmIGFnYWluc3QgdGhlIG5lYXJlc3QgYW5jaG9yIGFyb3VuZCBpdCwgc28gdGhlIGVsZW1lbnQgXHUyMDE0IG9yIHNvbWV0aGluZ1xuICAgKiBlbmNsb3NpbmcgaXQgXHUyMDE0IGRlY2xhcmVzIGAkYW5jaG9yYC5cbiAgICpcbiAgICogVGhlIG1lbnUgdGFrZXMgZm9jdXMgYXMgaXQgb3BlbnMsIGl0cyBmaXJzdCBpdGVtIGJlY29taW5nIHRoZSBjdXJyZW50IG9uZSBcdTIwMTQgZXhjZXB0IHdoZW4gaXRcbiAgICogb3BlbnMgYnkgYmVpbmcgaG92ZXJlZCwgd2hlcmUgZm9jdXMgc3RheXMgb24gdGhlIGVsZW1lbnQ6IHRoZSByb3cgdGhlIHBvaW50ZXIgcmVzdHMgb24gaXMgd2hhdFxuICAgKiB0aGUgdXNlciBpcyBsb29raW5nIGF0LiBGb2N1cyByZXR1cm5zIHRvIHRoZSBlbGVtZW50IG9uY2UgdGhlIG1lbnUgaXMgZ29uZS4gQSBtZW51IHRoYXQgb3BlbnMgb25cbiAgICogaG92ZXJpbmcgb3BlbnMgd2l0aCBBcnJvd1JpZ2h0IGFzIHdlbGwsIHRha2luZyBmb2N1cyB0aGVuLCBhbmQgY2xvc2VzIHdpdGggQXJyb3dMZWZ0IGZyb21cbiAgICogYW55d2hlcmUgd2l0aGluIGl0LCBzbyBhIG1lbnUgaGVsZCBieSBhIG1lbnUgcm93IGlzIHJlYWNoYWJsZSB3aXRob3V0IGEgcG9pbnRlci5cbiAgICpcbiAgICogUmVxdWlyZXMgYGRyb3BEb3duTWVudUZlYXR1cmVgIG9mIGBAbGVuc2FwcC9kcm9wLWRvd24tbWVudWAgdG8gYmUgcmVnaXN0ZXJlZDogdGhlIG1lbnVcbiAgICogY29tcG9uZW50IGlzIHJlc29sdmVkIHRocm91Z2ggYW4gaW5qZWN0aW9uIHRva2VuIHRoaXMgcGFja2FnZSBkb2VzIG5vdCBpbXBsZW1lbnQuXG4gICAqL1xuICByZWFkb25seSAkZHJvcERvd25NZW51PzogRHJvcERvd25NZW51U3BlYztcbn07XG5cbmNvbnN0IGhvdmVyQ2xvc2VEZWxheUluTWlsbGlzZWNvbmRzID0gMjAwO1xuXG50eXBlIERyb3BEb3duTWVudVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgZHJvcERvd25NZW51OiBEcm9wRG93bk1lbnVTcGVjO1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IERyb3BEb3duTWVudVdyYXBwZXJDb21wb25lbnQgPSAoe1xuICBkcm9wRG93bk1lbnUsXG4gIGNvbnRyaWJ1dGVSZWYsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBEcm9wRG93bk1lbnVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgLy8gV2hldGhlciB0aGUgbWVudSB0YWtlcyBmb2N1cyBhcyBpdCBvcGVucy4gT25seSBhIG1lbnUgdGhlIHBvaW50ZXIgb3BlbmVkIGJ5IHJlc3Rpbmcgb24gdGhlXG4gIC8vIGVsZW1lbnQgbGVhdmVzIGl0IGJlOiB0aGUga2V5Ym9hcmQgb3BlbmluZyBvbmUsIG9yIGEgY2xpY2ssIGlzIHRoZSB1c2VyIGFza2luZyBmb3IgdGhlIG1lbnUsXG4gIC8vIGFuZCBpdHMgZmlyc3QgaXRlbSBpcyB3aGVyZSB0aGV5IGdvIG9uIGZyb20uXG4gIGNvbnN0IFt0YWtlc0ZvY3VzLCBzZXRUYWtlc0ZvY3VzXSA9IHVzZVN0YXRlKHRydWUpO1xuICBjb25zdCBbY3Vyc29yLCBzZXRDdXJzb3JdID0gdXNlU3RhdGU8UG9zaXRpb24yZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3QgY2xvc2VUaW1lclJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgY29uc3Qgb25SaWdodFRyaWdnZXIgPSB1c2VTeW5jSW5qZWN0KG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSk7XG5cbiAgY29uc3QgZWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBtZW51UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IGVsZW1lbnRUYWtlc0ZvY3VzQmFja1JlZiA9IHVzZVJlZihmYWxzZSk7XG5cbiAgY29udHJpYnV0ZVJlZihcbiAgICB1c2VDYWxsYmFjaygoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBlbGVtZW50O1xuICAgIH0sIFtdKSxcbiAgKTtcblxuICBjb25zdCB0b2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGFrZXNGb2N1cyh0cnVlKTtcbiAgICBzZXRJc09wZW4oKHdhc09wZW4pID0+ICF3YXNPcGVuKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIC8vIFRoZSBlbGVtZW50IHRoZSBtZW51IGJlbG9uZ3MgdG8gdGFrZXMgZm9jdXMgYmFjayB3aGVuIGZvY3VzIGlzIGluIHRoZSBtZW51IHRoYXQgaXMgY2xvc2luZyxcbiAgICAvLyBvciBub3doZXJlIGF0IGFsbDogd2hhdGV2ZXIgdGhlIHVzZXIgZG9lcyBuZXh0LCB0aGV5IGRvIGZyb20gd2hlcmUgdGhleSB3ZXJlLiBEZWNpZGVkIGhlcmUsXG4gICAgLy8gd2hpbGUgaXQgaXMgc3RpbGwgY2xlYXIgd2hlcmUgZm9jdXMgd2FzLCByYXRoZXIgdGhhbiBvbmNlIHRoZSBtZW51IGhhcyBnb25lLlxuICAgIGNvbnN0IGZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuXG4gICAgZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmLmN1cnJlbnQgPVxuICAgICAgZm9jdXNlZCA9PT0gbnVsbCB8fCBmb2N1c2VkID09PSBkb2N1bWVudC5ib2R5IHx8IG1lbnVSZWYuY3VycmVudD8uY29udGFpbnMoZm9jdXNlZCkgPT09IHRydWU7XG5cbiAgICBzZXRJc09wZW4oZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgY2FuY2VsU2NoZWR1bGVkQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKGNsb3NlVGltZXJSZWYuY3VycmVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhclRpbWVvdXQoY2xvc2VUaW1lclJlZi5jdXJyZW50KTtcbiAgICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBvcGVuID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wZW5lZEJ5OiBcInBvaW50ZXJcIiB8IFwia2V5Ym9hcmRcIikgPT4ge1xuICAgICAgY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKTtcbiAgICAgIHNldFRha2VzRm9jdXMob3BlbmVkQnkgPT09IFwia2V5Ym9hcmRcIik7XG4gICAgICBzZXRJc09wZW4odHJ1ZSk7XG4gICAgfSxcbiAgICBbY2FuY2VsU2NoZWR1bGVkQ2xvc2VdLFxuICApO1xuXG4gIGNvbnN0IHNjaGVkdWxlQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKTtcbiAgICBjbG9zZVRpbWVyUmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KGNsb3NlLCBob3ZlckNsb3NlRGVsYXlJbk1pbGxpc2Vjb25kcyk7XG4gIH0sIFtjYW5jZWxTY2hlZHVsZWRDbG9zZSwgY2xvc2VdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4gY2FuY2VsU2NoZWR1bGVkQ2xvc2UsIFtjYW5jZWxTY2hlZHVsZWRDbG9zZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc09wZW4pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gQSBtZW51IHRoYXQgaXMgZGlzbWlzc2VkIHJhdGhlciB0aGFuIGNsb3NlZCBcdTIwMTQgY2xpY2tlZCBhd2F5IGZyb20gXHUyMDE0IGxlYXZlcyBmb2N1cyB3aGVyZXZlciB0aGVcbiAgICAvLyB1c2VyIHB1dCBpdC5cbiAgICBlbGVtZW50VGFrZXNGb2N1c0JhY2tSZWYuY3VycmVudCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICghZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBEZWZlcnJlZCBwYXN0IHdoYXQgaXMgYmVpbmcgdGFrZW4gYXdheTogdGhlIGVsZW1lbnQgbWF5IGJlIGdvaW5nIHdpdGggdGhlIG1lbnUsIGEgbWVudVxuICAgICAgLy8gaW5zaWRlIGEgbWVudSB0aGF0IGlzIGNsb3NpbmcgdG9vLCBhbmQgb25seSB0aGVuIGlzIGl0IGNsZWFyIHdoZXRoZXIgaXQgaXMgc3RpbGwgdGhlcmUgdG9cbiAgICAgIC8vIHRha2UgZm9jdXMgYmFjay4gQW55dGhpbmcgdGhhdCB0b29rIGZvY3VzIGluIHRoZSBtZWFudGltZSB3YXMgZ2l2ZW4gaXQgb24gcHVycG9zZSwgYW5kIGFcbiAgICAgIC8vIG1lbnUgY2xvc2luZyBpcyBubyByZWFzb24gdG8gdGFrZSBpdCBhd2F5IGFnYWluLlxuICAgICAgdm9pZCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcbiAgICAgICAgY29uc3QgZm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQ/LmlzQ29ubmVjdGVkICYmIChmb2N1c2VkID09PSBudWxsIHx8IGZvY3VzZWQgPT09IGRvY3VtZW50LmJvZHkpKSB7XG4gICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICB9LCBbaXNPcGVuXSk7XG5cbiAgY29uc3Qgb3Blbk9uID0gZHJvcERvd25NZW51Lm9wZW5PbiA/PyBcImNsaWNrXCI7XG5cbiAgY29uc3QgY2xvc2VPbkFycm93TGVmdCA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0xlZnRcIikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtjbG9zZV0sXG4gICk7XG5cbiAgLy8gTWFya3MgdGhlIGVsZW1lbnQgYW5kLCBiZWxvdywgdGhlIG1lbnUgaXQgb3BlbnMgYXMgb25lIHRoaW5nIGZvciBvdXRzaWRlLWNsaWNrIHB1cnBvc2VzLlxuICBjb25zdCBvdXRzaWRlQ2xpY2tNYXJraW5nUHJvcHMgPSB1c2VPbk91dHNpZGVDbGljayhcbiAgICB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgICB9XG4gICAgfSwgW2lzT3Blbl0pLFxuICApO1xuXG4gIGNvbnRyaWJ1dGVQcm9wcyh7XG4gICAgLi4ub3V0c2lkZUNsaWNrTWFya2luZ1Byb3BzLFxuICAgIFwiYXJpYS1oYXNwb3B1cFwiOiBcIm1lbnVcIixcblxuICAgIC4uLihvcGVuT24gPT09IFwiY2xpY2tcIiAmJiB7XG4gICAgICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRvZ2dsZSgpO1xuICAgICAgfSxcblxuICAgICAgLy8gQSBrZXkgcHJlc3MgdGhlIGVsZW1lbnQgYW5zd2VycyB3aXRoIGEgbWVudSBpcyBhbnN3ZXJlZCBoZXJlIGFuZCBub3doZXJlIGVsc2UsXG4gICAgICAvLyBleGFjdGx5IGFzIGl0cyBjbGljayBpczogd2hhdGV2ZXIgZW5jbG9zZXMgdGhlIGVsZW1lbnQgKGEgbWVudSByb3cgd2l0aCBhblxuICAgICAgLy8gYWN0aW9uIG9mIGl0cyBvd24sIHNheSkgbXVzdCBub3QgdGFrZSB0aGUgc2FtZSBwcmVzcyBmb3IgYmVpbmcgYWN0aXZhdGVkIHRvby5cbiAgICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIG9uVHJpZ2dlcihldmVudCwgKCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSksXG5cbiAgICAuLi4ob3Blbk9uID09PSBcInJpZ2h0LWNsaWNrXCIgJiYge1xuICAgICAgb25Db250ZXh0TWVudTogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAvLyBBIG1lbnUgb3BlbmVkIGJ5IHJpZ2h0LWNsaWNraW5nIGJlbG9uZ3MgYXQgdGhlIGN1cnNvciByYXRoZXIgdGhhbiBhdCB0aGUgZWxlbWVudC5cbiAgICAgICAgc2V0Q3Vyc29yKHsgeDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xpZW50WSB9KTtcbiAgICAgICAgdG9nZ2xlKCk7XG4gICAgICB9LFxuXG4gICAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBvblJpZ2h0VHJpZ2dlcihldmVudCwgKCkgPT4ge1xuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSksXG5cbiAgICAuLi4ob3Blbk9uID09PSBcImhvdmVyXCIgJiYge1xuICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBvcGVuKFwicG9pbnRlclwiKSxcbiAgICAgIG9uTW91c2VMZWF2ZTogc2NoZWR1bGVDbG9zZSxcblxuICAgICAgLy8gQSBtZW51IHRoYXQgb3BlbnMgb24gaG92ZXJpbmcgd291bGQgYmUgb3V0IG9mIHRoZSBrZXlib2FyZCdzIHJlYWNoIG90aGVyd2lzZS4gU2lkZXdheXNcbiAgICAgIC8vIGludG8gaXQsIHNpbmNlIHRoYXQgaXMgd2hlcmUgc3VjaCBhIG1lbnUgc2l0czogYmVzaWRlIHRoZSBlbGVtZW50IGl0IGJlbG9uZ3MgdG8uIEZvY3VzXG4gICAgICAvLyBmb2xsb3dzIG9uIGl0cyBvd24sIHRoZSBtZW51IHRha2luZyBpdCBhcyBpdCBhcHBlYXJzIFx1MjAxNCBvciwgdGhlIHBvaW50ZXIgaGF2aW5nIG9wZW5lZCBpdFxuICAgICAgLy8gYWxyZWFkeSwgYXMgdGhlIGtleWJvYXJkIHN0ZXBzIGludG8gaXQuXG4gICAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93UmlnaHRcIikge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgb3BlbihcImtleWJvYXJkXCIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7Y2hpbGRyZW59XG5cbiAgICAgIHtpc09wZW4gJiYgKFxuICAgICAgICAvLyBNYXJrZWQgYXMgaW5zaWRlIGZvciB0aGUgb3V0c2lkZS1jbGljayBkZXRlY3Rpb24gYWJvdmU6IHRoZSBtZW51IGlzIGEgc2libGluZyBvZiB0aGVcbiAgICAgICAgLy8gZWxlbWVudCBpbiB0aGUgRE9NLCBidXQgcGFydCBvZiB0aGUgc2FtZSB0aGluZyBhcyBmYXIgYXMgYSB1c2VyIGlzIGNvbmNlcm5lZC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gQSBjbGljayBsYW5kaW5nIG9uIHRoZSBtZW51IGlzIGEgY2xpY2sgb24gdGhlIG1lbnUgYW5kIG5vdGhpbmcgZWxzZSwgc28gaXQgc3RvcHMgaGVyZVxuICAgICAgICAvLyByYXRoZXIgdGhhbiBnb2luZyBvbiB0byB3aGF0ZXZlciBlbmNsb3NlcyB0aGUgZWxlbWVudCB0aGUgbWVudSB3YXMgb3BlbmVkIGZyb20gXHUyMDE0IGEgcm93XG4gICAgICAgIC8vIG9mIGEgbWVudSBvZiBpdHMgb3duLCBzYXksIHdoaWNoIHdvdWxkIHRha2UgaXQgZm9yIHRoZSByb3cgYmVpbmcgYWN0aXZhdGVkLiBPbmx5XG4gICAgICAgIC8vIGBjbGlja2Agc3RvcHM6IHRoZSBvdXRzaWRlLWNsaWNrIGRldGVjdGlvbiBhYm92ZSB3b3JrcyBvbiBgcG9pbnRlcmRvd25gLlxuICAgICAgICAvL1xuICAgICAgICAvLyBGb2N1cyBsYW5kaW5nIGluIHRoZSBtZW51IGlzIGxpa2V3aXNlIGZvY3VzIGluIHRoZSBtZW51IGFuZCBub3RoaW5nIGVsc2UuIEEgdHJlZSByb3dcbiAgICAgICAgLy8gZW5jbG9zaW5nIHRoZSBlbGVtZW50IHdvdWxkIG90aGVyd2lzZSB0YWtlIGl0IGZvciB0aGUgcm93IGl0c2VsZiBiZWluZyBmb2N1c2VkLCBhbmRcbiAgICAgICAgLy8gdGFrZSBmb2N1cyBzdHJhaWdodCBiYWNrIGZyb20gdGhlIG1lbnUgcm93IHRoZSBwb2ludGVyIGhhZCBqdXN0IHB1dCBpdCBvbiBcdTIwMTQgYW5kIHNpbmNlXG4gICAgICAgIC8vIHRoZSBoaWdobGlnaHQgb2YgYSBtZW51IHJvdyBmb2xsb3dzIGZvY3VzLCB0aGF0IGlzIGEgbWVudSB0aGF0IG5ldmVyIGxvb2tzIHBvaW50ZWQgYXQuXG4gICAgICAgIC8vIE9ubHkgZm9jdXMgc3RvcHMsIG5vdCBibHVyOiB3aGF0ZXZlciBlbmNsb3NlcyB0aGUgZWxlbWVudCB0ZWxscyBmb2N1cyBsZWF2aW5nIGl0IGFwYXJ0XG4gICAgICAgIC8vIGZyb20gZm9jdXMgbW92aW5nIHdpdGhpbiBpdCBieSB3aGVyZSBmb2N1cyB3ZW50LCBhbmQgaGFzIHRvIGhlYXIgb2YgaXQgbGVhdmluZyBmcm9tIHRoZVxuICAgICAgICAvLyBtZW51IGFzIG11Y2ggYXMgZnJvbSBhbnl3aGVyZSBlbHNlLlxuICAgICAgICA8c3BhblxuICAgICAgICAgIHsuLi5vdXRzaWRlQ2xpY2tNYXJraW5nUHJvcHN9XG4gICAgICAgICAgcmVmPXttZW51UmVmfVxuICAgICAgICAgIHN0eWxlPXtkaXNwbGF5Q29udGVudHN9XG4gICAgICAgICAgb25DbGljaz17c3RvcFByb3BhZ2F0aW9ufVxuICAgICAgICAgIG9uRm9jdXM9e3N0b3BQcm9wYWdhdGlvbn1cbiAgICAgICAgICAvLyBTaWRld2F5cyBiYWNrIG91dCBvZiBhIG1lbnUgdGhhdCBvcGVuZWQgc2lkZXdheXMsIGZyb20gd2hlcmV2ZXIgaW4gaXQgZm9jdXMgaGFwcGVucyB0b1xuICAgICAgICAgIC8vIGJlLiBJdCBzdG9wcyBoZXJlLCBzbyB0aGUgbWVudSB0aGlzIG9uZSB3YXMgb3BlbmVkIGZyb20gaXMgbGVmdCBhcyBpdCBpcyByYXRoZXIgdGhhblxuICAgICAgICAgIC8vIGNsb3NpbmcgYWxvbmcgd2l0aCBpdCBcdTIwMTQgb25lIHN0ZXAgb3V0IHBlciBwcmVzcy4gT25seSBzdWNoIGEgbWVudTogZWxzZXdoZXJlIHRoZSBrZXlcbiAgICAgICAgICAvLyBiZWxvbmdzIHRvIHdoYXRldmVyIHRoZSBtZW51IGhvbGRzLCBhbmQgRXNjYXBlIGlzIGhvdyBhIG1lbnUgaXMgZGlzbWlzc2VkLlxuICAgICAgICAgIG9uS2V5RG93bj17b3Blbk9uID09PSBcImhvdmVyXCIgPyBjbG9zZU9uQXJyb3dMZWZ0IDogdW5kZWZpbmVkfVxuICAgICAgICA+XG4gICAgICAgICAgPERyb3BEb3duTWVudVxuICAgICAgICAgICAgc3BlYz17ZHJvcERvd25NZW51fVxuICAgICAgICAgICAgYW5jaG9yUG9pbnQ9e29wZW5PbiA9PT0gXCJyaWdodC1jbGlja1wiID8gY3Vyc29yIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgdGFrZXNGb2N1cz17dGFrZXNGb2N1c31cbiAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlfVxuICAgICAgICAgICAgb25NZW51SG92ZXJDaGFuZ2U9e1xuICAgICAgICAgICAgICBvcGVuT24gPT09IFwiaG92ZXJcIlxuICAgICAgICAgICAgICAgID8gKG1lbnVJc0hvdmVyZWQpID0+IChtZW51SXNIb3ZlcmVkID8gY2FuY2VsU2NoZWR1bGVkQ2xvc2UoKSA6IHNjaGVkdWxlQ2xvc2UoKSlcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59O1xuXG5jb25zdCBkaXNwbGF5Q29udGVudHMgPSB7IGRpc3BsYXk6IFwiY29udGVudHNcIiB9IGFzIGNvbnN0O1xuXG5jb25zdCBzdG9wUHJvcGFnYXRpb24gPSAoZXZlbnQ6IFJlYWN0LlN5bnRoZXRpY0V2ZW50KSA9PiBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuZXhwb3J0IGNvbnN0IGRyb3BEb3duTWVudVBsdWdpbiA9IGdldFBsdWdpbjxEcm9wRG93bk1lbnVQbHVnaW5Qcm9wcywgW3R5cGVvZiBlbmFibGVkUGx1Z2luLCB0eXBlb2YgY3Vyc29yUGx1Z2luXT4oXG4gIChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGRyb3BEb3duTWVudSwgJGN1cnNvciwgcm9sZSB9ID0gcHJvcHMgYXMgdHlwZW9mIHByb3BzICYgUmVhY3QuSFRNTFByb3BzPEhUTUxFbGVtZW50PjtcblxuICAgIGlmICgkZHJvcERvd25NZW51ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7ICRkcm9wRG93bk1lbnU6IHVuZGVmaW5lZCB9O1xuICAgIH1cblxuICAgIGNvbnN0IG9wZW5zT25DbGljayA9ICgkZHJvcERvd25NZW51Lm9wZW5PbiA/PyBcImNsaWNrXCIpID09PSBcImNsaWNrXCI7XG4gICAgLy8gUmVhZCBmcm9tIHdoYXQgdGhlIGVsZW1lbnQgd2FzIGdpdmVuOiB0aGlzIHBsdWdpbiBydW5zIGJlZm9yZSB0aGUgb25lIHRoYXQgdHVybnMgaXQgaW50b1xuICAgIC8vIHRoZSBgZGlzYWJsZWRgIHByb3AuXG4gICAgY29uc3QgY2Fubm90QmVVc2VkID0gaXNEaXNhYmxlZChwcm9wcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGRyb3BEb3duTWVudTogdW5kZWZpbmVkLFxuXG4gICAgICAuLi4oJGRyb3BEb3duTWVudS5vcGVuT24gPT09IFwiaG92ZXJcIiA/IHt9IDogeyB0YWJJbmRleDogcHJvcHMudGFiSW5kZXggPz8gMCB9KSxcblxuICAgICAgLy8gQW4gZWxlbWVudCB0aGF0IGFuc3dlcnMgYSBjbGljayB3aXRoIGEgbWVudSBpcyBhIGJ1dHRvbiwgYW5kIHRoZSBjdXJzb3IgaXMgaG93IGl0IHNheXMgc29cbiAgICAgIC8vIC0tIG9yIHNheXMgdGhhdCBpdCBjYW5ub3QgcmlnaHQgbm93LiBCb3RoIHdvdWxkIG90aGVyd2lzZSBjb21lIGZyb20gYSBjbGljayBoYW5kbGVyIHN1Y2ggYW5cbiAgICAgIC8vIGVsZW1lbnQgaGFzIG5vIHJlYXNvbiB0byBoYXZlLiBPbmx5IGEgY2xpY2s6IHNvbWV0aGluZyByaWdodC1jbGlja2VkIGlzIG5vdCBhIGJ1dHRvbiwgYW5kIGFcbiAgICAgIC8vIHJvdyB0aGF0IHJldmVhbHMgYSBtZW51IG9uIGhvdmVyIGlzIGEgcm93LlxuICAgICAgLi4uKG9wZW5zT25DbGljayAmJiB7XG4gICAgICAgIHJvbGU6IHJvbGUgPz8gXCJidXR0b25cIixcbiAgICAgICAgJGN1cnNvcjogJGN1cnNvciA/PyAoY2Fubm90QmVVc2VkID8gXCJub3QtYWxsb3dlZFwiIDogXCJwb2ludGVyXCIpLFxuICAgICAgfSksXG5cbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogRHJvcERvd25NZW51V3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHsgZHJvcERvd25NZW51OiAkZHJvcERvd25NZW51IH0sXG4gICAgICB9LFxuICAgIH07XG4gIH0sXG4pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMsIHR5cGUgQ29udHJpYnV0ZVJlZiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgY3NzTmFtZXMgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2FuY2hvci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBQb3NpdGlvbjJkIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcbmltcG9ydCB7IHR5cGUgVFNoaXJ0U2l6ZSwgdFNoaXJ0U2l6ZUluUGl4ZWxzIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBjb2xvclBsdWdpbiB9IGZyb20gXCIuLi9jb2xvci9jb2xvclwiO1xuaW1wb3J0IHR5cGUgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5pbXBvcnQgdHlwZSB7IGJvcmRlclBsdWdpbiB9IGZyb20gXCIuLi9ib3JkZXIvYm9yZGVyXCI7XG5pbXBvcnQgdHlwZSB7IHBhZGRpbmdQbHVnaW4gfSBmcm9tIFwiLi4vcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgdHlwZSB7IG1hcmdpblBsdWdpbiB9IGZyb20gXCIuLi9tYXJnaW4vbWFyZ2luXCI7XG5pbXBvcnQgdHlwZSB7IG92ZXJmbG93UGx1Z2luIH0gZnJvbSBcIi4uL292ZXJmbG93L292ZXJmbG93XCI7XG5cbi8qKlxuICogV2hlcmUgYW4gZWxlbWVudCBzaXRzIHJlbGF0aXZlIHRvIGl0cyBhbmNob3I6IGEgc2lkZSBvZiB0aGUgYW5jaG9yLCBvcHRpb25hbGx5IHJlZmluZWQgd2l0aCBob3dcbiAqIHRoZSBlbGVtZW50IGV4dGVuZHMgYWxvbmcgdGhhdCBzaWRlLiBBIGJhcmUgc2lkZSBjZW50ZXJzIHRoZSBlbGVtZW50IG9uIGl0OyBgc3Bhbi08ZGlyZWN0aW9uPmBcbiAqIGFsaWducyB0aGVpciBlZGdlcyBhbmQgbGV0cyB0aGUgZWxlbWVudCBleHRlbmQgdG93YXJkIHRoYXQgZGlyZWN0aW9uLlxuICpcbiAqIFdoZW4gdGhlIGVsZW1lbnQgd291bGQgbm90IGZpdCB0aGUgdmlld3BvcnQsIGl0IGZhbGxzIGJhY2sgdG8gdGhlIG1pcnJvcmVkIHBvc2l0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgQW5jaG9yUG9zaXRpb24gPVxuICB8IFwidG9wXCJcbiAgfCBcImJvdHRvbVwiXG4gIHwgXCJsZWZ0XCJcbiAgfCBcInJpZ2h0XCJcbiAgfCBcInRvcCBzcGFuLWxlZnRcIlxuICB8IFwidG9wIHNwYW4tcmlnaHRcIlxuICB8IFwiYm90dG9tIHNwYW4tbGVmdFwiXG4gIHwgXCJib3R0b20gc3Bhbi1yaWdodFwiXG4gIHwgXCJsZWZ0IHNwYW4tdG9wXCJcbiAgfCBcImxlZnQgc3Bhbi1ib3R0b21cIlxuICB8IFwicmlnaHQgc3Bhbi10b3BcIlxuICB8IFwicmlnaHQgc3Bhbi1ib3R0b21cIjtcblxuLyoqXG4gKiBFaXRoZXIgYSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgbmVhcmVzdCBhbmNlc3RvciBgJGFuY2hvcmAsIG9yIHRoZSBzYW1lIHBvc2l0aW9uIHJlbGF0aXZlIHRvIGFcbiAqIHBvaW50IGluIHRoZSB2aWV3cG9ydC5cbiAqL1xuZXhwb3J0IHR5cGUgQW5jaG9yZWRBdCA9XG4gIHwgQW5jaG9yUG9zaXRpb25cbiAgfCB7XG4gICAgICByZWFkb25seSBwb3NpdGlvbjogQW5jaG9yUG9zaXRpb247XG5cbiAgICAgIC8qKiBIb3cgZmFyIGZyb20gdGhlIGFuY2hvciB0aGUgZWxlbWVudCBzaXRzLiBEZWZhdWx0cyB0byBgXCJ4c1wiYC4gKi9cbiAgICAgIHJlYWRvbmx5IGdhcD86IFRTaGlydFNpemU7XG5cbiAgICAgIC8qKiBTaXQgYXQgdGhpcyB2aWV3cG9ydCBwb2ludCBpbnN0ZWFkIG9mIGF0IGFuIGFuY2hvci4gKi9cbiAgICAgIHJlYWRvbmx5IHBvaW50PzogUG9zaXRpb24yZDtcbiAgICB9O1xuXG5jb25zdCBkZWZhdWx0R2FwOiBUU2hpcnRTaXplID0gXCJ4c1wiO1xuXG5leHBvcnQgdHlwZSBBbmNob3JQbHVnaW5Qcm9wcyA9IHtcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBlbGVtZW50IGFuIGFuY2hvciBmb3IgdGhlIGVsZW1lbnRzIG9mIGl0cyBzdWJ0cmVlIHRoYXQgZGVjbGFyZSB7QGxpbmsgJGFuY2hvcmVkQXR9LlxuICAgKiBUaGUgbmVhcmVzdCBzdWNoIGFuY2VzdG9yIHdpbnMsIHNvIG5lc3Rpbmcgd29ya3Mgd2l0aG91dCBuYW1pbmcgYW55dGhpbmcuXG4gICAqL1xuICByZWFkb25seSAkYW5jaG9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUG9zaXRpb25zIHRoZSBlbGVtZW50IHJlbGF0aXZlIHRvIGFuIGFuY2hvciwgYWJvdmUgZXZlcnl0aGluZyBlbHNlIG9uIHRoZSBwYWdlIFx1MjAxNCBpdCBlc2NhcGVzXG4gICAqIGNsaXBwaW5nIGFuY2VzdG9ycyBhbmQgc3RhY2tpbmcgY29udGV4dHMsIHNvIGl0IG5lZWRzIG5vIHBvcnRhbC5cbiAgICpcbiAgICogVGhlIGFuY2hvciBpcyB0aGUgbmVhcmVzdCBhbmNlc3RvciBkZWNsYXJpbmcge0BsaW5rICRhbmNob3J9LCBvciB0aGUgZ2l2ZW4gcG9pbnQgd2hlbiBhIHBvaW50XG4gICAqIGlzIHByb3ZpZGVkIGluc3RlYWQuXG4gICAqL1xuICByZWFkb25seSAkYW5jaG9yZWRBdD86IEFuY2hvcmVkQXQ7XG59O1xuXG5jb25zdCBhbmNob3JOYW1lQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG50eXBlIEFuY2hvcldyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgaXNBbmNob3I6IGJvb2xlYW47XG4gIHJlYWRvbmx5IGFuY2hvcmVkQXQ6IEFuY2hvcmVkQXQgfCB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgQW5jaG9yV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGlzQW5jaG9yLFxuICBhbmNob3JlZEF0LFxuICBjb250cmlidXRlUmVmLFxuICBjb250cmlidXRlUHJvcHMsXG4gIGNoaWxkcmVuLFxufTogQW5jaG9yV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnN0IG93bkFuY2hvck5hbWUgPSB0b0FuY2hvck5hbWUodXNlSWQoKSk7XG4gIGNvbnN0IGluaGVyaXRlZEFuY2hvck5hbWUgPSB1c2VDb250ZXh0KGFuY2hvck5hbWVDb250ZXh0KTtcbiAgY29uc3QgZWxlbWVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBwb2ludFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnRyaWJ1dGVSZWYoXG4gICAgdXNlQ2FsbGJhY2soKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgZWxlbWVudFJlZi5jdXJyZW50ID0gZWxlbWVudDtcbiAgICB9LCBbXSksXG4gICk7XG5cbiAgY29uc3QgcG9zaXRpb24gPSB0eXBlb2YgYW5jaG9yZWRBdCA9PT0gXCJzdHJpbmdcIiA/IGFuY2hvcmVkQXQgOiBhbmNob3JlZEF0Py5wb3NpdGlvbjtcbiAgY29uc3QgcG9pbnQgPSB0eXBlb2YgYW5jaG9yZWRBdCA9PT0gXCJvYmplY3RcIiA/IGFuY2hvcmVkQXQucG9pbnQgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGdhcCA9IHR5cGVvZiBhbmNob3JlZEF0ID09PSBcIm9iamVjdFwiID8gKGFuY2hvcmVkQXQuZ2FwID8/IGRlZmF1bHRHYXApIDogZGVmYXVsdEdhcDtcblxuICBpZiAocG9zaXRpb24gJiYgIXBvaW50ICYmICFpbmhlcml0ZWRBbmNob3JOYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRyaWVkIHRvIHBvc2l0aW9uIGFuIGVsZW1lbnQgYXQgXCIke3Bvc2l0aW9ufVwiIHdpdGhvdXQgYW4gYW5jaG9yLiBFaXRoZXIgZ2l2ZSBhbiBhbmNlc3RvciB0aGUgJGFuY2hvciBwcm9wLCBvciBhbmNob3IgdG8gYSBwb2ludCBpbnN0ZWFkLmAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIEEgcG9pbnQgYW5jaG9yIGlzIHRoZSBlbGVtZW50J3Mgb3duOyBvdGhlcndpc2UgaXQgcG9zaXRpb25zIGFnYWluc3Qgd2hhdGV2ZXIgYW5jaG9yIGVuY2xvc2VzIGl0LlxuICBjb25zdCBhbmNob3JOYW1lVG9Qb3NpdGlvbkFnYWluc3QgPSBwb2ludCA/IG93bkFuY2hvck5hbWUgOiBpbmhlcml0ZWRBbmNob3JOYW1lO1xuXG4gIGlmIChhbmNob3JlZEF0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmlidXRlUHJvcHMoeyBwb3BvdmVyOiBcIm1hbnVhbFwiIH0pO1xuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGlzQW5jaG9yKSB7XG4gICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGFuY2hvck5hbWVQcm9wZXJ0eSwgb3duQW5jaG9yTmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHBvc2l0aW9uUHJvcGVydHksIHBvc2l0aW9uKTtcbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoZ2FwUHJvcGVydHksIGAke3RTaGlydFNpemVJblBpeGVscyhnYXApfXB4YCk7XG5cbiAgICAgIC8vIE9ubHkgdG93YXJkIHRoZSBhbmNob3IsIHNvIHRoZSBlbGVtZW50IHN0aWxsIGxpbmVzIHVwIHdpdGggaXQgb24gdGhlIG90aGVyIGF4aXMuIEFcbiAgICAgIC8vIGZhbGxiYWNrIHRoYXQgbWlycm9ycyB0aGUgcG9zaXRpb24gbWlycm9ycyB0aGlzIG1hcmdpbiB3aXRoIGl0LlxuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShtYXJnaW5Qcm9wZXJ0eVRvd2FyZHNBbmNob3IocG9zaXRpb24pLCBgJHt0U2hpcnRTaXplSW5QaXhlbHMoZ2FwKX1weGApO1xuXG4gICAgICBpZiAoYW5jaG9yTmFtZVRvUG9zaXRpb25BZ2FpbnN0KSB7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocG9zaXRpb25BbmNob3JQcm9wZXJ0eSwgYW5jaG9yTmFtZVRvUG9zaXRpb25BZ2FpbnN0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBvaW50KSB7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocG9pbnRYUHJvcGVydHksIGAke3BvaW50Lnh9cHhgKTtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb2ludFlQcm9wZXJ0eSwgYCR7cG9pbnQueX1weGApO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgLy8gVGhlIHBvaW50IHJpc2VzIHRvIHRoZSB0b3AgbGF5ZXIgYWxvbmcgd2l0aCB3aGF0IGlzIGFuY2hvcmVkIHRvIGl0LiBBIGBmaXhlZGAgZWxlbWVudCByZXNvbHZlc1xuICAvLyBhZ2FpbnN0IHRoZSBuZWFyZXN0IGFuY2VzdG9yIHRoYXQgdHJhbnNmb3JtcywgZmlsdGVycyBvciBjb250YWlucyBpdHMgc3VidHJlZSwgc28gYSBwb2ludCBsZWZ0XG4gIC8vIGluIHRoZSB0cmVlIGxhbmRzIGF0IHRoZSBjdXJzb3IgcGx1cyB0aGF0IGFuY2VzdG9yJ3Mgb3duIG9mZnNldCBcdTIwMTQgd2hpY2ggaXMgaG93IGEgbWVudSBvcGVuZWRcbiAgLy8gb3ZlciBhIG5hdmlnYXRvciBpdGVtIHVzZWQgdG8gYXBwZWFyIGh1bmRyZWRzIG9mIHBpeGVscyBiZWxvdyB0aGUgY3Vyc29yLlxuICAvL1xuICAvLyBTaG93biBiZWZvcmUgdGhlIGVsZW1lbnQgYW5jaG9yZWQgdG8gaXQ6IGFuIGFuY2hvciBoYXMgdG8gcmVhY2ggdGhlIHRvcCBsYXllciBmaXJzdCwgb3IgdGhlXG4gIC8vIGVsZW1lbnQgcG9zaXRpb25pbmcgYWdhaW5zdCBpdCBmaW5kcyBubyBhbmNob3IgYXQgYWxsIGFuZCBsYW5kcyBpbiB0aGUgdmlld3BvcnQncyBjb3JuZXIuXG4gIC8vXG4gIC8vIE9uY2UsIG9uIG1vdW50OiBhbiBlbGVtZW50IGlzIGFuY2hvcmVkIHRvIGEgcG9pbnQgZm9yIGFzIGxvbmcgYXMgaXQgaXMgbW91bnRlZCwgc2luY2UgdGhlIHBvaW50XG4gIC8vIGlzIHdoZXJlIHRoZSBjdXJzb3Igd2FzIHdoZW4gd2hhdGV2ZXIgb3BlbmVkIGl0IHdhcyBvcGVuZWQuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IHBvaW50UmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIWVsZW1lbnQgfHwgIWlzUG9wb3ZlckNhcGFibGUoZWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlbGVtZW50LnNob3dQb3BvdmVyKCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgZWxlbWVudC5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIXBvc2l0aW9uIHx8ICFlbGVtZW50IHx8ICFpc1BvcG92ZXJDYXBhYmxlKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWxlbWVudC5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIGVsZW1lbnQuaGlkZVBvcG92ZXIoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbcG9zaXRpb25dKTtcblxuICBjb25zdCBjb250ZW50ID0gcG9pbnQgPyAoXG4gICAgPD5cbiAgICAgIHsvKiBBIHplcm8tc2l6ZSBhbmNob3IgYXQgdGhlIHBvaW50LCBzbyBhIGN1cnNvci1hbmNob3JlZCBlbGVtZW50IHBvc2l0aW9ucyBsaWtlIGFueSBvdGhlci4gKi99XG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17cG9pbnRSZWYgYXMgUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50Pn1cbiAgICAgICAgcG9wb3Zlcj1cIm1hbnVhbFwiXG4gICAgICAgIGRhdGEtYW5jaG9yLXBvaW50LXRlc3RcbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuYW5jaG9yUG9pbnR9XG4gICAgICAgIHN0eWxlPXtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBbYW5jaG9yTmFtZVByb3BlcnR5XTogb3duQW5jaG9yTmFtZSxcbiAgICAgICAgICAgIFtwb2ludFhQcm9wZXJ0eV06IGAke3BvaW50Lnh9cHhgLFxuICAgICAgICAgICAgW3BvaW50WVByb3BlcnR5XTogYCR7cG9pbnQueX1weGAsXG4gICAgICAgICAgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzXG4gICAgICAgIH1cbiAgICAgIC8+XG5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKSA6IChcbiAgICBjaGlsZHJlblxuICApO1xuXG4gIGlmIChpc0FuY2hvcikge1xuICAgIHJldHVybiA8YW5jaG9yTmFtZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e293bkFuY2hvck5hbWV9Pntjb250ZW50fTwvYW5jaG9yTmFtZUNvbnRleHQuUHJvdmlkZXI+O1xuICB9XG5cbiAgcmV0dXJuIDw+e2NvbnRlbnR9PC8+O1xufTtcblxuZXhwb3J0IGNvbnN0IGFuY2hvclBsdWdpbiA9IGdldFBsdWdpbjxcbiAgQW5jaG9yUGx1Z2luUHJvcHMsXG4gIFtcbiAgICB0eXBlb2YgY2xhc3NOYW1lUGx1Z2luLFxuICAgIHR5cGVvZiBjb2xvclBsdWdpbixcbiAgICB0eXBlb2YgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICAgIHR5cGVvZiBib3JkZXJQbHVnaW4sXG4gICAgdHlwZW9mIHBhZGRpbmdQbHVnaW4sXG4gICAgdHlwZW9mIG1hcmdpblBsdWdpbixcbiAgICB0eXBlb2Ygb3ZlcmZsb3dQbHVnaW4sXG4gIF1cbj4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGFuY2hvciwgJGFuY2hvcmVkQXQsICRjbGFzc05hbWUgfSA9IHByb3BzO1xuXG4gIGlmICghJGFuY2hvciAmJiAkYW5jaG9yZWRBdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHsgJGFuY2hvcjogdW5kZWZpbmVkLCAkYW5jaG9yZWRBdDogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRhbmNob3I6IHVuZGVmaW5lZCxcbiAgICAkYW5jaG9yZWRBdDogdW5kZWZpbmVkLFxuXG4gICAgLy8gUmlzaW5nIHRvIHRoZSB0b3AgbGF5ZXIgaXMgYSB0ZWNobmljYWxpdHkgb2YgcG9zaXRpb25pbmcsIGJ1dCB0aGUgYnJvd3NlciBtYWtlcyBpdCBhIGxvb2s6XG4gICAgLy8gY29sb3VycyBvZiBpdHMgb3duLCBhIGJvcmRlciwgcGFkZGluZywgYW5kIGEgbWFyZ2luIHRoYXQgd291bGQgY2VudGVyIHRoZSBlbGVtZW50LiBVbmRvIHRoYXQsXG4gICAgLy8gc28gYW4gZWxlbWVudCBwb3NpdGlvbmVkIHRoaXMgd2F5IGxvb2tzIGxpa2UgaXQgZG9lcyBhbnl3aGVyZSBlbHNlLCBhbmQgbGV0IHdoYXRldmVyIGl0IHNheXNcbiAgICAvLyBhYm91dCBpdHNlbGYgd2luLlxuICAgIC4uLigkYW5jaG9yZWRBdCAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICRjb2xvcjogcHJvcHMuJGNvbG9yID8/IFwiaW5oZXJpdFwiLFxuICAgICAgJGJhY2tncm91bmRDb2xvcjogcHJvcHMuJGJhY2tncm91bmRDb2xvciA/PyBcInRyYW5zcGFyZW50XCIsXG4gICAgICAkYm9yZGVyOiB7IHdpZHRoOiBcInplcm9cIiwgLi4ucHJvcHMuJGJvcmRlciB9LFxuICAgICAgJHBhZGRpbmc6IHByb3BzLiRwYWRkaW5nID8/IFwiemVyb1wiLFxuICAgICAgJG1hcmdpbjogcHJvcHMuJG1hcmdpbiA/PyBcInplcm9cIixcbiAgICAgICRvdmVyZmxvdzogcHJvcHMuJG92ZXJmbG93ID8/IFwidmlzaWJsZVwiLFxuICAgIH0pLFxuXG4gICAgJGNsYXNzTmFtZTogY3NzTmFtZXMoJGNsYXNzTmFtZSwge1xuICAgICAgW3N0eWxlcy5hbmNob3JdOiAhISRhbmNob3IsXG4gICAgICBbc3R5bGVzLmFuY2hvcmVkQXRdOiAkYW5jaG9yZWRBdCAhPT0gdW5kZWZpbmVkLFxuICAgIH0pLFxuXG4gICAgJHdyYXBwZXI6IHtcbiAgICAgIENvbXBvbmVudDogQW5jaG9yV3JhcHBlckNvbXBvbmVudCxcbiAgICAgIHByb3BzOiB7IGlzQW5jaG9yOiAhISRhbmNob3IsIGFuY2hvcmVkQXQ6ICRhbmNob3JlZEF0IH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuXG5jb25zdCBtYXJnaW5Qcm9wZXJ0eVRvd2FyZHNBbmNob3IgPSAocG9zaXRpb246IEFuY2hvclBvc2l0aW9uKSA9PiB7XG4gIGlmIChwb3NpdGlvbi5zdGFydHNXaXRoKFwiYm90dG9tXCIpKSB7XG4gICAgcmV0dXJuIFwibWFyZ2luLXRvcFwiO1xuICB9XG5cbiAgaWYgKHBvc2l0aW9uLnN0YXJ0c1dpdGgoXCJ0b3BcIikpIHtcbiAgICByZXR1cm4gXCJtYXJnaW4tYm90dG9tXCI7XG4gIH1cblxuICByZXR1cm4gcG9zaXRpb24uc3RhcnRzV2l0aChcInJpZ2h0XCIpID8gXCJtYXJnaW4tbGVmdFwiIDogXCJtYXJnaW4tcmlnaHRcIjtcbn07XG5cbmNvbnN0IGFuY2hvck5hbWVQcm9wZXJ0eSA9IFwiLS1hbmNob3ItbmFtZVwiO1xuY29uc3QgZ2FwUHJvcGVydHkgPSBcIi0tYW5jaG9yLWdhcFwiO1xuY29uc3QgcG9zaXRpb25BbmNob3JQcm9wZXJ0eSA9IFwiLS1hbmNob3ItdGFyZ2V0XCI7XG5jb25zdCBwb3NpdGlvblByb3BlcnR5ID0gXCItLWFuY2hvci1wb3NpdGlvblwiO1xuY29uc3QgcG9pbnRYUHJvcGVydHkgPSBcIi0tYW5jaG9yLXBvaW50LXhcIjtcbmNvbnN0IHBvaW50WVByb3BlcnR5ID0gXCItLWFuY2hvci1wb2ludC15XCI7XG5cbi8qKiBBbmNob3IgbmFtZXMgYXJlIGRhc2hlZCBpZGVudHMsIHNvIHRoZSBnZW5lcmF0ZWQgaWQgaGFzIHRvIGxvc2UgZXZlcnl0aGluZyBlbHNlLiAqL1xuY29uc3QgdG9BbmNob3JOYW1lID0gKGlkOiBzdHJpbmcpID0+IGAtLWFuY2hvci0ke2lkLnJlcGxhY2UoL1teYS16QS1aMC05XS9nLCBcIlwiKX1gO1xuXG50eXBlIFBvcG92ZXJDYXBhYmxlID0gSFRNTEVsZW1lbnQgJiB7IHNob3dQb3BvdmVyOiBWb2lkRnVuY3Rpb247IGhpZGVQb3BvdmVyOiBWb2lkRnVuY3Rpb24gfTtcblxuY29uc3QgaXNQb3BvdmVyQ2FwYWJsZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGVsZW1lbnQgaXMgUG9wb3ZlckNhcGFibGUgPT5cbiAgdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8UG9wb3ZlckNhcGFibGU+KS5zaG93UG9wb3ZlciA9PT0gXCJmdW5jdGlvblwiO1xuIiwgImltcG9ydCB0eXBlIHsgRm9jdXNhYmxlUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9mb2N1c2FibGVcIjtcblxuZXhwb3J0IHR5cGUgJEZvY3VzYWJsZVByb3BzPEZvY3VzZWRJdGVtPiA9IFJlcXVpcmVkPEZvY3VzYWJsZVBsdWdpblByb3BzPEZvY3VzZWRJdGVtPj5bXCIkZm9jdXNhYmxlXCJdO1xuXG4vKipcbiAqIElkZW50aWZpZXMgYSBzZXQgb2YgZm9jdXNhYmxlcyBjb21wZXRpbmcgZm9yIG9uZSBmb2N1c2VkIGl0ZW0uIEVsZW1lbnRzIGpvaW4gaXQgYnkgZGVjbGFyaW5nXG4gKiBgJGZvY3VzYWJsZWA7IG5vdGhpbmcgZW51bWVyYXRlcyB0aGVtIGF0IHRoZSBjYWxsIHNpdGUuXG4gKi9cbmV4cG9ydCB0eXBlIEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+ID0ge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBpc0tleWJvYXJkTmF2aWdhYmxlOiBmYWxzZTtcbiAgZm9jdXNhYmxlOiAoaXRlbTogRm9jdXNlZEl0ZW0pID0+ICRGb2N1c2FibGVQcm9wczxGb2N1c2VkSXRlbT47XG59O1xuXG4vKiogV2hpY2ggYXJyb3cga2V5cyBtb3ZlIGZvY3VzIHdpdGhpbiBhIGtleWJvYXJkLW5hdmlnYWJsZSBjb250ZXh0LiAqL1xuZXhwb3J0IHR5cGUgS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb24gPSBcInZlcnRpY2FsXCIgfCBcImhvcml6b250YWxcIiB8IFwiYm90aFwiO1xuXG4vKipcbiAqIEEgZm9jdXNhYmxlIGNvbnRleHQgd2hvc2UgbWVtYmVycyBhcmUgYWxzbyBuYXZpZ2F0ZWQgd2l0aCBhcnJvdyBrZXlzLCBpbiB0aGUgb3JkZXIgdGhleSBzdGF0ZS5cbiAqIFRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIGlzIGZvY3VzZWQgd2hlbiB0aGUgbWVtYmVycyBhcHBlYXIsIHVubGVzcyB0aGUgY29udGV4dCBzYXlzIG90aGVyd2lzZSxcbiAqIGFuZCBmb2N1cyByZXR1cm5zIHRvIHRoZSBlbmNsb3NpbmcgY29udGV4dCB3aGVuIHRoZXkgZ28gYXdheS5cbiAqL1xuZXhwb3J0IHR5cGUgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9IHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgaXNLZXlib2FyZE5hdmlnYWJsZTogdHJ1ZTtcbiAgcmVhZG9ubHkgb3JpZW50YXRpb246IEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uO1xuICByZWFkb25seSB0YWtlc0ZvY3VzQXNJdEFwcGVhcnM6IGJvb2xlYW47XG4gIGZvY3VzYWJsZTogKGl0ZW06IEZvY3VzZWRJdGVtLCBvcmRlck51bWJlcjogbnVtYmVyKSA9PiAkRm9jdXNhYmxlUHJvcHM8Rm9jdXNlZEl0ZW0+O1xufTtcblxuZXhwb3J0IHR5cGUgQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbSA9IGFueT4gPVxuICB8IEZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+XG4gIHwgS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPjtcblxuY29uc3QgY29udGV4dHNCeUtleSA9IG5ldyBNYXA8c3RyaW5nLCBBbnlGb2N1c2FibGVDb250ZXh0PigpO1xuXG4vKipcbiAqIERlY2xhcmVzIGEgZm9jdXNhYmxlIGNvbnRleHQuIFRoZSBzYW1lIGlkIGFsd2F5cyB5aWVsZHMgdGhlIHNhbWUgY29udGV4dCwgc28gY2FsbGluZyB0aGlzIGR1cmluZ1xuICogcmVuZGVyIGlzIHN0YWJsZSBcdTIwMTQgd2hpY2ggaXMgd2hhdCBsZXRzIGEgc3VyZmFjZSB3aXRoIHNldmVyYWwgbGl2ZSBpbnN0YW5jZXMgbmFtZSBvbmUgY29udGV4dCBwZXJcbiAqIGluc3RhbmNlLlxuICovXG5leHBvcnQgY29uc3QgZ2V0Rm9jdXNhYmxlQ29udGV4dCA9IDxGb2N1c2VkSXRlbSw+KGlkOiBzdHJpbmcpOiBGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9PlxuICBnZXRPckNyZWF0ZUNvbnRleHQoYGZvY3VzYWJsZToke2lkfWAsICgpID0+IHtcbiAgICBjb25zdCBjb250ZXh0OiBGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9IHtcbiAgICAgIGlkLFxuICAgICAgaXNLZXlib2FyZE5hdmlnYWJsZTogZmFsc2UsXG4gICAgICBmb2N1c2FibGU6IChpdGVtKSA9PiAoeyBjb250ZXh0LCBpdGVtIH0pLFxuICAgIH07XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfSk7XG5cbmV4cG9ydCB0eXBlIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBXaGljaCBhcnJvdyBrZXlzIG1vdmUgZm9jdXMuIERvd253YXJkcyBieSBkZWZhdWx0LCBhcyBtb3N0IHNldHMgb2YgdGhpbmdzIGFyZSBsYWlkIG91dDogdGhlXG4gICAqIGtleXMgb2YgdGhlIG90aGVyIGF4aXMgYXJlIHRoZW4gbGVmdCB0byB3aGF0ZXZlciB0aGUgbWVtYmVycyB3YW50IHRoZW0gZm9yLCBzdWNoIGFzIGEgbWVtYmVyXG4gICAqIG9wZW5pbmcgc29tZXRoaW5nIG9mIGl0cyBvd24gd2l0aCBBcnJvd1JpZ2h0LlxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZW50YXRpb24/OiBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbG93ZXN0IG9yZGVyIG51bWJlciBpcyBmb2N1c2VkIGFzIHRoZSBtZW1iZXJzIGFwcGVhci4gSXQgaXMgYnkgZGVmYXVsdDogYSBzZXQgb2ZcbiAgICogbWVtYmVycyBhcHBlYXJpbmcgaXMgdXN1YWxseSBzb21ldGhpbmcgdGhlIHVzZXIgYXNrZWQgZm9yIGFuZCB3aWxsIGdvIG9uIHdpdGguIE5vdCBzbyBmb3IgYSBzZXRcbiAgICogdGhhdCBhcHBlYXJzIGJlY2F1c2UgdGhlIHBvaW50ZXIgcmVzdHMgb24gc29tZXRoaW5nLCB3aGVyZSB3aGF0IHRoZSB1c2VyIGlzIGxvb2tpbmcgYXQgaXMgd2hhdFxuICAgKiB0aGUgcG9pbnRlciBpcyBvbiwgYW5kIGZvY3VzIHN0YXlzIHRoZXJlIHVudGlsIGVpdGhlciB0aGUgcG9pbnRlciBvciB0aGUga2V5Ym9hcmQgbW92ZXMgaXQuXG4gICAqL1xuICByZWFkb25seSB0YWtlc0ZvY3VzQXNJdEFwcGVhcnM/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBEZWNsYXJlcyBhIGZvY3VzYWJsZSBjb250ZXh0IHdob3NlIG1lbWJlcnMgYXJlIG5hdmlnYXRlZCB3aXRoIGFycm93IGtleXMuIEFzIHdpdGhcbiAqIHtAbGluayBnZXRGb2N1c2FibGVDb250ZXh0fSwgdGhlIHNhbWUgaWQgYWx3YXlzIHlpZWxkcyB0aGUgc2FtZSBjb250ZXh0IFx1MjAxNCB0aGUgc2FtZSBpZCB3aXRoIHRoZVxuICogc2FtZSBvcHRpb25zLCB0aGF0IGlzLiBBIGNvbnRleHQgd2l0aCBvdGhlciBvcHRpb25zIGlzIGEgY29udGV4dCBvZiBpdHMgb3duLCB3aGF0ZXZlciBpdCBpc1xuICogbmFtZWQsIHNvIGEgc3VyZmFjZSB0aGF0IGFza3MgZm9yIGl0cyBjb250ZXh0IGJ5IHRoZSBzYW1lIG5hbWUgd2l0aCBvdGhlciBvcHRpb25zIG1vdmVzIGl0c1xuICogbWVtYmVycyB0aGVyZSBhcyB0aGV5IHJlbmRlciBhZ2FpbiwgYW5kIHRoZXkgYXBwZWFyIGFuZXcgYXMgZmFyIGFzIHRoYXQgY29udGV4dCBpcyBjb25jZXJuZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQgPSA8Rm9jdXNlZEl0ZW0sPihcbiAgaWQ6IHN0cmluZyxcbiAgb3B0aW9uczogS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0T3B0aW9ucyA9IHt9LFxuKTogS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9PiB7XG4gIGNvbnN0IG9yaWVudGF0aW9uID0gb3B0aW9ucy5vcmllbnRhdGlvbiA/PyBcInZlcnRpY2FsXCI7XG4gIGNvbnN0IHRha2VzRm9jdXNBc0l0QXBwZWFycyA9IG9wdGlvbnMudGFrZXNGb2N1c0FzSXRBcHBlYXJzID8/IHRydWU7XG5cbiAgY29uc3Qga2V5ID0gYGtleWJvYXJkLW5hdmlnYWJsZToke2lkfXwke29yaWVudGF0aW9ufXwke3Rha2VzRm9jdXNBc0l0QXBwZWFycyA/IFwidGFraW5nXCIgOiBcImxlYXZpbmdcIn0tZm9jdXNgO1xuXG4gIHJldHVybiBnZXRPckNyZWF0ZUNvbnRleHQoa2V5LCAoKSA9PiB7XG4gICAgY29uc3QgY29udGV4dDogS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9IHtcbiAgICAgIGlkLFxuICAgICAgaXNLZXlib2FyZE5hdmlnYWJsZTogdHJ1ZSxcbiAgICAgIG9yaWVudGF0aW9uLFxuICAgICAgdGFrZXNGb2N1c0FzSXRBcHBlYXJzLFxuICAgICAgZm9jdXNhYmxlOiAoaXRlbSwgb3JkZXJOdW1iZXIpID0+ICh7IGNvbnRleHQsIGl0ZW0sIG9yZGVyTnVtYmVyIH0pLFxuICAgIH07XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfSk7XG59O1xuXG5jb25zdCBnZXRPckNyZWF0ZUNvbnRleHQgPSA8VCBleHRlbmRzIEFueUZvY3VzYWJsZUNvbnRleHQ+KGtleTogc3RyaW5nLCBjcmVhdGU6ICgpID0+IFQpOiBUID0+IHtcbiAgY29uc3QgZXhpc3RpbmcgPSBjb250ZXh0c0J5S2V5LmdldChrZXkpO1xuXG4gIGlmIChleGlzdGluZykge1xuICAgIHJldHVybiBleGlzdGluZyBhcyBUO1xuICB9XG5cbiAgY29uc3QgY3JlYXRlZCA9IGNyZWF0ZSgpO1xuXG4gIGNvbnRleHRzQnlLZXkuc2V0KGtleSwgY3JlYXRlZCk7XG5cbiAgcmV0dXJuIGNyZWF0ZWQ7XG59O1xuIiwgImltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgJEZvY3VzYWJsZVByb3BzIH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5cbi8qKlxuICogQ2FycmllcyB0aGUgZm9jdXNhYmxlIGFuIGVsZW1lbnQgaXMsIGFzIGRlY2lkZWQgYnkgdGhlIHN1cmZhY2UgaXQgcmVuZGVycyBpbiByYXRoZXIgdGhhbiBieSB0aGVcbiAqIGVsZW1lbnQgaXRzZWxmOiB3aGljaCBjb250ZXh0IGl0IGNvbXBldGVzIGluLCB3aGljaCBpdGVtIGl0IHN0YW5kcyBmb3IsIGFuZCB3aGVyZSBpdCBzaXRzIGFtb25nXG4gKiB0aGUgb3RoZXJzLlxuICpcbiAqIEEgc3VyZmFjZSB0aGF0IGtub3dzIGl0cyBpdGVtcyBcdTIwMTQgYSBtZW51LCBhIHRvb2xiYXIgXHUyMDE0IHByb3ZpZGVzIG9uZSBvZiB0aGVzZSBwZXIgaXRlbTsgd2hhdGV2ZXJcbiAqIGRyYXdzIHRoZSBpdGVtIGFkb3B0cyBpdCB0aHJvdWdoIHtAbGluayB1c2VGb2N1c2FibGVJdGVtfSB3aGlsZSBrbm93aW5nIG5vdGhpbmcgYWJvdXQgdGhlXG4gKiBzdXJmYWNlLCB3aGljaCBpcyB3aGF0IGxldHMgYSBkdW1iIGNvbXBvbmVudCBiZSBrZXlib2FyZC1uYXZpZ2FibGUgaW4gb25lIHN1cmZhY2UgYW5kIG9yZGluYXJ5XG4gKiBpbiBhbm90aGVyLlxuICovXG5leHBvcnQgY29uc3QgY29udGV4dEZvckZvY3VzYWJsZUl0ZW0gPSBjcmVhdGVDb250ZXh0PCRGb2N1c2FibGVQcm9wczxhbnk+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4vKipcbiAqIFRoZSBgJGZvY3VzYWJsZWAgb2YgdGhlIGl0ZW0gYSBjb21wb25lbnQgZHJhd3MsIHdoZW4gdGhlIHN1cmZhY2UgYXJvdW5kIGl0IGRlY2lkZWQgb25lLlxuICogYHVuZGVmaW5lZGAgb3V0c2lkZSBzdWNoIGEgc3VyZmFjZSwgd2hpY2ggaXMgd2hhdCBtYWtlcyBhZG9wdGluZyBpdCBhIG1hdHRlciBvZiBwYXNzaW5nIGl0IG9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IFJvdyA9ICh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSA9PiAoXG4gKiAgIDxDbGlja2FibGVMaSAkZm9jdXNhYmxlPXt1c2VGb2N1c2FibGVJdGVtKCl9PntjaGlsZHJlbn08L0NsaWNrYWJsZUxpPlxuICogKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgdXNlRm9jdXNhYmxlSXRlbSA9ICgpID0+IHVzZUNvbnRleHQoY29udGV4dEZvckZvY3VzYWJsZUl0ZW0pO1xuIiwgImltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgZ2V0SG92ZXJhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IHR5cGUgTXV0YWJsZVJlZk9iamVjdCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjb250ZXh0SXNCZWluZ0hvdmVyZWRJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3ByaXZhdGUvY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IGNvbnN0IHVzZUxvY2FsSG92ZXJhYmxlID0gPEVsZW0gZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiB7XG4gIGNvbnN0IGhvdmVyYWJsZUNvbnRleHQgPSB1c2VNZW1vKCgpID0+IGdldEhvdmVyYWJsZUNvbnRleHQ8TXV0YWJsZVJlZk9iamVjdDxFbGVtIHwgbnVsbD4+KCksIFtdKTtcbiAgY29uc3QgcmVmID0gdXNlUmVmPEVsZW0+KG51bGwpO1xuICBjb25zdCBpdGVtQmVpbmdIb3ZlcmVkID0gdXNlU3luY0luamVjdChjb250ZXh0SXNCZWluZ0hvdmVyZWRJbmplY3RhYmxlLCBob3ZlcmFibGVDb250ZXh0KTtcblxuICByZXR1cm4ge1xuICAgIHJlZixcbiAgICBjb250ZXh0OiBob3ZlcmFibGVDb250ZXh0LmhvdmVyYWJsZShyZWYpLFxuICAgIGNvbXBvbmVudElzSG92ZXJlZDogaXRlbUJlaW5nSG92ZXJlZCxcbiAgfTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQUEsK0JBQWdEO0FBRWhELG1CQUErQztBQXdEdEM7QUFwQ0YsSUFBTSxvQkFBb0IsQ0FBQyxtQkFBa0Q7QUFDbEYsUUFBTSwrQkFBMkIscUJBQTBCLE1BQVM7QUFDcEUsUUFBTSxpQkFBYSxxQkFBTyxjQUFjO0FBRXhDLDhCQUFVLE1BQU07QUFDZCxlQUFXLFVBQVU7QUFBQSxFQUN2QixDQUFDO0FBRUQsOEJBQVUsTUFBTTtBQUNkLFVBQU0sNEJBQTRCLENBQUMsVUFBd0I7QUFDekQsVUFBSSxVQUFVLHlCQUF5QixTQUFTO0FBQzlDLG1CQUFXLFFBQVEsS0FBSztBQUFBLE1BQzFCO0FBQUEsSUFDRjtBQUVBLGFBQVMsaUJBQWlCLGVBQWUseUJBQXlCO0FBRWxF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RXZCLGdCQUFjLElBQUksS0FBSyxPQUFPO0FBRTlCLFNBQU87QUFDVDs7O0FDOUdBLElBQUFDLGlCQUEwQztBQWFuQyxJQUFNLDhCQUEwQiw4QkFBZ0QsTUFBUztBQWF6RixJQUFNLG1CQUFtQixVQUFNLDJCQUFXLHVCQUF1Qjs7O0FDMUJ4RSxJQUFBQyxzQkFBOEI7QUFFOUIsSUFBQUMsaUJBQXVEO0FBR2hELElBQU0sb0JBQW9CLE1BQWdDO0FBQy9ELFFBQU0sdUJBQW1CLHdCQUFRLE1BQU0sb0JBQW1ELEdBQUcsQ0FBQyxDQUFDO0FBQy9GLFFBQU0sVUFBTSx1QkFBYSxJQUFJO0FBQzdCLFFBQU0sdUJBQW1CLG1DQUFjLGlDQUFpQyxnQkFBZ0I7QUFFeEYsU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBLFNBQVMsaUJBQWlCLFVBQVUsR0FBRztBQUFBLElBQ3ZDLG9CQUFvQjtBQUFBLEVBQ3RCO0FBQ0Y7IiwKICAibmFtZXMiOiBbImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgInRvQ29udGV4dE1hcCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9pbmplY3RhYmxlIiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9yZWFjdF9kb20iLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2ZwIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzIiwgImltcG9ydF9mcCIsICJsb2Rhc2hDYXBpdGFsaXplIiwgImltcG9ydF9mcCIsICJhbGlhc1RvTm9taW5hbCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9mZWF0dXJlX2NvcmUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X2ZwIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgIm1vZHVsZXMiLCAibW9kdWxlcyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJtb2R1bGVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImlzUGVyY2VudGFnZSIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiYWxpYXNUb05vbWluYWwiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9tb2J4X3JlYWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2ZwIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9qc3hfcnVudGltZSIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3Rlc3RfdXRpbHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3Rlc3RfdXRpbHMiLCAic3R5bGVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF90ZXN0X3V0aWxzIiwgInN0eWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAic3R5bGVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcmVhY3RfZG9tIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdF9kb20iLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9qc3hfcnVudGltZSIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAic3RvcFByb3BhZ2F0aW9uIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImlzUG9wb3ZlckNhcGFibGUiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9yZWFjdCJdCn0K
|
|
3338
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vaW5kZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2NvbXB1dGVkLW5vdy5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MiLCAiLi4vc3JjL2VsZW1lbnRzL21pbmltYWwtZGl2LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZS5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3BhZGRpbmcvcGFkZGluZy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtY29ybmVyLXN0eWxlcy50cyIsICIuLi9zcmMvcGx1Z2lucy9ib3JkZXIvZ2V0LXNpZGUtc3R5bGVzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvdy50cyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93Lm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLnRzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2NzcyIsICIuLi9zcmMvcGx1Z2lucy9yZWYvcmVmLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWUudHMiLCAiLi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUudHMiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3JlbGF0aXZlL3JlbGF0aXZlLm1vZHVsZS5zY3NzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2dldC1kcmFnZ2FibGUtY29udGV4dC50cyIsICIuLi9zcmMvZmVhdHVyZS50cyIsICIuLi9zcmMvcGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzIiwgIi4uL3NyYy90ZXN0LXV0aWwtcnVubmFibGUuaW5qZWN0YWJsZS50cyIsICJpbXBvcnQtZ2xvYjouLyoqLyouZ2xvYmFsLW92ZXJyaWRlLWZvci1pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvNjA0NWE5NWItOGNkMC00Yjc0LTk0YmMtZjExOWY1MzcyMjlkIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuL21ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuLmRlZmF1bHQtb3ZlcnJpZGUudHMiLCAiLi4vc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cyIsICIuLi9zcmMvcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzIiwgImltcG9ydC1nbG9iOi4vKiovKi5kZWZhdWx0LW92ZXJyaWRlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvMjc3ZGVlOWYtMWI4Zi00OTY2LWI0MzctODcxYWNmYTRjZGRiIiwgImltcG9ydC1nbG9iOi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpL3Byb29mLW9mLXVuaXF1ZW5lc3MvYzRkZjdhMDgtNTcyYi00ODVjLTg4N2EtZDYwOGI1MDRmNTIxIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvY29sb3IvY29sb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2N1cnNvci9jdXJzb3IubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50cy5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2NzcyIsICJsZW5zLXN0eWxlc2hlZXQ6L2hvbWUvcnVubmVyL3dvcmsvbGVucy1kZXNrdG9wLW1vbm9yZXBvL2xlbnMtZGVza3RvcC1tb25vcmVwby9wYWNrYWdlcy90ZWNobmljYWwtZmVhdHVyZXMvX2xvdy1sZXZlbC9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzIiwgImxlbnMtc3R5bGVzaGVldDovaG9tZS9ydW5uZXIvd29yay9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vbGVucy1kZXNrdG9wLW1vbm9yZXBvL3BhY2thZ2VzL3RlY2huaWNhbC1mZWF0dXJlcy9fbG93LWxldmVsL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3MiLCAibGVucy1zdHlsZXNoZWV0Oi9ob21lL3J1bm5lci93b3JrL2xlbnMtZGVza3RvcC1tb25vcmVwby9sZW5zLWRlc2t0b3AtbW9ub3JlcG8vcGFja2FnZXMvdGVjaG5pY2FsLWZlYXR1cmVzL19sb3ctbGV2ZWwvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLm1vZHVsZS5zY3NzIiwgImltcG9ydC1nbG9iOi4vKiovIShfKikuKHNjc3N8Y3NzKS9wcm9vZi1vZi11bmlxdWVuZXNzL2U5MDE0MjI1LTJhMjUtNGQwMi1hYzNjLTY4YWUyZGFmOGM0YSIsICIuLi9zcmMvcGx1Z2lucy9fc2hhcmVkL3NpemVzLnRzIiwgIi4uL3NyYy9lbGVtZW50cy50cyIsICIuLi9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JpZC9ncmlkLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvY29sb3IvY29sb3IudHMiLCAiLi4vc3JjL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQudHMiLCAiLi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2Ryb3BwYWJsZS50cyIsICIuLi9zcmMvcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24udHMiLCAiLi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldC50cyIsICIuLi9zcmMvcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2hpZGRlbi9oaWRkZW4udHMiLCAiLi4vc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi50cyIsICIuLi9zcmMvcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLnRzIiwgIi4uL3NyYy9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93LnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZsZXgtY2hpbGQvZmxleC1jaGlsZC50cyIsICIuLi9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLnRzIiwgIi4uL3NyYy9wbHVnaW5zL3RpbnQvdGludC50cyIsICIuLi9zcmMvcGx1Z2lucy9mYWRlZC9mYWRlZC50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZm9jdXNhYmxlLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXVwZGF0ZS13aGVuLXByb3BzLWNoYW5nZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL19wcml2YXRlL3VzZS1jbGVhbnVwLW9uLXVubW91bnQudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS91c2Uta2V5Ym9hcmQtbmF2aWdhdGlvbi50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvaGFuZGxlLWZvY3VzLnRzIiwgIi4uL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9fcHJpdmF0ZS9oYW5kbGUtYmx1ci50cyIsICIuLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvX3ByaXZhdGUvdXNlLXByb2dyYW1tYXRpYy1mb2N1c2luZy50cyIsICIuLi9zcmMvcGx1Z2lucy9hcmVhL2FyZWEudHMiLCAiLi4vc3JjL3BsdWdpbnMvYXJlYS1jb250ZW50L2FyZWEtY29udGVudC50cyIsICIuLi9zcmMvcGx1Z2lucy9zaXplL3NpemUudHMiLCAiLi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvY2xpY2thYmxlL2NsaWNrYWJsZS50c3giLCAiLi4vc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLnRzeCIsICIuLi9zcmMvcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24udHMiLCAiLi4vc3JjL3BsdWdpbnMvYmxvY2svYmxvY2sudHN4IiwgIi4uL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZS50cyIsICIuLi9zcmMvcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS50cyIsICIuLi9zcmMvcGx1Z2lucy9wb3BvdmVyL3BvcG92ZXIudHN4IiwgIi4uL3NyYy9wbHVnaW5zL2Zsb2F0aW5nL2Zsb2F0aW5nLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLnRzeCIsICIuLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS50c3giLCAiLi4vc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2dldC1mb2N1c2FibGUtY29udGV4dC50c3giLCAiLi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2ZvY3VzYWJsZS1pdGVtLWNvbnRleHQudHMiLCAiLi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB0eXBlIHsgQmxvY2tQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Jsb2NrL2Jsb2NrXCI7XG5leHBvcnQgdHlwZSB7IEFuY2hvcmVkQXQsIEFuY2hvclBsdWdpblByb3BzLCBBbmNob3JQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2FuY2hvci9hbmNob3JcIjtcbmV4cG9ydCB7IHVzZU9uT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5leHBvcnQgdHlwZSB7IE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vbi1vdXRzaWRlLWNsaWNrL29uLW91dHNpZGUtY2xpY2tcIjtcbmV4cG9ydCB0eXBlIHsgRHJvcERvd25NZW51UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudVwiO1xuZXhwb3J0IHR5cGUgeyBUZXh0QWxpZ25QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnblwiO1xuXG5leHBvcnQgeyB0eXBlIERvRm9jdXMsIHR5cGUgRG9Gb2N1c0ZvciwgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHsgaXRlbUJlaW5nRm9jdXNlZEluamVjdGlvblRva2VuIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlXCI7XG5leHBvcnQgdHlwZSB7IEl0ZW1CZWluZ0ZvY3VzZWQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvaXRlbS1iZWluZy1mb2N1c2VkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBGb2N1c2FibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGVcIjtcbmV4cG9ydCB7IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzLCBpc0Rpc2FibGVkIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkXCI7XG5leHBvcnQgdHlwZSB7IEdyYXlzY2FsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZVwiO1xuZXhwb3J0IHR5cGUgeyBUaW50UGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90aW50L3RpbnRcIjtcbmV4cG9ydCB0eXBlIHsgRmFkZWRQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZhZGVkL2ZhZGVkXCI7XG5cbmV4cG9ydCB0eXBlIHsgU2lkZVN0eWxlcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2JvcmRlci9nZXQtc2lkZS1zdHlsZXNcIjtcbmV4cG9ydCB0eXBlIHsgQ29ybmVyU3R5bGVzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2dldC1jb3JuZXItc3R5bGVzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsXG4gIEJhY2tncm91bmRDb2xvcixcbiAgQmFja2dyb3VuZENvbG9yQWxpYXMsXG4gICRCYWNrZ3JvdW5kQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYmFja2dyb3VuZC1jb2xvci9iYWNrZ3JvdW5kLWNvbG9yXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgT3V0bGluZVdpZHRoLFxuICAkT3V0bGluZVByb3BzLFxuICBPdXRsaW5lUGx1Z2luUHJvcHMsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEZsb2F0aW5nQ29udGVudEFyZ3MsXG4gIEZsb2F0aW5nQ29udGVudEZhY3RvcnksXG4gICRGbG9hdGluZ1Byb3BzLFxuICBGbG9hdGluZ1BsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mbG9hdGluZy9mbG9hdGluZ1wiO1xuXG5leHBvcnQgdHlwZSB7IFBhZGRpbmdQbHVnaW5Qcm9wcywgRGlyZWN0aW9uYWxQYWRkaW5nIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5leHBvcnQgdHlwZSB7IE1hcmdpblBsdWdpblByb3BzLCBEaXJlY3Rpb25hbE1hcmdpbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL21hcmdpbi9tYXJnaW5cIjtcbmV4cG9ydCB0eXBlIHsgT3ZlcmZsb3dQbHVnaW5Qcm9wcywgT3ZlcmZsb3cgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG5leHBvcnQgdHlwZSB7IEJveFNoYWRvd1BsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm94LXNoYWRvdy9ib3gtc2hhZG93XCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzLFxuICAkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlLWJ5LWRyYWdnaW5nXCI7XG5leHBvcnQgeyBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZS1ieS1kcmFnZ2luZ1wiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEhvdmVyYWJsZUNvbnRleHQsXG4gICRIb3ZlcmFibGVQcm9wcyxcbiAgSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEhvdmVyYWJsZVBsdWdpblByb3BzLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBob3ZlcmFibGVQbHVnaW4sIGdldEhvdmVyYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5leHBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcblxuZXhwb3J0IHR5cGUgeyBSZWZQbHVnaW5Qcm9wcywgJFJlZlByb3AsIFJlZkxpa2UgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9yZWYvcmVmXCI7XG5cbmV4cG9ydCB0eXBlIHsgQWJzb2x1dGVQbHVnaW5Qcm9wcywgQWJzb2x1dGVQb3NpdGlvbiB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5leHBvcnQgdHlwZSB7IEhpZGRlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaGlkZGVuL2hpZGRlblwiO1xuZXhwb3J0IHR5cGUgeyBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzXCI7XG5leHBvcnQgdHlwZSB7IE9mZnNldFBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldFwiO1xuZXhwb3J0IHR5cGUgeyBPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvb2Zmc2V0LWNoaWxkcmVuL29mZnNldC1jaGlsZHJlblwiO1xuZXhwb3J0IHR5cGUgeyBSZWxhdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVHJhbnNpdGlvblBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uXCI7XG5leHBvcnQgdHlwZSB7ICRJbnRlcmFjdGl2ZVByb3BzLCBJbnRlcmFjdGl2ZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmVcIjtcbmV4cG9ydCB0eXBlIHsgVmlzdWFsbHlIaWRkZW5QbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW5cIjtcblxuZXhwb3J0IHR5cGUgeyAkQ3Vyc29yUHJvcHMsIEN1cnNvclBsdWdpblByb3BzIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvY3Vyc29yL2N1cnNvclwiO1xuZXhwb3J0IHR5cGUgeyBEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2Rpc3BsYXktY29udGVudHMvZGlzcGxheS1jb250ZW50c1wiO1xuXG5leHBvcnQgeyBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSB7IFRvb2x0aXBQbHVnaW5Qcm9wcywgJFRvb2x0aXBQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3Rvb2x0aXAvdG9vbHRpcFwiO1xuZXhwb3J0IHsgU3R5bGVkVG9vbHRpcENvbnRhaW5lciwgZ2V0VG9vbHRpcFByb3BzLCBzdXBwcmVzc1Rvb2x0aXAgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy90b29sdGlwL3Rvb2x0aXBcIjtcblxuZXhwb3J0IHR5cGUgeyBEcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBnZXREcmFnZ2FibGVDb250ZXh0IH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB7IGVsZW1lbnRDb21wb25lbnRGZWF0dXJlIH0gZnJvbSBcIi4vc3JjL2ZlYXR1cmVcIjtcblxuZXhwb3J0IHR5cGUgeyBTaXplUGx1Z2luUHJvcHMsICRTaXplUHJvcHMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9zaXplL3NpemVcIjtcblxuZXhwb3J0IHR5cGUgeyBXaWR0aFBsdWdpblByb3BzLCAkV2lkdGhQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3dpZHRoL3dpZHRoXCI7XG5cbmV4cG9ydCB0eXBlIHsgU3R5bGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3N0eWxlL3N0eWxlXCI7XG5cbmV4cG9ydCB0eXBlIHsgSGVpZ2h0UGx1Z2luUHJvcHMsICRIZWlnaHRQcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHRcIjtcblxuZXhwb3J0IHR5cGUgeyBGb250UGx1Z2luUHJvcHMsIEZvbnRTaXplLCBGb250TGluZUhlaWdodCB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvbnQvZm9udFwiO1xuXG5leHBvcnQgdHlwZSB7IEdyaWRQbHVnaW5Qcm9wcywgR3JpZFByb3BzLCBHcmlkQ29sdW1ucyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2dyaWQvZ3JpZFwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIERyYWdnYWJsZVBsdWdpblByb3BzLFxuICBEcm9wcGFibGVQbHVnaW5Qcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIHsgQ29sb3JQbHVnaW5Qcm9wcywgJENvbG9yUHJvcHMsIFRleHRDb2xvciwgVGV4dENvbG9yQWxpYXMgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jb2xvci9jb2xvclwiO1xuZXhwb3J0IHR5cGUgeyBDbGFzc05hbWVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSB7XG4gIEJvcmRlclBsdWdpblByb3BzLFxuICBCb3JkZXJDb2xvckFsaWFzLFxuICBCb3JkZXJDb2xvcixcbiAgJEJvcmRlclByb3BzLFxuICAkQm9yZGVyQ29sb3JQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL2JvcmRlclwiO1xuXG5leHBvcnQgdHlwZSB7IEJvcmRlclJhZGl1c1NpemUsIEJvcmRlcldpZHRoLCBCb3JkZXJTaWRlIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvYm9yZGVyL3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcbmV4cG9ydCB7IHRTaGlydFNpemVJblBpeGVscywgc2l6ZVVuaXRJblBpeGVscyB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgeyBEaXJlY3Rpb24sIFNob3J0RGlyZWN0aW9uIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5leHBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUge1xuICBDbGlja0hhbmRsZXIsXG4gIENsaWNrSGFuZGxlckRldGFpbHMsXG4gIENsaWNrUGx1Z2luUHJvcHMsXG4gIFBvc2l0aW9uMmQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcblxuZXhwb3J0IHR5cGUge1xuICBGbGV4UGx1Z2luUHJvcHMsXG4gIEhvcml6b250YWxGbGV4UHJvcHMsXG4gIE1heGltYWxGbGV4UHJvcHMsXG4gIFNpbXBsZUZsZXhQcm9wLFxuICBWZXJ0aWNhbEZsZXhQcm9wcyxcbn0gZnJvbSBcIi4vc3JjL3BsdWdpbnMvZmxleC9mbGV4XCI7XG5cbmltcG9ydCB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyxcbiAgc2hvd0Nzc01vZHVsZUNsdXR0ZXJGb3JQcm9kdWN0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHsgcmVtb3ZlQ3NzTW9kdWxlQ2x1dHRlckZvclVuaXRUZXN0aW5nLCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gfTtcblxuZXhwb3J0IHtcbiAgQ2xpY2thYmxlRGl2LFxuICBOYXYsXG4gIFN2ZyxcbiAgRGl2LFxuICBCdXR0b24sXG4gIEksXG4gIElucHV0LFxuICBGb3JtLFxuICBTcGFuLFxuICBUZXh0QXJlYSxcbiAgQSxcbiAgQ29kZSxcbiAgUHJlLFxuICBIMSxcbiAgSDIsXG4gIEgzLFxuICBINCxcbiAgSDUsXG4gIEg2LFxuICBQLFxuICBDbGlja2FibGVMaSxcbiAgTGksXG4gIE9sLFxuICBVbCxcbiAgVGgsXG4gIFRkLFxuICBUcixcbiAgVGFibGUsXG4gIExhYmVsLFxuICBUQm9keSxcbiAgRGlhbG9nLFxuICBDYW52YXMsXG4gIEltZyxcbn0gZnJvbSBcIi4vc3JjL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgQ29tbW9uUHJvcHMsXG4gIENsaWNrYWJsZURpdlByb3BzLFxuICBDbGlja2FibGVMaVByb3BzLFxuICBOYXZQcm9wcyxcbiAgU3ZnUHJvcHMsXG4gIERpdlByb3BzLFxuICBCdXR0b25Qcm9wcyxcbiAgSVByb3BzLFxuICBJbnB1dFByb3BzLFxuICBGb3JtUHJvcHMsXG4gIFNwYW5Qcm9wcyxcbiAgVGV4dEFyZWFQcm9wcyxcbiAgQVByb3BzLFxuICBDb2RlUHJvcHMsXG4gIFByZVByb3BzLFxuICBIMVByb3BzLFxuICBIMlByb3BzLFxuICBIM1Byb3BzLFxuICBINFByb3BzLFxuICBINVByb3BzLFxuICBINlByb3BzLFxuICBQUHJvcHMsXG4gIExpUHJvcHMsXG4gIE9sUHJvcHMsXG4gIFVsUHJvcHMsXG4gIFRoUHJvcHMsXG4gIFRkUHJvcHMsXG4gIFRyUHJvcHMsXG4gIFRhYmxlUHJvcHMsXG4gIExhYmVsUHJvcHMsXG4gIFRCb2R5UHJvcHMsXG4gIERpYWxvZ1Byb3BzLFxuICBDYW52YXNQcm9wcyxcbiAgSW1nUHJvcHMsXG59IGZyb20gXCIuL3NyYy9lbGVtZW50c1wiO1xuXG5leHBvcnQge1xuICBnZXRGb2N1c2FibGVDb250ZXh0LFxuICBnZXRLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG59IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmV4cG9ydCB0eXBlIHtcbiAgJEZvY3VzYWJsZVByb3BzLFxuICBBbnlGb2N1c2FibGVDb250ZXh0LFxuICBGb2N1c2FibGVDb250ZXh0LFxuICBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsXG4gIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMsXG4gIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uLFxufSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9mb2N1c2FibGUvZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5leHBvcnQgeyBjb250ZXh0Rm9yRm9jdXNhYmxlSXRlbSwgdXNlRm9jdXNhYmxlSXRlbSB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL2ZvY3VzYWJsZS9mb2N1c2FibGUtaXRlbS1jb250ZXh0XCI7XG5leHBvcnQgeyB1c2VDbG9zZVBvcG92ZXIsIHVzZVBvcG92ZXJJc09wZW4sIGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciB9IGZyb20gXCIuL3NyYy9wbHVnaW5zL3BvcG92ZXIvcG9wb3ZlclwiO1xuZXhwb3J0IHsgdXNlTG9jYWxIb3ZlcmFibGUgfSBmcm9tIFwiLi9zcmMvcGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL2xvY2FsLWhvdmVyYWJsZVwiO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIE9uT3V0c2lkZUNsaWNrUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhIHBvaW50ZXItZG93biBsYW5kcyBvdXRzaWRlIHRoZSBlbGVtZW50J3MgUmVhY3QgdHJlZS4gVGhlIHRyZWUgaW5jbHVkZXMgY29udGVudFxuICAgKiB0aGUgZWxlbWVudCBwb3J0YWxzIGVsc2V3aGVyZSwgc28gcG9ydGFsZWQgY2hpbGRyZW4gY291bnQgYXMgaW5zaWRlLiBDYXZlYXQ6IGFuIG91dHNpZGVcbiAgICogcG9pbnRlci1kb3duIHdob3NlIHByb3BhZ2F0aW9uIHRvIHRoZSBkb2N1bWVudCBpcyBzdG9wcGVkIG5hdGl2ZWx5IGdvZXMgdW5kZXRlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5ICRvbk91dHNpZGVDbGljaz86IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xufTtcblxuLyoqXG4gKiBSZWFjdC10cmVlIG91dHNpZGUtY2xpY2sgZGV0ZWN0aW9uOiBhIGNhcHR1cmUtcGhhc2UgaGFuZGxlciBvbiB0aGUgZWxlbWVudCByZWNvcmRzIHRoZVxuICogcG9pbnRlci1kb3duIGV2ZW50cyBvZiBpdHMgb3duIFJlYWN0IHRyZWUgKHBvcnRhbHMgaW5jbHVkZWQsIHNpbmNlIFJlYWN0IGV2ZW50cyBwcm9wYWdhdGVcbiAqIHRocm91Z2ggdGhlbSksIGFuZCBhIGRvY3VtZW50LWxldmVsIGxpc3RlbmVyIHJlcG9ydHMgZXZlcnkgcG9pbnRlci1kb3duIGl0IGRpZCBub3QgcmVjb3JkLlxuICogUmV0dXJucyB0aGUgcHJvcHMgbWFya2luZyB0aGUgZWxlbWVudCdzIHRyZWU7IGdpdmUgdGhlbSB0byBgY29udHJpYnV0ZVByb3BzYCBvciBzcHJlYWQgdGhlbVxuICogb250byB0aGUgc3VidHJlZSdzIHJvb3QuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VPbk91dHNpZGVDbGljayA9IChvbk91dHNpZGVDbGljazogKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHZvaWQpID0+IHtcbiAgY29uc3QgbGFzdEluc2lkZVBvaW50ZXJEb3duUmVmID0gdXNlUmVmPEV2ZW50IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBoYW5kbGVyUmVmID0gdXNlUmVmKG9uT3V0c2lkZUNsaWNrKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGhhbmRsZXJSZWYuY3VycmVudCA9IG9uT3V0c2lkZUNsaWNrO1xuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50ICE9PSBsYXN0SW5zaWRlUG9pbnRlckRvd25SZWYuY3VycmVudCkge1xuICAgICAgICBoYW5kbGVyUmVmLmN1cnJlbnQoZXZlbnQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgaGFuZGxlRG9jdW1lbnRQb2ludGVyRG93bik7XG5cbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIGhhbmRsZURvY3VtZW50UG9pbnRlckRvd24pO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25Qb2ludGVyRG93bkNhcHR1cmUgPSB1c2VDYWxsYmFjaygoZXZlbnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgIGxhc3RJbnNpZGVQb2ludGVyRG93blJlZi5jdXJyZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG4gIH0sIFtdKTtcblxuICByZXR1cm4geyBvblBvaW50ZXJEb3duQ2FwdHVyZSB9O1xufTtcblxudHlwZSBPbk91dHNpZGVDbGlja1dyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgb25PdXRzaWRlQ2xpY2s6IChldmVudDogUG9pbnRlckV2ZW50KSA9PiB2b2lkO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IE9uT3V0c2lkZUNsaWNrV3JhcHBlckNvbXBvbmVudCA9ICh7IG9uT3V0c2lkZUNsaWNrLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IE9uT3V0c2lkZUNsaWNrV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnRyaWJ1dGVQcm9wcyh1c2VPbk91dHNpZGVDbGljayhvbk91dHNpZGVDbGljaykpO1xuXG4gIHJldHVybiA8PntjaGlsZHJlbn08Lz47XG59O1xuXG5leHBvcnQgY29uc3Qgb25PdXRzaWRlQ2xpY2tQbHVnaW4gPSBnZXRQbHVnaW48T25PdXRzaWRlQ2xpY2tQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJG9uT3V0c2lkZUNsaWNrIH0gPSBwcm9wcztcblxuICBpZiAoJG9uT3V0c2lkZUNsaWNrID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4geyAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkb25PdXRzaWRlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICAkd3JhcHBlcjoge1xuICAgICAgQ29tcG9uZW50OiBPbk91dHNpZGVDbGlja1dyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBvbk91dHNpZGVDbGljazogJG9uT3V0c2lkZUNsaWNrIH0sXG4gICAgfSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBBbnlGb2N1c2FibGVDb250ZXh0IH0gZnJvbSBcIi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVIdG1sRWxlbWVudFJlZlNldEluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1odG1sLWVsZW1lbnQtcmVmLXNldC5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhc3NlcnREZWZpbmVkIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgRG9Gb2N1czxUPiA9IChpdGVtOiBUKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgRG9Gb2N1c0ZvciA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBEb0ZvY3VzPFQ+O1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gRG9Gb2N1c0ZvciB9Pih7XG4gIGlkOiBcImRvLWZvY3VzLWZvci1pbmplY3Rpb24tdG9rZW5cIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgZG9Gb2N1c0ZvckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRvLWZvY3VzLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRSZWZTZXQgPSBkaS5pbmplY3QoZm9jdXNhYmxlSHRtbEVsZW1lbnRSZWZTZXRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICAoZm9jdXNhYmxlSXRlbTogVCkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtmaXJzdFJlbmRlcmVkRm9jdXNhYmxlRWxlbWVudFJlZl0gPSBnZXRSZWZTZXQoZm9jdXNhYmxlQ29udGV4dCwgZm9jdXNhYmxlSXRlbSk7XG5cbiAgICAgICAgICBpZiAoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIGFzc2VydERlZmluZWQoZmlyc3RSZW5kZXJlZEZvY3VzYWJsZUVsZW1lbnRSZWYuY3VycmVudCk7XG5cbiAgICAgICAgICAgIGZpcnN0UmVuZGVyZWRGb2N1c2FibGVFbGVtZW50UmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIGFzIERvRm9jdXNGb3I7XG4gIH0sXG5cbiAgaW5qZWN0aW9uVG9rZW46IGRvRm9jdXNGb3JJbmplY3Rpb25Ub2tlbixcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG50eXBlIEZvY3VzYWJsZUl0ZW0gPSBhbnk7XG5cbi8vIFR3byBpbnN0YW50aWF0aW9uIHBhcmFtZXRlcnMgcmF0aGVyIHRoYW4gb25lIGNvbXBvc2l0ZSBrZXk6IHYyIGtleXMgYVxuLy8gc2luZ2xldG9uIGJ5IGFsbCBvZiB0aGVtLCBzbyB0aGUgY29udGV4dCBhbmQgdGhlIGl0ZW0gY29tcG9zZSBieSBpZGVudGl0eSBvblxuLy8gdGhlaXIgb3duLlxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaHRtbC1lbGVtZW50cy1ieS1mb2N1c2FibGUtbWFwXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxGb2N1c2FibGVJdGVtPiwgX2l0ZW06IEZvY3VzYWJsZUl0ZW0pID0+XG4gICAgbmV3IFNldDxNdXRhYmxlUmVmT2JqZWN0PEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkPj4oKSxcbn0pO1xuIiwgImltcG9ydCB7IGdldEluamVjdGFibGUyLCBnZXRJbmplY3Rpb25Ub2tlbjIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBJQ29tcHV0ZWRWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBmb2N1c2FibGVJdGVtU3RhdGVJbmplY3RhYmxlIH0gZnJvbSBcIi4vX3NoYXJlZC9mb2N1c2FibGUtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgSXRlbUJlaW5nRm9jdXNlZCA9IDxUPihmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+KSA9PiBJQ29tcHV0ZWRWYWx1ZTxUIHwgdW5kZWZpbmVkPjtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0ZvY3VzZWRJbmplY3Rpb25Ub2tlbiA9IGdldEluamVjdGlvblRva2VuMjx7IHNpbmdsZUZhY3Rvcnk6ICgpID0+IEl0ZW1CZWluZ0ZvY3VzZWQgfT4oe1xuICBpZDogXCJpdGVtLWJlaW5nLWZvY3VzZWRcIixcbiAgY2FyZGluYWxpdHk6IFwib25lXCIsXG59KSgpO1xuXG5leHBvcnQgY29uc3QgcHJpdmF0ZUl0ZW1CZWluZ0ZvY3VzZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJwcml2YXRlLWl0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRGb2N1c2FibGVJdGVtU3RhdGUgPSBkaS5pbmplY3QoZm9jdXNhYmxlSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0Rm9jdXNhYmxlSXRlbVN0YXRlKGNvbnRleHQpLmdldCgpKTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctZm9jdXNlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nRm9jdXNlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nRm9jdXNlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdGb2N1c2VkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+KSBhcyBJdGVtQmVpbmdGb2N1c2VkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdGb2N1c2VkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImZvY3VzYWJsZS1pdGVtLXN0YXRlXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+IChfY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxhbnk+KSA9PiBvYnNlcnZhYmxlLmJveDx1bmtub3duPigpLFxufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBlbmFibGVkU3R5bGVzIGZyb20gXCIuL2VuYWJsZWQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRW5hYmxlZFBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogVGhpcyBmaWVsZCBoYXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gJGRpc2FibGVkXG4gICAqL1xuICAkZW5hYmxlZD86IGJvb2xlYW47XG4gICRkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBUaGlzIGZpZWxkIGlzIG92ZXJyaWRkZW4gdmlhICRkaXNhYmxlZCBhbmQgJGVuYWJsZWRcbiAgICovXG4gIGRpc2FibGVkPzogdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuYWJsZWRQbHVnaW4gPSBnZXRQbHVnaW48RW5hYmxlZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCBkaXNhYmxlZCA9IGlzRGlzYWJsZWQocHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGRpc2FibGVkID8gZW5hYmxlZFN0eWxlcy5kaXNhYmxlZCA6IHVuZGVmaW5lZF0sXG4gICAgZGlzYWJsZWQsXG4gICAgJGVuYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICAkZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5leHBvcnQgY29uc3QgaXNEaXNhYmxlZCA9IChwcm9wczogRW5hYmxlZFBsdWdpblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGVuYWJsZWQsICRkaXNhYmxlZCB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIHR5cGVvZiAkZW5hYmxlZCA9PT0gXCJib29sZWFuXCIgPyAhJGVuYWJsZWQgOiAoJGRpc2FibGVkID8/IGZhbHNlKTtcbn07XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9lbmFibGVkL2VuYWJsZWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5lbmFibGVkLW1vZHVsZV9fZGlzYWJsZWRfX19MTDNzdyB7XFxuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTtcXG4gIG9wYWNpdHk6IDUwJTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJkaXNhYmxlZFwiOlwiZW5hYmxlZC1tb2R1bGVfX2Rpc2FibGVkX19fTEwzc3dcIn07IiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IHR5cGUgQ29udGV4dE1hcFZhbHVlLCBob3Zlckl0ZW1TdGF0ZUZvckluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgYWN0aW9uLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGlzRGVmaW5lZCwgbm9vcCwgdHlwZSBTaW5nbGVPck1hbnkgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHR5cGUgeyAkSG92ZXJhYmxlUHJvcHMgfSBmcm9tIFwiLi9ob3ZlcmFibGVcIjtcblxuZXhwb3J0IHR5cGUgJEhvdmVyYWJsZUJ5RHJhZ2dpbmdQcm9wczxUPiA9IFBpY2s8JEhvdmVyYWJsZVByb3BzPFQ+LCBcImNvbnRleHRcIiB8IFwiaXRlbVwiPjtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpblByb3BzPFQgPSBhbnk+ID0ge1xuICAkaG92ZXJhYmxlQnlEcmFnZ2luZz86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlQnlEcmFnZ2luZ1Byb3BzPFQ+Pjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luPFQ+KCkge1xuICByZXR1cm4gZ2V0UGx1Z2luPEhvdmVyYWJsZUJ5RHJhZ2dpbmdQbHVnaW5Qcm9wcywgW1JldHVyblR5cGU8dHlwZW9mIHJlZlBsdWdpbjxUPj5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRob3ZlcmFibGVCeURyYWdnaW5nLCAkcmVmIH0gPSBwcm9wcztcblxuICAgIGlmICgkaG92ZXJhYmxlQnlEcmFnZ2luZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAkaG92ZXJhYmxlQnlEcmFnZ2luZzogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBpZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gICAgY29uc3QgaG92ZXJhYmxlUHJvcHNSZWYgPSB1c2VSZWYob2JzZXJ2YWJsZS5tYXAodG9Db250ZXh0TWFwKCRob3ZlcmFibGVCeURyYWdnaW5nKSwgeyBkZWVwOiBmYWxzZSB9KSk7XG4gICAgY29uc3QgY29udHJvbGxlciA9IHVzZVJlZihuZXcgQWJvcnRDb250cm9sbGVyKCkpO1xuXG4gICAgdXNlRWZmZWN0KFxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcCgkaG92ZXJhYmxlQnlEcmFnZ2luZykpO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IGNhbGxiYWNrUmVmID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGFjdGlvbigoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICAgICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmN1cnJlbnQuYWJvcnQoKTtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIuY3VycmVudCA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdlbnRlclwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgICAgICAgICAgIGdldFByb3BzOiAoKSA9PiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmdldChjb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNpZ25hbDogY29udHJvbGxlci5jdXJyZW50LnNpZ25hbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImRyYWdsZWF2ZVwiLFxuICAgICAgICAgICAgYWN0aW9uKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRUYXJnZXQsIHJlbGF0ZWRUYXJnZXQgfSA9IGV2ZW50O1xuICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICAgICAgICAgIGlmICghKGN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKHJlbGF0ZWRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBob3ZlcmVkU3RhdGUgPSBob3Zlckl0ZW1TdGF0ZUZvcihjb250ZXh0KTtcblxuICAgICAgICAgICAgICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICAgICAgICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLmN1cnJlbnQuc2lnbmFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJHJlZjogWyRyZWYsIGNhbGxiYWNrUmVmXSxcbiAgICAgICRob3ZlcmFibGVCeURyYWdnaW5nOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVCeURyYWdnaW5nUHJvcHM8dW5rbm93bj4+IHwgdW5kZWZpbmVkKSA9PiB7XG4gIGNvbnN0IGl0ZW1zID0gW3Byb3BzXS5mbGF0KCkuZmlsdGVyKGlzRGVmaW5lZCk7XG4gIGNvbnN0IHJlc3VsdHM6IFtvYmplY3QsIENvbnRleHRNYXBWYWx1ZV1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgeyBjb250ZXh0LCBpdGVtIH0gb2YgaXRlbXMpIHtcbiAgICByZXN1bHRzLnB1c2goW2NvbnRleHQsIHsgaXRlbSwgZGVsYXk6IDAsIG9uSG92ZXI6IG5vb3AsIG9uVW5ob3Zlcjogbm9vcCB9XSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn07XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgdHlwZSBJT2JzZXJ2YWJsZVZhbHVlLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1hcFZhbHVlID0ge1xuICByZWFkb25seSBpdGVtOiB1bmtub3duO1xuICByZWFkb25seSBkZWxheTogbnVtYmVyO1xuICBvbkhvdmVyOiBWb2lkRnVuY3Rpb247XG4gIG9uVW5ob3ZlcjogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJlZEl0ZW1TdGF0ZSA9IHtcbiAgcmVhZG9ubHkgaG92ZXJlZEF0OiBJT2JzZXJ2YWJsZVZhbHVlPG51bWJlcj47XG4gIHJlYWRvbmx5IGdldFByb3BzOiAoKSA9PiBDb250ZXh0TWFwVmFsdWUgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImhvdmVyZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IG9iamVjdCkgPT4gb2JzZXJ2YWJsZS5tYXA8c3RyaW5nLCBIb3ZlcmVkSXRlbVN0YXRlPihbXSwgeyBkZWVwOiBmYWxzZSB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJob3Zlci1pdGVtLXN0YXRlLWZvclwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRIb3ZlcmVkSXRlbVN0YXRlID0gZGkuaW5qZWN0KGhvdmVyZWRJdGVtU3RhdGVJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiAoY29udGV4dDogb2JqZWN0KSA9PiBnZXRIb3ZlcmVkSXRlbVN0YXRlKGNvbnRleHQpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcyB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgdHlwZSBDb250ZXh0TWFwVmFsdWUsIGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuL2hvdmVyZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIGNvbXBhcmVyLCBvYnNlcnZhYmxlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IG5vb3AgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCB0eXBlIFNpbmdsZU9yTWFueSB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5cbmV4cG9ydCB0eXBlIEhvdmVyYWJsZUNvbnRleHRPcHRpb25zID0ge1xuICAvKipcbiAgICogSW4gbWlsbGlzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBkZWxheT86IG51bWJlcjtcbiAgcmVhZG9ubHkgb25Ib3Zlcj86IFZvaWRGdW5jdGlvbjtcbiAgcmVhZG9ubHkgb25VbmhvdmVyPzogVm9pZEZ1bmN0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlQ29udGV4dDxIb3ZlcmVkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGhvdmVyYWJsZTogKGl0ZW06IEhvdmVyZWRJdGVtLCBvcHRpb25zPzogSG92ZXJhYmxlQ29udGV4dE9wdGlvbnMpID0+ICRIb3ZlcmFibGVQcm9wczxIb3ZlcmVkSXRlbT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlICRIb3ZlcmFibGVQcm9wczxUSXRlbSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgY29udGV4dDogb2JqZWN0O1xuICByZWFkb25seSBpdGVtOiBUSXRlbTtcbiAgcmVhZG9ubHkgb3B0aW9uczogUmVxdWlyZWQ8SG92ZXJhYmxlQ29udGV4dE9wdGlvbnM+O1xufVxuXG5leHBvcnQgdHlwZSBIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PiA9IHtcbiAgcmVhZG9ubHkgJGhvdmVyYWJsZT86IFNpbmdsZU9yTWFueTwkSG92ZXJhYmxlUHJvcHM+O1xuICBvbk1vdXNlRW50ZXI/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUVudGVyXCJdO1xuICBvbk1vdXNlTGVhdmU/OiBSZWFjdC5IVE1MUHJvcHM8VEVsZW1lbnQ+W1wib25Nb3VzZUxlYXZlXCJdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEhvdmVyYWJsZUNvbnRleHQgPSA8SG92ZXJlZEl0ZW0sPigpOiBIb3ZlcmFibGVDb250ZXh0PEhvdmVyZWRJdGVtPiA9PiB7XG4gIGNvbnN0IGNvbnRleHQgPSB7XG4gICAgaG92ZXJhYmxlOiAoaXRlbTogSG92ZXJlZEl0ZW0sIHsgZGVsYXkgPSAwLCBvbkhvdmVyID0gbm9vcCwgb25VbmhvdmVyID0gbm9vcCB9OiBIb3ZlcmFibGVDb250ZXh0T3B0aW9ucyA9IHt9KSA9PiAoe1xuICAgICAgY29udGV4dCxcbiAgICAgIGl0ZW0sXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBvbkhvdmVyLFxuICAgICAgICBvblVuaG92ZXIsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgSG92ZXJhYmxlUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4gPSBSZXR1cm5UeXBlPHR5cGVvZiBob3ZlcmFibGVQbHVnaW48VD4+O1xuXG50eXBlIEhvdmVyYWJsZVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgaG92ZXJhYmxlOiBTaW5nbGVPck1hbnk8JEhvdmVyYWJsZVByb3BzPjtcbiAgcmVhZG9ubHkgb25Nb3VzZUVudGVyPzogUmVhY3QuTW91c2VFdmVudEhhbmRsZXI8SFRNTEVsZW1lbnQ+O1xuICByZWFkb25seSBvbk1vdXNlTGVhdmU/OiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjxIVE1MRWxlbWVudD47XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGhvdmVyYWJsZSxcbiAgb25Nb3VzZUVudGVyLFxuICBvbk1vdXNlTGVhdmUsXG4gIGNvbnRyaWJ1dGVQcm9wcyxcbiAgY2hpbGRyZW4sXG59OiBIb3ZlcmFibGVXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgaG92ZXJJdGVtU3RhdGVGb3IgPSB1c2VTeW5jSW5qZWN0KGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSk7XG4gIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbik7XG4gIGNvbnN0IGlkID0gdXNlSWQoKTtcblxuICBjb25zdCBob3ZlcmFibGVQcm9wc1JlZiA9IHVzZVJlZihcbiAgICBvYnNlcnZhYmxlLm1hcCh0b0NvbnRleHRNYXAoaG92ZXJhYmxlKSwgeyBkZWVwOiBmYWxzZSwgZXF1YWxzOiBjb21wYXJlci5zdHJ1Y3R1cmFsIH0pLFxuICApO1xuXG4gIHVzZUVmZmVjdChcbiAgICBhY3Rpb24oKCkgPT4ge1xuICAgICAgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5yZXBsYWNlKHRvQ29udGV4dE1hcChob3ZlcmFibGUpKTtcbiAgICB9KSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CeUNvbnRleHQgPSBuZXcgTWFwPG9iamVjdCwgdW5rbm93bj4oKTtcblxuICAgIHJldHVybiBhdXRvcnVuKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW2NvbnRleHQsIHsgaXRlbSwgb25Ib3Zlciwgb25VbmhvdmVyIH1dIG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgY29uc3QgaG92ZXJlZEl0ZW0gPSBpdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQgYXMgSG92ZXJhYmxlQ29udGV4dDx1bmtub3duPikuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbSA9IGl0ZW1CeUNvbnRleHQuZ2V0KGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChob3ZlcmVkSXRlbSA9PT0gaXRlbSkge1xuICAgICAgICAgIG9uSG92ZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChwcmV2aW91c0l0ZW0gPT09IGl0ZW0pIHtcbiAgICAgICAgICBvblVuaG92ZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZW1CeUNvbnRleHQuc2V0KGNvbnRleHQsIGhvdmVyZWRJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW2l0ZW1CZWluZ0hvdmVyZWRdKTtcblxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT5cbiAgICAgIGFjdGlvbigoKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgY29udGV4dCBvZiBob3ZlcmFibGVQcm9wc1JlZi5jdXJyZW50LmtleXMoKSkge1xuICAgICAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIFtob3Zlckl0ZW1TdGF0ZUZvciwgaWRdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZU1vdXNlRW50ZXIgPSB1c2VDYWxsYmFjayhcbiAgICBhY3Rpb24oKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Nb3VzZUVudGVyPy4oZXZlbnQpO1xuXG4gICAgICBjb25zdCBob3ZlcmVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbnRleHQgb2YgaG92ZXJhYmxlUHJvcHNSZWYuY3VycmVudC5rZXlzKCkpIHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoY29udGV4dCkuc2V0KGlkLCB7XG4gICAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgICAgZ2V0UHJvcHM6ICgpID0+IGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQuZ2V0KGNvbnRleHQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBoYW5kbGVNb3VzZUxlYXZlID0gdXNlQ2FsbGJhY2soXG4gICAgYWN0aW9uKChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uTW91c2VMZWF2ZT8uKGV2ZW50KTtcblxuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgZm9yIChjb25zdCBjb250ZXh0IG9mIGhvdmVyYWJsZVByb3BzUmVmLmN1cnJlbnQua2V5cygpKSB7XG4gICAgICAgIGNvbnN0IGhvdmVyZWRTdGF0ZSA9IGhvdmVySXRlbVN0YXRlRm9yKGNvbnRleHQpO1xuXG4gICAgICAgIGhvdmVyZWRTdGF0ZS5kZWxldGUoaWQpO1xuICAgICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgW10sXG4gICk7XG5cbiAgY29udHJpYnV0ZVByb3BzKHtcbiAgICBvbk1vdXNlRW50ZXI6IGhhbmRsZU1vdXNlRW50ZXIsXG4gICAgb25Nb3VzZUxlYXZlOiBoYW5kbGVNb3VzZUxlYXZlLFxuICB9KTtcblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhvdmVyYWJsZVBsdWdpbjxURWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxIb3ZlcmFibGVQbHVnaW5Qcm9wczxURWxlbWVudD4+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGhvdmVyYWJsZSwgb25Nb3VzZUVudGVyLCBvbk1vdXNlTGVhdmUgfSA9IHByb3BzO1xuXG4gICAgaWYgKCRob3ZlcmFibGUgPT09IHVuZGVmaW5lZCB8fCAoQXJyYXkuaXNBcnJheSgkaG92ZXJhYmxlKSAmJiAkaG92ZXJhYmxlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICRob3ZlcmFibGU6IHVuZGVmaW5lZCxcbiAgICAgICR3cmFwcGVyOiB7XG4gICAgICAgIENvbXBvbmVudDogSG92ZXJhYmxlV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBob3ZlcmFibGU6ICRob3ZlcmFibGUsXG4gICAgICAgICAgb25Nb3VzZUVudGVyLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IHRvQ29udGV4dE1hcCA9IChwcm9wczogU2luZ2xlT3JNYW55PCRIb3ZlcmFibGVQcm9wczx1bmtub3duPj4gfCB1bmRlZmluZWQpID0+IHtcbiAgY29uc3QgaXRlbXMgPSBbcHJvcHNdLmZsYXQoKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgY29uc3QgcmVzdWx0czogW29iamVjdCwgQ29udGV4dE1hcFZhbHVlXVtdID0gW107XG5cbiAgZm9yIChjb25zdCB7IGNvbnRleHQsIGl0ZW0sIG9wdGlvbnMgfSBvZiBpdGVtcykge1xuICAgIHJlc3VsdHMucHVzaChbY29udGV4dCwgeyBpdGVtLCAuLi5vcHRpb25zIH1dKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHRzO1xufTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiwgZ2V0SW5qZWN0aW9uVG9rZW4yIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSUNvbXB1dGVkVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4vaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZE5vd0luamVjdGFibGUgfSBmcm9tIFwiLi9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSBJdGVtQmVpbmdIb3ZlcmVkID0gPFQ+KGhvdmVyYWJsZUNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+IElDb21wdXRlZFZhbHVlPFQgfCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuID0gZ2V0SW5qZWN0aW9uVG9rZW4yPHsgc2luZ2xlRmFjdG9yeTogKCkgPT4gSXRlbUJlaW5nSG92ZXJlZCB9Pih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuICBjYXJkaW5hbGl0eTogXCJvbmVcIixcbn0pKCk7XG5cbmV4cG9ydCBjb25zdCBwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcInByaXZhdGUtaXRlbS1iZWluZy1ob3ZlcmVkXCIsXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGdldEhvdmVyZWRJdGVtU3RhdGUgPSBkaS5pbmplY3QoaG92ZXJlZEl0ZW1TdGF0ZUluamVjdGFibGUpO1xuICAgIGNvbnN0IGdldENvbXB1dGVkTm93ID0gZGkuaW5qZWN0KGNvbXB1dGVkTm93SW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IG9iamVjdCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZEl0ZW1TdGF0ZSA9IGdldEhvdmVyZWRJdGVtU3RhdGUoY29udGV4dCk7XG4gICAgICBjb25zdCBjb21wdXRlZE5vdyA9IGdldENvbXB1dGVkTm93KDEpO1xuXG4gICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB0b3BJdGVtID0gWy4uLmhvdmVyZWRJdGVtU3RhdGUudmFsdWVzKCldLmF0KC0xKTtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0b3BJdGVtPy5nZXRQcm9wcygpO1xuXG4gICAgICAgIGlmICghdG9wSXRlbSB8fCAhcHJvcHMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgd2hlbkNvbnNpZGVyZWRIb3ZlcmVkID0gdG9wSXRlbS5ob3ZlcmVkQXQuZ2V0KCkgKyBwcm9wcy5kZWxheTtcbiAgICAgICAgY29uc3Qgbm93ID0gY29tcHV0ZWROb3cuZ2V0KCk7XG5cbiAgICAgICAgcmV0dXJuIG5vdyA+PSB3aGVuQ29uc2lkZXJlZEhvdmVyZWQgPyBwcm9wcy5pdGVtIDogdW5kZWZpbmVkO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgaXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIml0ZW0tYmVpbmctaG92ZXJlZFwiLFxuXG4gIGluc3RhbnRpYXRlOiAoZGkpID0+IHtcbiAgICBjb25zdCBnZXRQcml2YXRlSXRlbUJlaW5nSG92ZXJlZCA9IGRpLmluamVjdChwcml2YXRlSXRlbUJlaW5nSG92ZXJlZEluamVjdGFibGUpO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICAoPFQ+KGNvbnRleHQ6IEhvdmVyYWJsZUNvbnRleHQ8VD4pID0+XG4gICAgICAgIGdldFByaXZhdGVJdGVtQmVpbmdIb3ZlcmVkKGNvbnRleHQpIGFzIElDb21wdXRlZFZhbHVlPFQ+KSBhcyBJdGVtQmVpbmdIb3ZlcmVkO1xuICB9LFxuXG4gIGluamVjdGlvblRva2VuOiBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBjb21wdXRlZCwgb2JzZXJ2YWJsZSwgb25CZWNvbWVPYnNlcnZlZCwgb25CZWNvbWVVbm9ic2VydmVkLCBydW5JbkFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5cbi8qKlxuICogQSBjbG9jayB0aGF0IGFkdmFuY2VzIG9ubHkgd2hpbGUgc29tZXRoaW5nIG9ic2VydmVzIGl0LCBzbyBhIGhvdmVyIGRlbGF5XG4gKiBrZWVwcyBiZWluZyByZS1ldmFsdWF0ZWQgdW50aWwgaXQgaGFzIGVsYXBzZWQgYW5kIGNvc3RzIG5vdGhpbmcgb25jZSBub2JvZHlcbiAqIGlzIHdhdGNoaW5nLlxuICpcbiAqIExvY2FsIHJhdGhlciB0aGFuIHRha2VuIGZyb20gdGhlIHNoYXJlZCBpbnRlcnZhbCBmZWF0dXJlOiBhIGRlc2lnbiBzeXN0ZW1cbiAqIGNhbm5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZCB0aGUgaG92ZXJhYmxlIHBsdWdpbiBpcyB0aGUgb25seVxuICogdGhpbmcgaGVyZSB0aGF0IG5lZWRzIGEgY2xvY2suIFRoZSBpbnRlcnZhbCBpcyB0aGUgaW5zdGFudGlhdGlvbiBwYXJhbWV0ZXIsXG4gKiBzbyB2MiBrZXlzIG9uZSBjbG9jayBwZXIgaW50ZXJ2YWwuXG4gKi9cbmV4cG9ydCBjb25zdCBjb21wdXRlZE5vd0luamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImNvbXB1dGVkLW5vd1wiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoaW50ZXJ2YWxNczogbnVtYmVyKSA9PiB7XG4gICAgY29uc3Qgbm93ID0gb2JzZXJ2YWJsZS5ib3goRGF0ZS5ub3coKSk7XG5cbiAgICBsZXQgaGFuZGxlOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCB1bmRlZmluZWQ7XG5cbiAgICBvbkJlY29tZU9ic2VydmVkKG5vdywgKCkgPT4ge1xuICAgICAgcnVuSW5BY3Rpb24oKCkgPT4gbm93LnNldChEYXRlLm5vdygpKSk7XG5cbiAgICAgIGhhbmRsZSA9IHNldEludGVydmFsKCgpID0+IHJ1bkluQWN0aW9uKCgpID0+IG5vdy5zZXQoRGF0ZS5ub3coKSkpLCBpbnRlcnZhbE1zKTtcbiAgICB9KTtcblxuICAgIG9uQmVjb21lVW5vYnNlcnZlZChub3csICgpID0+IHtcbiAgICAgIGlmIChoYW5kbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjbGVhckludGVydmFsKGhhbmRsZSk7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZSA9IHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBub3cuZ2V0KCkpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIsIGdldEluamVjdGlvblRva2VuMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IElDb21wdXRlZFZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IGNvbXB1dGVkIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlQ29udGV4dCB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCB0eXBlIEl0ZW1CZWluZ0RyYWdnZWQgPSA8VD4oZHJhZ2dhYmxlQ29udGV4dDogRHJhZ2dhYmxlQ29udGV4dDxUPikgPT4gSUNvbXB1dGVkVmFsdWU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjb25zdCBpdGVtQmVpbmdEcmFnZ2VkSW5qZWN0aW9uVG9rZW4gPSBnZXRJbmplY3Rpb25Ub2tlbjI8eyBzaW5nbGVGYWN0b3J5OiAoKSA9PiBJdGVtQmVpbmdEcmFnZ2VkIH0+KHtcbiAgaWQ6IFwiaXRlbS1iZWluZy1kcmFnZ2VkXCIsXG4gIGNhcmRpbmFsaXR5OiBcIm9uZVwiLFxufSkoKTtcblxuZXhwb3J0IGNvbnN0IHByaXZhdGVJdGVtQmVpbmdEcmFnZ2VkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwicHJpdmF0ZS1pdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0RHJhZ2dlZEl0ZW1TdGF0ZSA9IGRpLmluamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgICByZXR1cm4gKGNvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gY29tcHV0ZWQoKCkgPT4gZ2V0RHJhZ2dlZEl0ZW1TdGF0ZShjb250ZXh0KS5nZXQoKSk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJpdGVtLWJlaW5nLWRyYWdnZWRcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgZ2V0UHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWQgPSBkaS5pbmplY3QocHJpdmF0ZUl0ZW1CZWluZ0RyYWdnZWRJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgKDxUPihjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+KSA9PlxuICAgICAgICBnZXRQcml2YXRlSXRlbUJlaW5nRHJhZ2dlZChjb250ZXh0KSBhcyBJQ29tcHV0ZWRWYWx1ZTxUPikgYXMgSXRlbUJlaW5nRHJhZ2dlZDtcbiAgfSxcblxuICBpbmplY3Rpb25Ub2tlbjogaXRlbUJlaW5nRHJhZ2dlZEluamVjdGlvblRva2VuLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgb2JzZXJ2YWJsZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IERyYWdnYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWRyYWdnYWJsZS1jb250ZXh0XCI7XG5cbi8vIFRoZSBjb250ZXh0IGlzIHRoZSBpbnN0YW50aWF0aW9uIHBhcmFtZXRlciwgc28gdjIga2V5cyBvbmUgc3RhdGUgYm94IHBlclxuLy8gY29udGV4dCBpZGVudGl0eSBcdTIwMTQgd2hhdCB0aGUga2V5ZWRTaW5nbGV0b24gdXNlZCB0byBzcGVsbCBvdXQuXG5leHBvcnQgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcImRyYWdnZWQtaXRlbS1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoX2NvbnRleHQ6IERyYWdnYWJsZUNvbnRleHQ8YW55PikgPT4gb2JzZXJ2YWJsZS5ib3godW5kZWZpbmVkLCB7IGRlZXA6IGZhbHNlIH0pLFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IEhvdmVyYWJsZVBsdWdpbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyBnZXRIb3ZlcmFibGVDb250ZXh0IH0gZnJvbSBcIi4uL2hvdmVyYWJsZS9ob3ZlcmFibGVcIjtcbmltcG9ydCB7IGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB7IGhvdmVySXRlbVN0YXRlRm9ySW5qZWN0YWJsZSB9IGZyb20gXCIuLi9ob3ZlcmFibGUvaG92ZXJlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB0b29sdGlwRGVsYXlJbmplY3RhYmxlIH0gZnJvbSBcIi4vdG9vbHRpcC1kZWxheS90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vdG9vbHRpcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHsgbm9vcCwgdHlwZSBNYXliZUFzeW5jVm9pZEZ1bmN0aW9uIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IE1pbmltYWxEaXYsIHR5cGUgTWluaW1hbERpdlByb3BzIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzL21pbmltYWwtZGl2XCI7XG5pbXBvcnQgeyBhY3Rpb24sIGF1dG9ydW4sIG9ic2VydmFibGUgfSBmcm9tIFwibW9ieFwiO1xuXG50eXBlIFRvb2x0aXBDb250ZW50UHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3Q+ID1cbiAgfCB7XG4gICAgICAvKiogUGxhaW4tdGV4dCBjb250ZW50IG9mIHRoZSB0b29sdGlwLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgQ29udGVudGAuICovXG4gICAgICByZWFkb25seSBjb250ZW50VGV4dDogc3RyaW5nO1xuICAgICAgcmVhZG9ubHkgQ29udGVudD86IHVuZGVmaW5lZDtcbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IHVuZGVmaW5lZDtcbiAgICB9XG4gIHwge1xuICAgICAgcmVhZG9ubHkgY29udGVudFRleHQ/OiB1bmRlZmluZWQ7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBjb21wb25lbnQgcmVuZGVyZWQgYXMgdGhlIGNvbnRlbnQgb2YgdGhlIHRvb2x0aXAuIE11c3QgaGF2ZSBhIHN0YWJsZVxuICAgICAgICogaWRlbnRpdHkgKG1vZHVsZSBzY29wZSkgXHUyMDE0IGRhdGEgZmxvd3MgaW4gdGhyb3VnaCBgY29udGVudFByb3BzYCwgbmV2ZXJcbiAgICAgICAqIHRocm91Z2ggY2xvc3VyZSBjYXB0dXJlLlxuICAgICAgICovXG4gICAgICByZWFkb25seSBDb250ZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPFByb3BzPjtcbiAgICAgIC8qKiBUaGUgcHJvcHMgdGhlIHRvb2x0aXAgcGFzc2VzIHRvIGBDb250ZW50YCB3aGVuIHJlbmRlcmluZyBpdC4gKi9cbiAgICAgIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IFByb3BzO1xuICAgIH07XG5cbmV4cG9ydCB0eXBlICRUb29sdGlwUHJvcHM8UHJvcHMgZXh0ZW5kcyBvYmplY3QgPSBSZWNvcmQ8bmV2ZXIsIG5ldmVyPj4gPSB7XG4gIHJlYWRvbmx5IHBvc2l0aW9uPzogUGxhY2VtZW50O1xuICByZWFkb25seSBvblRvb2x0aXBTaG93bj86IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59ICYgVG9vbHRpcENvbnRlbnRQcm9wczxQcm9wcz47XG5cbi8qKlxuICogVHlwZS1jaGVja3MgdGhlIHBhaXJpbmcgb2YgYENvbnRlbnRgIGFuZCBgY29udGVudFByb3BzYCBvZiBhbiBvYmplY3QtZm9ybVxuICogYCR0b29sdGlwYDogYGNvbnRlbnRQcm9wc2AgaXMgcmVxdWlyZWQgdG8gYmUgdGhlIHByb3BzIG9mIGBDb250ZW50YCwgYW5kIGl0XG4gKiBpcyByZXF1aXJlZCB0byBiZSBwcmVzZW50IHdoZW4gYENvbnRlbnRgIGhhcyByZXF1aXJlZCBwcm9wcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHMpOiAkVG9vbHRpcFByb3BzPGFueT47XG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9vbHRpcFByb3BzPFByb3BzIGV4dGVuZHMgb2JqZWN0PihcbiAgdG9vbHRpcFByb3BzOiAkVG9vbHRpcFByb3BzPFByb3BzPiAmIHsgcmVhZG9ubHkgY29udGVudFByb3BzOiBQcm9wcyB9LFxuKTogJFRvb2x0aXBQcm9wczxhbnk+O1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2x0aXBQcm9wcyh0b29sdGlwUHJvcHM6ICRUb29sdGlwUHJvcHM8YW55Pik6ICRUb29sdGlwUHJvcHM8YW55PiB7XG4gIHJldHVybiB0b29sdGlwUHJvcHM7XG59XG5cbmV4cG9ydCB0eXBlIFRvb2x0aXBQbHVnaW5Qcm9wcyA9IHtcbiAgLyoqIE51bGxpc2ggbWVhbnMgbm8gdG9vbHRpcCwgc28gY29uZGl0aW9uYWwgc291cmNlcyAoYHN0cmluZyB8IG51bGxgKSBwYXNzIHRocm91Z2ggYXMtaXMuICovXG4gICR0b29sdGlwPzogc3RyaW5nIHwgJFRvb2x0aXBQcm9wczxhbnk+IHwgbnVsbDtcbn07XG5cbi8qKlxuICogQSB0b29sdGlwIG9mIG5vdGhpbmc6IHRoZSBlbGVtZW50IHRha2VzIHRoZSBob3Zlciwgc28gbm8gZW5jbG9zaW5nIGVsZW1lbnQgc2hvd3MgaXRzIHRvb2x0aXBcbiAqIHdoaWxlIHRoZSBwb2ludGVyIGlzIG92ZXIgdGhpcyBvbmUsIGFuZCBzaG93cyBub3RoaW5nIG9mIGl0cyBvd24uIE51bGxpc2ggYCR0b29sdGlwYCBsZWF2ZXMgdGhlXG4gKiBlbmNsb3NpbmcgdG9vbHRpcCBhbG9uZSBpbnN0ZWFkIFx1MjAxNCB1c2UgdGhpcyB3aGVyZSBhbiBlbGVtZW50IG11c3Qgbm90IGJlIGRlc2NyaWJlZCBieSB3aGF0ZXZlclxuICogZW5jbG9zZXMgaXQsIGEgcGFuZWwgb3BlbmVkIGZyb20gYSByb3cgd2l0aCBhIHRvb2x0aXAgYmVpbmcgdGhlIGNhc2UgdGhhdCBuZWVkcyBpdDogYSB0b29sdGlwXG4gKiBnb2VzIGludG8gdGhlIHRvcCBsYXllciwgc28gaXQgd291bGQgcGFpbnQgb3ZlciB3aGF0IHRoZSBwYW5lbCBpcyB0aGVyZSBmb3IuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogPExpICR0b29sdGlwPXtzdXBwcmVzc1Rvb2x0aXB9PlxuICogICA8U2V0dGluZ3MgLz5cbiAqIDwvTGk+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHN1cHByZXNzVG9vbHRpcDogJFRvb2x0aXBQcm9wcyA9IHsgY29udGVudFRleHQ6IFwiXCIgfTtcblxuY29uc3QgaG92ZXJhYmxlVG9vbHRpcENvbnRleHQgPSBnZXRIb3ZlcmFibGVDb250ZXh0PEhUTUxFbGVtZW50IHwgbnVsbD4oKTtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IE1pbmltYWxEaXZQcm9wcykgPT4ge1xuICBjb25zdCB7ICRjbGFzc05hbWUsIC4uLnJlc3QgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPE1pbmltYWxEaXZcbiAgICAgICRwYWRkaW5nXG4gICAgICAkYmFja2dyb3VuZENvbG9yPVwiYmFja2dyb3VuZFNlY29uZGFyeVwiXG4gICAgICAkYm9yZGVyPXt7IHJhZGl1czogdHJ1ZSB9fVxuICAgICAgJGZvbnQ9e3sgc2l6ZTogXCJzXCIgfX1cbiAgICAgICRib3hTaGFkb3dcbiAgICAgICRub1BvaW50ZXJFdmVudHNcbiAgICAgICRhYnNvbHV0ZVxuICAgICAgJGNsYXNzTmFtZT17W3N0eWxlcy50b29sdGlwLCAkY2xhc3NOYW1lXX1cbiAgICAgIGRhdGEtdG9vbHRpcC1jb250YWluZXItdGVzdFxuICAgICAgey4uLnJlc3R9XG4gICAgLz5cbiAgKTtcbn07XG5cbnR5cGUgRmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyUHJvcHMgPSB7XG4gIGNvbnRlbnQ6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVmZXJlbmNlOiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIG9uVG9vbHRpcFNob3duOiBWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFBvcG92ZXJDYXBhYmxlID0gSFRNTEVsZW1lbnQgJiB7IHNob3dQb3BvdmVyOiBWb2lkRnVuY3Rpb247IGhpZGVQb3BvdmVyOiBWb2lkRnVuY3Rpb24gfTtcblxuY29uc3QgaXNQb3BvdmVyQ2FwYWJsZSA9IChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGVsZW1lbnQgaXMgUG9wb3ZlckNhcGFibGUgPT5cbiAgdHlwZW9mIChlbGVtZW50IGFzIFBhcnRpYWw8UG9wb3ZlckNhcGFibGU+KS5zaG93UG9wb3ZlciA9PT0gXCJmdW5jdGlvblwiO1xuXG5jb25zdCBGbG9hdGluZ1N0eWxlZFRvb2x0aXBDb250YWluZXIgPSAocHJvcHM6IEZsb2F0aW5nU3R5bGVkVG9vbHRpcENvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGVudCwgcG9zaXRpb24sIHJlZmVyZW5jZSwgb25Ub29sdGlwU2hvd24gfSA9IHByb3BzO1xuICBjb25zdCBbZmxvYXRpbmcsIHNldEZsb2F0aW5nXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IHsgZmxvYXRpbmdTdHlsZXMgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICBwbGFjZW1lbnQ6IHBvc2l0aW9uLFxuICAgIG1pZGRsZXdhcmU6IFtmbGlwKCksIG9mZnNldCg4KSwgc2hpZnQoKV0sXG4gICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgZWxlbWVudHM6IHtcbiAgICAgIGZsb2F0aW5nLFxuICAgICAgcmVmZXJlbmNlLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHdlIGRvbid0IHdhbnQgdG8gY2FsbCBvblRvb2x0aXBTaG93biBldmVyeSB0aW1lIGl0IHVwZGF0ZXMgd2hpbGUgdGhlIHRvb2x0aXAgaXMgYmVpbmcgc2hvd1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHZvaWQgb25Ub29sdGlwU2hvd24oKTtcbiAgfSwgW10pO1xuXG4gIC8vIEludG8gdGhlIHRvcCBsYXllciwgd2hlcmUgYSBkcm9wLWRvd24gbWVudSBhbHJlYWR5IHB1dHMgaXRzZWxmOiBubyB6LWluZGV4IGNhblxuICAvLyBwYWludCBvdmVyIGEgcG9wb3Zlciwgc28gYSB0b29sdGlwIGFueXdoZXJlIG5lYXIgYW4gb3BlbiBtZW51IHdvdWxkIGJlIGhpZGRlblxuICAvLyBiZWhpbmQgaXQuIFNob3duIGFmdGVyIHRoZSBtZW51IG9wZW5lZCwgc28gaXQgbGFuZHMgYWJvdmUgaXQuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFmbG9hdGluZyB8fCAhaXNQb3BvdmVyQ2FwYWJsZShmbG9hdGluZykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmbG9hdGluZy5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChmbG9hdGluZy5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBmbG9hdGluZy5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG4gIH0sIFtmbG9hdGluZ10pO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFRvb2x0aXBDb250YWluZXIgJHJlZj17c2V0RmxvYXRpbmd9IHBvcG92ZXI9XCJtYW51YWxcIiBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9PlxuICAgICAge2NvbnRlbnR9XG4gICAgPC9TdHlsZWRUb29sdGlwQ29udGFpbmVyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgVG9vbHRpcFBsdWdpbjxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+ID0gUmV0dXJuVHlwZTx0eXBlb2YgdG9vbHRpcFBsdWdpbjxUPj47XG5cbnR5cGUgTm9ybWFsaXplZFRvb2x0aXBQcm9wcyA9IHtcbiAgcmVhZG9ubHkgY29udGVudFRleHQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IENvbnRlbnQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT47XG4gIHJlYWRvbmx5IGNvbnRlbnRQcm9wcz86IGFueTtcbiAgcmVhZG9ubHkgcG9zaXRpb246IFBsYWNlbWVudDtcbiAgcmVhZG9ubHkgb25Ub29sdGlwU2hvd246IE1heWJlQXN5bmNWb2lkRnVuY3Rpb247XG59O1xuXG50eXBlIFRvb2x0aXBXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IHRvb2x0aXA6IE5vcm1hbGl6ZWRUb29sdGlwUHJvcHM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgVG9vbHRpcFdyYXBwZXJDb21wb25lbnQgPSAoeyB0b29sdGlwLCBjb250cmlidXRlUmVmLCBjb250cmlidXRlUHJvcHMsIGNoaWxkcmVuIH06IFRvb2x0aXBXcmFwcGVyUHJvcHMpID0+IHtcbiAgY29uc3QgW3JlZmVyZW5jZSwgc2V0UmVmZXJlbmNlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnRyaWJ1dGVSZWYoc2V0UmVmZXJlbmNlKTtcblxuICBjb25zdCB0b29sdGlwRGVsYXkgPSB1c2VTeW5jSW5qZWN0KHRvb2x0aXBEZWxheUluamVjdGFibGUpO1xuICBjb25zdCBob3Zlckl0ZW1TdGF0ZUZvciA9IHVzZVN5bmNJbmplY3QoaG92ZXJJdGVtU3RhdGVGb3JJbmplY3RhYmxlKTtcbiAgY29uc3QgaG92ZXJlZEl0ZW0gPSB1c2VTeW5jSW5qZWN0KGl0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbikoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICBjb25zdCBpZCA9IHVzZUlkKCk7XG5cbiAgY29uc3QgcmVmZXJlbmNlUmVmID0gdXNlUmVmKHJlZmVyZW5jZSk7XG4gIHJlZmVyZW5jZVJlZi5jdXJyZW50ID0gcmVmZXJlbmNlO1xuXG4gIGNvbnN0IHRvb2x0aXBEZWxheVJlZiA9IHVzZVJlZih0b29sdGlwRGVsYXkpO1xuICB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA9IHRvb2x0aXBEZWxheTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIG9uTW91c2VFbnRlcjogYWN0aW9uKCgpID0+IHtcbiAgICAgIGNvbnN0IGhvdmVyZWRBdCA9IERhdGUubm93KCk7XG5cbiAgICAgIGhvdmVySXRlbVN0YXRlRm9yKGhvdmVyYWJsZVRvb2x0aXBDb250ZXh0KS5zZXQoaWQsIHtcbiAgICAgICAgaG92ZXJlZEF0OiBvYnNlcnZhYmxlLmJveChob3ZlcmVkQXQsIHsgZGVlcDogZmFsc2UgfSksXG4gICAgICAgIGdldFByb3BzOiAoKSA9PiAoe1xuICAgICAgICAgIGl0ZW06IHJlZmVyZW5jZVJlZi5jdXJyZW50LFxuICAgICAgICAgIGRlbGF5OiB0b29sdGlwRGVsYXlSZWYuY3VycmVudCA/PyAwLFxuICAgICAgICAgIG9uSG92ZXI6IG5vb3AsXG4gICAgICAgICAgb25VbmhvdmVyOiBub29wLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgIH0pLFxuXG4gICAgb25Nb3VzZUxlYXZlOiBhY3Rpb24oKCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZFN0YXRlID0gaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpO1xuICAgICAgY29uc3QgaG92ZXJlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgICAgaG92ZXJlZFN0YXRlLmRlbGV0ZShpZCk7XG4gICAgICBob3ZlcmVkU3RhdGUuZm9yRWFjaCgoc3RhdGUpID0+IHN0YXRlLmhvdmVyZWRBdC5zZXQoaG92ZXJlZEF0KSk7XG4gICAgfSksXG4gIH0pO1xuXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaG92ZXJJdGVtU3RhdGVGb3IoaG92ZXJhYmxlVG9vbHRpcENvbnRleHQpLmRlbGV0ZShpZCk7XG4gICAgICB9KSxcbiAgICBbaG92ZXJJdGVtU3RhdGVGb3IsIGlkXSxcbiAgKTtcblxuICBjb25zdCBbaG92ZXJlZCwgc2V0SG92ZXJlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gYXV0b3J1bigoKSA9PiB7XG4gICAgICBjb25zdCBpc0hvdmVyZWQgPSBob3ZlcmVkSXRlbS5nZXQoKSA9PT0gcmVmZXJlbmNlUmVmLmN1cnJlbnQ7XG4gICAgICBzZXRIb3ZlcmVkKGlzSG92ZXJlZCk7XG4gICAgfSk7XG4gIH0sIFtob3ZlcmVkSXRlbV0pO1xuXG4gIGNvbnN0IHsgY29udGVudFRleHQsIENvbnRlbnQsIGNvbnRlbnRQcm9wcywgcG9zaXRpb24sIG9uVG9vbHRpcFNob3duIH0gPSB0b29sdGlwO1xuICBjb25zdCBjb250ZW50ID0gaG92ZXJlZCA/IENvbnRlbnQgPT09IHVuZGVmaW5lZCA/IGNvbnRlbnRUZXh0IDogPENvbnRlbnQgey4uLmNvbnRlbnRQcm9wc30gLz4gOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2NvbnRlbnRcbiAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8RmxvYXRpbmdTdHlsZWRUb29sdGlwQ29udGFpbmVyIHsuLi57IGNvbnRlbnQsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biwgcmVmZXJlbmNlIH19IC8+LFxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbH1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8Lz5cbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0b29sdGlwUGx1Z2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48VG9vbHRpcFBsdWdpblByb3BzLCBbSG92ZXJhYmxlUGx1Z2luPFQ+LCBSZWZQbHVnaW48VD5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICR0b29sdGlwIH0gPSBwcm9wcyBhcyB0eXBlb2YgcHJvcHMgJiB7IHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlIH07XG5cbiAgICBpZiAoJHRvb2x0aXAgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJHRvb2x0aXA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgY29udGVudFRleHQsXG4gICAgICBDb250ZW50LFxuICAgICAgY29udGVudFByb3BzLFxuICAgICAgcG9zaXRpb24gPSBcImJvdHRvbVwiLFxuICAgICAgb25Ub29sdGlwU2hvd24gPSBub29wLFxuICAgIH06ICRUb29sdGlwUHJvcHM8YW55PiA9IHR5cGVvZiAkdG9vbHRpcCA9PT0gXCJzdHJpbmdcIiA/IHsgY29udGVudFRleHQ6ICR0b29sdGlwIH0gOiAkdG9vbHRpcDtcblxuICAgIHJldHVybiB7XG4gICAgICAkdG9vbHRpcDogdW5kZWZpbmVkLFxuICAgICAgJHdyYXBwZXI6IHtcbiAgICAgICAgQ29tcG9uZW50OiBUb29sdGlwV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICB0b29sdGlwOiB7IGNvbnRlbnRUZXh0LCBDb250ZW50LCBjb250ZW50UHJvcHMsIHBvc2l0aW9uLCBvblRvb2x0aXBTaG93biB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCB0b29sdGlwRGVsYXlJbmplY3RhYmxlID0gZ2V0SW5qZWN0YWJsZTIoe1xuICBpZDogXCJ0b29sdGlwLWRlbGF5XCIsXG4gIGluc3RhbnRpYXRlOiAoKSA9PiAoKTogbnVtYmVyIHwgdW5kZWZpbmVkID0+IDUwMCxcbn0pO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudG9vbHRpcC1tb2R1bGVfX3Rvb2x0aXBfX192YU9BdSB7XFxuICB6LWluZGV4OiAxMDAwMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogbWF4LWNvbnRlbnQ7XFxuICBtYXgtd2lkdGg6IDYwMHB4O1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLnRvb2x0aXAtbW9kdWxlX190b29sdGlwX19fdmFPQXU6cG9wb3Zlci1vcGVuIHtcXG4gIGluc2V0OiBhdXRvO1xcbiAgbWFyZ2luOiAwO1xcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0b29sdGlwXCI6XCJ0b29sdGlwLW1vZHVsZV9fdG9vbHRpcF9fX3ZhT0F1XCJ9OyIsICJpbXBvcnQgeyBnZXRFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBvYnNlcnZlciB9IGZyb20gXCJtb2J4LXJlYWN0XCI7XG5pbXBvcnQgeyBhYnNvbHV0ZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlXCI7XG5pbXBvcnQgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nXCI7XG5pbXBvcnQgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3JcIjtcbmltcG9ydCB7IGJvcmRlclBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB7IGZvbnRQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9mb250L2ZvbnRcIjtcbmltcG9ydCB7IGJveFNoYWRvd1BsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2JveC1zaGFkb3cvYm94LXNoYWRvd1wiO1xuaW1wb3J0IHsgbm9Qb2ludGVyRXZlbnRzUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHNcIjtcbmltcG9ydCB7IHJlZlBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL3JlZi9yZWZcIjtcbmltcG9ydCB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgcmVsYXRpdmVQbHVnaW4gfSBmcm9tIFwiLi4vcGx1Z2lucy9yZWxhdGl2ZS9yZWxhdGl2ZVwiO1xuaW1wb3J0IHsgaG92ZXJhYmxlUGx1Z2luIH0gZnJvbSBcIi4uL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZVwiO1xuXG5jb25zdCBwbHVnaW5zID0gW1xuICBwYWRkaW5nUGx1Z2luLFxuICBib3hTaGFkb3dQbHVnaW4sXG4gIGJvcmRlclBsdWdpbixcbiAgZm9udFBsdWdpbixcbiAgYmFja2dyb3VuZENvbG9yUGx1Z2luLFxuICBub1BvaW50ZXJFdmVudHNQbHVnaW4sXG4gIHJlbGF0aXZlUGx1Z2luLFxuICBhYnNvbHV0ZVBsdWdpbixcbiAgY2xhc3NOYW1lUGx1Z2luLFxuXTtcblxuY29uc3QgZ2V0VHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbaG92ZXJhYmxlUGx1Z2luPFQ+KCksIHJlZlBsdWdpbjxUPigpXTtcblxuZXhwb3J0IGNvbnN0IE1pbmltYWxEaXYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnBsdWdpbnMsIC4uLmdldFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBNaW5pbWFsRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTWluaW1hbERpdj47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBhYnNvbHV0ZVN0eWxlcyBmcm9tIFwiLi9hYnNvbHV0ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBvc2l0aW9uID1cbiAgfCBcImFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdFwiXG4gIHwgXCJhYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCJcbiAgfCBcImFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlclwiO1xuXG5leHBvcnQgdHlwZSBBYnNvbHV0ZVBsdWdpblByb3BzID0geyAkYWJzb2x1dGU/OiBBYnNvbHV0ZVBvc2l0aW9uIHwgYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgYWJzb2x1dGVQbHVnaW4gPSBnZXRQbHVnaW48QWJzb2x1dGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtcbiAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgIHsgW2Fic29sdXRlU3R5bGVzLmFic29sdXRlXTogISFwcm9wcy4kYWJzb2x1dGUgfSxcbiAgICB0eXBlb2YgcHJvcHMuJGFic29sdXRlID09PSBcInN0cmluZ1wiID8gYWJzb2x1dGVTdHlsZXNbYGFic29sdXRlLS0ke3Byb3BzLiRhYnNvbHV0ZX1gXSA6IHVuZGVmaW5lZCxcbiAgXSxcblxuICAkYWJzb2x1dGU6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1sZWZ0LXRvLXJlbGF0aXZlLWNlbnRlci1yaWdodF9fX2xKMHByIHtcXG4gIGxlZnQ6IDEwMCU7XFxuICB0b3A6IDUwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0X19fM2cwc0Qge1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMTAwJTtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzgge1xcbiAgbGVmdDogMTAwJTtcXG4gIGJvdHRvbTogMTAwJTtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4uYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZS0tYWJzb2x1dGUtYm90dG9tLXRvLXJlbGF0aXZlLWJvdHRvbV9fX0NsbTBtIHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1IHtcXG4gIGxlZnQ6IDUwJTtcXG4gIHRvcDogMDtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhYnNvbHV0ZVwiOlwiYWJzb2x1dGUtbW9kdWxlX19hYnNvbHV0ZV9fX01YLS1ZXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWxlZnQtdG8tcmVsYXRpdmUtY2VudGVyLXJpZ2h0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1jZW50ZXItbGVmdC10by1yZWxhdGl2ZS1jZW50ZXItcmlnaHRfX19sSjBwclwiLFwiYWJzb2x1dGUtLWFic29sdXRlLWJvdHRvbS1sZWZ0LXRvLXJlbGF0aXZlLXRvcC1sZWZ0XCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tbGVmdC10by1yZWxhdGl2ZS10b3AtbGVmdF9fXzNnMHNEXCIsXCJhYnNvbHV0ZS0tYWJzb2x1dGUtY2VudGVyLWNlbnRlci10by1yZWxhdGl2ZS1ib3R0b20tcmlnaHRcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLWNlbnRlci1jZW50ZXItdG8tcmVsYXRpdmUtYm90dG9tLXJpZ2h0X19fZ2dtTzhcIixcImFic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tXCI6XCJhYnNvbHV0ZS1tb2R1bGVfX2Fic29sdXRlLS1hYnNvbHV0ZS1ib3R0b20tdG8tcmVsYXRpdmUtYm90dG9tX19fQ2xtMG1cIixcImFic29sdXRlLS1hYnNvbHV0ZS10b3AtY2VudGVyLXRvLXJlbGF0aXZlLXRvcC1jZW50ZXJcIjpcImFic29sdXRlLW1vZHVsZV9fYWJzb2x1dGUtLWFic29sdXRlLXRvcC1jZW50ZXItdG8tcmVsYXRpdmUtdG9wLWNlbnRlcl9fX0V0a3k1XCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHBhZGRpbmdTdHlsZXMgZnJvbSBcIi4vcGFkZGluZy5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBEaXJlY3Rpb25hbFBhZGRpbmcgPSB7XG4gIHRvcD86IFRTaGlydFNpemU7XG4gIGJvdHRvbT86IFRTaGlydFNpemU7XG4gIGxlZnQ/OiBUU2hpcnRTaXplO1xuICByaWdodD86IFRTaGlydFNpemU7XG4gIGhvcml6b250YWw/OiBUU2hpcnRTaXplO1xuICB2ZXJ0aWNhbD86IFRTaGlydFNpemU7XG59O1xuXG5leHBvcnQgdHlwZSBQYWRkaW5nUGx1Z2luUHJvcHMgPSB7ICRwYWRkaW5nPzogYm9vbGVhbiB8IERpcmVjdGlvbmFsUGFkZGluZyB8IFRTaGlydFNpemUgfTtcblxuZXhwb3J0IGNvbnN0IHBhZGRpbmdQbHVnaW4gPSBnZXRQbHVnaW48UGFkZGluZ1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRwYWRkaW5nKSB7XG4gICAgcmV0dXJuIHsgJHBhZGRpbmc6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgcGFkZGluZyA9IHByb3BzLiRwYWRkaW5nID09PSB0cnVlID8gXCJ4c1wiIDogcHJvcHMuJHBhZGRpbmc7XG5cbiAgaWYgKGlzU3RyaW5nKHBhZGRpbmcpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBwYWRkaW5nU3R5bGVzW2BwYWRkaW5nLS0ke3BhZGRpbmd9YF1dLFxuICAgICAgJHBhZGRpbmc6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgdG9wU2l6ZSA9IHBhZGRpbmcudG9wIHx8IHBhZGRpbmcudmVydGljYWw7XG4gIGNvbnN0IGJvdHRvbVNpemUgPSBwYWRkaW5nLmJvdHRvbSB8fCBwYWRkaW5nLnZlcnRpY2FsO1xuICBjb25zdCByaWdodFNpemUgPSBwYWRkaW5nLnJpZ2h0IHx8IHBhZGRpbmcuaG9yaXpvbnRhbDtcbiAgY29uc3QgbGVmdFNpemUgPSBwYWRkaW5nLmxlZnQgfHwgcGFkZGluZy5ob3Jpem9udGFsO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJ0b3BcIiwgdG9wU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwicmlnaHRcIiwgcmlnaHRTaXplKSxcbiAgICAgIHNpZGVDbGFzc05hbWUoXCJib3R0b21cIiwgYm90dG9tU2l6ZSksXG4gICAgICBzaWRlQ2xhc3NOYW1lKFwibGVmdFwiLCBsZWZ0U2l6ZSksXG4gICAgXSxcblxuICAgICRwYWRkaW5nOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3Qgc2lkZUNsYXNzTmFtZSA9IChzaWRlOiBcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiLCBzaXplOiBUU2hpcnRTaXplIHwgdW5kZWZpbmVkKSA9PlxuICBzaXplID8gcGFkZGluZ1N0eWxlc1tgcGFkZGluZ19fJHtzaWRlfS0tJHtzaXplfWBdIDogdW5kZWZpbmVkO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzXCIsIGNzczogXCIucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0temVyb19fX2dxcWZaIHtcXG4gIHBhZGRpbmctdG9wOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5cyB7XFxuICBwYWRkaW5nLXRvcDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tM3hzX19fb2NjNE4ge1xcbiAgcGFkZGluZy10b3A6IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXh4c19fX043QnNsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14c19fX0wwVUREIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1zX19fa2xRZTIge1xcbiAgcGFkZGluZy10b3A6IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1tX19fY3RhNXQge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHEge1xcbiAgcGFkZGluZy10b3A6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14bF9fX1h2c3ZMIHtcXG4gIHBhZGRpbmctdG9wOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhsX19fMWtlb2Uge1xcbiAgcGFkZGluZy10b3A6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0zeGxfX19jVVBzOSB7XFxuICBwYWRkaW5nLXRvcDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTR4bF9fX3FpazJlIHtcXG4gIHBhZGRpbmctdG9wOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNXhsX19fczlrcFEge1xcbiAgcGFkZGluZy10b3A6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS02eGxfX19xYzNGWiB7XFxuICBwYWRkaW5nLXRvcDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTd4bF9fX3RhQy1QIHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tOHhsX19fTFdoanEge1xcbiAgcGFkZGluZy10b3A6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS05eGxfX19MMTNjcCB7XFxuICBwYWRkaW5nLXRvcDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5QyB7XFxuICBwYWRkaW5nLXRvcDogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTExeGxfX19IdHRTYyB7XFxuICBwYWRkaW5nLXRvcDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0temVyb19fXzZ2WWJUIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhzX19faGpPOEQge1xcbiAgcGFkZGluZy1yaWdodDogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3RyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4c19fX0ZuM09oIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHNfX19rcHNRUCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEViB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1tX19feEdkdHUge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbF9fX015eWM0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhsX19fLUdHakoge1xcbiAgcGFkZGluZy1yaWdodDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0teHhsX19fMHlORVoge1xcbiAgcGFkZGluZy1yaWdodDogMjhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tM3hsX19fYmJPUEMge1xcbiAgcGFkZGluZy1yaWdodDogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNHhsX19fdkFaRVUge1xcbiAgcGFkZGluZy1yaWdodDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNXhsX19fcHNOaGIge1xcbiAgcGFkZGluZy1yaWdodDogNDBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tNnhsX19fSnd3a1Ige1xcbiAgcGFkZGluZy1yaWdodDogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tN3hsX19fZ29tdzkge1xcbiAgcGFkZGluZy1yaWdodDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOHhsX19fVmh2Vloge1xcbiAgcGFkZGluZy1yaWdodDogNTJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tOXhsX19fNE9CTm4ge1xcbiAgcGFkZGluZy1yaWdodDogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tMTB4bF9fX2VPVUEzIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA2NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0temVyb19fX0ZTOTg0IHtcXG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMXB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tM3hzX19fZTVya1kge1xcbiAgcGFkZGluZy1ib3R0b206IDJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXh4c19fX3hRdlZ2IHtcXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14c19fX29jeWkwIHtcXG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1zX19fNkliblYge1xcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1tX19fZ3hCMk0ge1xcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzcge1xcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14bF9fX3RMQW96IHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhsX19fZzM1Qi0ge1xcbiAgcGFkZGluZy1ib3R0b206IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0zeGxfX19BejhraSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMzJweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTR4bF9fX2tiUy1SIHtcXG4gIHBhZGRpbmctYm90dG9tOiAzNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNXhsX19fd2psT28ge1xcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS02eGxfX19JRHhSTCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNDRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTd4bF9fX0hxRm1pIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tOHhsX19fdUxOZUIge1xcbiAgcGFkZGluZy1ib3R0b206IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS05eGxfX19rWGpmLSB7XFxuICBwYWRkaW5nLWJvdHRvbTogNTZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTExeGxfX19MUi1tcyB7XFxuICBwYWRkaW5nLWJvdHRvbTogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1kge1xcbiAgcGFkZGluZy1sZWZ0OiAwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNHhzX19fMDg5MDgge1xcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hzX19fZmVDMC0ge1xcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkoge1xcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS1zX19fa3NpZ3Ige1xcbiAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tbF9fX2tHZ3huIHtcXG4gIHBhZGRpbmctbGVmdDogMjBweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhYyB7XFxuICBwYWRkaW5nLWxlZnQ6IDI4cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmIge1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuIHtcXG4gIHBhZGRpbmctbGVmdDogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUEge1xcbiAgcGFkZGluZy1sZWZ0OiA0NHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoIHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OSB7XFxuICBwYWRkaW5nLWxlZnQ6IDUycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTAge1xcbiAgcGFkZGluZy1sZWZ0OiA1NnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTEweGxfX19Qd0RTViB7XFxuICBwYWRkaW5nLWxlZnQ6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tMTF4bF9fXzJIc3ZKIHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnAge1xcbiAgcGFkZGluZzogMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCIHtcXG4gIHBhZGRpbmc6IDFweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdSB7XFxuICBwYWRkaW5nOiAycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0oge1xcbiAgcGFkZGluZzogNHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhzX19fUXdoYUIge1xcbiAgcGFkZGluZzogOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLSB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYSB7XFxuICBwYWRkaW5nOiAxNnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMayB7XFxuICBwYWRkaW5nOiAyMHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXhsX19fY3VQYU4ge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSCB7XFxuICBwYWRkaW5nOiAyOHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTN4bF9fX2t2aXJUIHtcXG4gIHBhZGRpbmc6IDMycHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNHhsX19feTE3QTAge1xcbiAgcGFkZGluZzogMzZweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOSB7XFxuICBwYWRkaW5nOiA0MHB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTZ4bF9fXzJLQ21hIHtcXG4gIHBhZGRpbmc6IDQ0cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tN3hsX19fU3NJeG4ge1xcbiAgcGFkZGluZzogNDhweDtcXG59XFxuXFxuLnBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbSB7XFxuICBwYWRkaW5nOiA1MnB4O1xcbn1cXG5cXG4ucGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTl4bF9fX29WY0lnIHtcXG4gIHBhZGRpbmc6IDU2cHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTB4bF9fX2pLR2tuIHtcXG4gIHBhZGRpbmc6IDYwcHg7XFxufVxcblxcbi5wYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tMTF4bF9fX0FnSnJHIHtcXG4gIHBhZGRpbmc6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wicGFkZGluZ19fdG9wLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS16ZXJvX19fZ3FxZlpcIixcInBhZGRpbmdfX3RvcC0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS00eHNfX19ZLXk5c1wiLFwicGFkZGluZ19fdG9wLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4c19fX29jYzROXCIsXCJwYWRkaW5nX190b3AtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0teHhzX19fTjdCc2xcIixcInBhZGRpbmdfX3RvcC0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhzX19fTDBVRERcIixcInBhZGRpbmdfX3RvcC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tc19fX2tsUWUyXCIsXCJwYWRkaW5nX190b3AtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLW1fX19jdGE1dFwiLFwicGFkZGluZ19fdG9wLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS1sX19fTGctcHFcIixcInBhZGRpbmdfX3RvcC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLXhsX19fWHZzdkxcIixcInBhZGRpbmdfX3RvcC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS14eGxfX18xa2VvZVwiLFwicGFkZGluZ19fdG9wLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTN4bF9fX2NVUHM5XCIsXCJwYWRkaW5nX190b3AtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tNHhsX19fcWlrMmVcIixcInBhZGRpbmdfX3RvcC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS01eGxfX19zOWtwUVwiLFwicGFkZGluZ19fdG9wLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTZ4bF9fX3FjM0ZaXCIsXCJwYWRkaW5nX190b3AtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3RvcC0tN3hsX19fdGFDLVBcIixcInBhZGRpbmdfX3RvcC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS04eGxfX19MV2hqcVwiLFwicGFkZGluZ19fdG9wLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTl4bF9fX0wxM2NwXCIsXCJwYWRkaW5nX190b3AtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX190b3AtLTEweGxfX19JZGU5Q1wiLFwicGFkZGluZ19fdG9wLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fdG9wLS0xMXhsX19fSHR0U2NcIixcInBhZGRpbmdfX3JpZ2h0LS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXplcm9fX182dlliVFwiLFwicGFkZGluZ19fcmlnaHQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS00eHNfX19oak84RFwiLFwicGFkZGluZ19fcmlnaHQtLTN4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0zeHNfX19NWFI3R1wiLFwicGFkZGluZ19fcmlnaHQtLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14eHNfX19GbjNPaFwiLFwicGFkZGluZ19fcmlnaHQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXhzX19fa3BzUVBcIixcInBhZGRpbmdfX3JpZ2h0LS1zXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXNfX183ZUJEVlwiLFwicGFkZGluZ19fcmlnaHQtLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19yaWdodC0tbV9fX3hHZHR1XCIsXCJwYWRkaW5nX19yaWdodC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS1sX19fTXl5YzRcIixcInBhZGRpbmdfX3JpZ2h0LS14bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS14bF9fXy1HR2pKXCIsXCJwYWRkaW5nX19yaWdodC0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLXh4bF9fXzB5TkVaXCIsXCJwYWRkaW5nX19yaWdodC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTN4bF9fX2JiT1BDXCIsXCJwYWRkaW5nX19yaWdodC0tNHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTR4bF9fX3ZBWkVVXCIsXCJwYWRkaW5nX19yaWdodC0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTV4bF9fX3BzTmhiXCIsXCJwYWRkaW5nX19yaWdodC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTZ4bF9fX0p3d2tSXCIsXCJwYWRkaW5nX19yaWdodC0tN3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTd4bF9fX2dvbXc5XCIsXCJwYWRkaW5nX19yaWdodC0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTh4bF9fX1ZodlZaXCIsXCJwYWRkaW5nX19yaWdodC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTl4bF9fXzRPQk5uXCIsXCJwYWRkaW5nX19yaWdodC0tMTB4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX3JpZ2h0LS0xMHhsX19fZU9VQTNcIixcInBhZGRpbmdfX3JpZ2h0LS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fcmlnaHQtLTExeGxfX19JNzkyZ1wiLFwicGFkZGluZ19fYm90dG9tLS16ZXJvXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS16ZXJvX19fRlM5ODRcIixcInBhZGRpbmdfX2JvdHRvbS0tNHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS00eHNfX193aGkxeFwiLFwicGFkZGluZ19fYm90dG9tLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4c19fX2U1cmtZXCIsXCJwYWRkaW5nX19ib3R0b20tLXh4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0teHhzX19feFF2VnZcIixcInBhZGRpbmdfX2JvdHRvbS0teHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhzX19fb2N5aTBcIixcInBhZGRpbmdfX2JvdHRvbS0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tc19fXzZJYm5WXCIsXCJwYWRkaW5nX19ib3R0b20tLW1cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLW1fX19neEIyTVwiLFwicGFkZGluZ19fYm90dG9tLS1sXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS1sX19fY2JNbzdcIixcInBhZGRpbmdfX2JvdHRvbS0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLXhsX19fdExBb3pcIixcInBhZGRpbmdfX2JvdHRvbS0teHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS14eGxfX19nMzVCLVwiLFwicGFkZGluZ19fYm90dG9tLS0zeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTN4bF9fX0F6OGtpXCIsXCJwYWRkaW5nX19ib3R0b20tLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tNHhsX19fa2JTLVJcIixcInBhZGRpbmdfX2JvdHRvbS0tNXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS01eGxfX193amxPb1wiLFwicGFkZGluZ19fYm90dG9tLS02eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTZ4bF9fX0lEeFJMXCIsXCJwYWRkaW5nX19ib3R0b20tLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2JvdHRvbS0tN3hsX19fSHFGbWlcIixcInBhZGRpbmdfX2JvdHRvbS0tOHhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS04eGxfX191TE5lQlwiLFwicGFkZGluZ19fYm90dG9tLS05eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTl4bF9fX2tYamYtXCIsXCJwYWRkaW5nX19ib3R0b20tLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19ib3R0b20tLTEweGxfX19TSkNCeFwiLFwicGFkZGluZ19fYm90dG9tLS0xMXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fYm90dG9tLS0xMXhsX19fTFItbXNcIixcInBhZGRpbmdfX2xlZnQtLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS16ZXJvX19fT0NUY1lcIixcInBhZGRpbmdfX2xlZnQtLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4c19fXzA4OTA4XCIsXCJwYWRkaW5nX19sZWZ0LS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0zeHNfX19mZUMwLVwiLFwicGFkZGluZ19fbGVmdC0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHhzX19feE5iMkpcIixcInBhZGRpbmdfX2xlZnQtLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0teHNfX19kQmM2WFwiLFwicGFkZGluZ19fbGVmdC0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLXNfX19rc2lnclwiLFwicGFkZGluZ19fbGVmdC0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLW1fX19sYm1SbFwiLFwicGFkZGluZ19fbGVmdC0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLWxfX19rR2d4blwiLFwicGFkZGluZ19fbGVmdC0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14bF9fX1E5cE5JXCIsXCJwYWRkaW5nX19sZWZ0LS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS14eGxfX19rWDBhY1wiLFwicGFkZGluZ19fbGVmdC0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tM3hsX19fM1VuNmJcIixcInBhZGRpbmdfX2xlZnQtLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTR4bF9fX3puTzNuXCIsXCJwYWRkaW5nX19sZWZ0LS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS01eGxfX19SVEhzUFwiLFwicGFkZGluZ19fbGVmdC0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tNnhsX19faDVCRUFcIixcInBhZGRpbmdfX2xlZnQtLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmdfX2xlZnQtLTd4bF9fX3JUWmZoXCIsXCJwYWRkaW5nX19sZWZ0LS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS04eGxfX19uZE11OVwiLFwicGFkZGluZ19fbGVmdC0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZ19fbGVmdC0tOXhsX19fYjBHQTBcIixcInBhZGRpbmdfX2xlZnQtLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMHhsX19fUHdEU1ZcIixcInBhZGRpbmdfX2xlZnQtLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nX19sZWZ0LS0xMXhsX19fMkhzdkpcIixcInBhZGRpbmctLXplcm9cIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS16ZXJvX19faHdtZnBcIixcInBhZGRpbmctLTR4c1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4c19fX1FPVUtCXCIsXCJwYWRkaW5nLS0zeHNcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0zeHNfX19SczRJdVwiLFwicGFkZGluZy0teHhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHhzX19fTUlkQ0pcIixcInBhZGRpbmctLXhzXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0teHNfX19Rd2hhQlwiLFwicGFkZGluZy0tc1wiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLXNfX19CTEhlLVwiLFwicGFkZGluZy0tbVwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLW1fX19QZHRaYVwiLFwicGFkZGluZy0tbFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLWxfX19SVkRMa1wiLFwicGFkZGluZy0teGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14bF9fX2N1UGFOXCIsXCJwYWRkaW5nLS14eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS14eGxfX19IN1ZJSFwiLFwicGFkZGluZy0tM3hsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tM3hsX19fa3ZpclRcIixcInBhZGRpbmctLTR4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTR4bF9fX3kxN0EwXCIsXCJwYWRkaW5nLS01eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS01eGxfX185eW1JOVwiLFwicGFkZGluZy0tNnhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tNnhsX19fMktDbWFcIixcInBhZGRpbmctLTd4bFwiOlwicGFkZGluZy1tb2R1bGVfX3BhZGRpbmctLTd4bF9fX1NzSXhuXCIsXCJwYWRkaW5nLS04eGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS04eGxfX19zSFpwbVwiLFwicGFkZGluZy0tOXhsXCI6XCJwYWRkaW5nLW1vZHVsZV9fcGFkZGluZy0tOXhsX19fb1ZjSWdcIixcInBhZGRpbmctLTEweGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMHhsX19faktHa25cIixcInBhZGRpbmctLTExeGxcIjpcInBhZGRpbmctbW9kdWxlX19wYWRkaW5nLS0xMXhsX19fQWdKckdcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgYmFja2dyb3VuZENvbG9yU3R5bGVzIGZyb20gXCIuL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgQ29sb3IgfSBmcm9tIFwiLi4vX3NoYXJlZC9jb2xvcnNcIjtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yQWxpYXMgPSBrZXlvZiB0eXBlb2YgYWxpYXNUb05vbWluYWw7XG5leHBvcnQgdHlwZSBCYWNrZ3JvdW5kQ29sb3IgPSBDb2xvciB8IEJhY2tncm91bmRDb2xvckFsaWFzO1xuXG5leHBvcnQgdHlwZSAkQmFja2dyb3VuZENvbG9yUHJvcHMgPSB7XG4gIG5vcm1hbD86IEJhY2tncm91bmRDb2xvcjtcbiAgaG92ZXI/OiBCYWNrZ3JvdW5kQ29sb3I7XG4gIGZvY3VzPzogQmFja2dyb3VuZENvbG9yO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMgPSB7ICRiYWNrZ3JvdW5kQ29sb3I/OiBCYWNrZ3JvdW5kQ29sb3IgfCAkQmFja2dyb3VuZENvbG9yUHJvcHMgfTtcblxuY29uc3QgYWxpYXNUb05vbWluYWwgPSB7XG4gIGJhY2tncm91bmRQcmltYXJ5OiBcImdyZXk4MFwiLFxuICBiYWNrZ3JvdW5kU2Vjb25kYXJ5OiBcImdyZXkxMDBcIixcbiAgYmFja2dyb3VuZFByaW1hcnlEaW1tZWQ6IFwiZ3JleTgwQWxwaGE4NVwiLFxufSBhcyBjb25zdDtcblxuY29uc3QgaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyA9IChjb2xvcjogQmFja2dyb3VuZENvbG9yKTogY29sb3IgaXMgQmFja2dyb3VuZENvbG9yQWxpYXMgPT4gY29sb3IgaW4gYWxpYXNUb05vbWluYWw7XG5cbmV4cG9ydCBjb25zdCBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gPSBnZXRQbHVnaW48QmFja2dyb3VuZENvbG9yUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJGJhY2tncm91bmRDb2xvcjogY29sb3IgfSA9IHByb3BzO1xuICBjb25zdCB7IG5vcm1hbCwgaG92ZXIsIGZvY3VzIH0gPSB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCIgPyB7IG5vcm1hbDogY29sb3IgfSA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgPyAoaXNCYWNrZ3JvdW5kQ29sb3JBbGlhcyhub3JtYWwpID8gYWxpYXNUb05vbWluYWxbbm9ybWFsXSA6IG5vcm1hbCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGhvdmVyQ29sb3IgPSBob3ZlciA/IChpc0JhY2tncm91bmRDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZm9jdXNDb2xvciA9IGZvY3VzID8gKGlzQmFja2dyb3VuZENvbG9yQWxpYXMoZm9jdXMpID8gYWxpYXNUb05vbWluYWxbZm9jdXNdIDogZm9jdXMpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIG5vcm1hbENvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItLSR7bm9ybWFsQ29sb3J9YF0gOiB1bmRlZmluZWQsXG4gICAgICBob3ZlckNvbG9yID8gYmFja2dyb3VuZENvbG9yU3R5bGVzW2BiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLSR7aG92ZXJDb2xvcn1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGZvY3VzQ29sb3IgPyBiYWNrZ3JvdW5kQ29sb3JTdHlsZXNbYGJhY2tncm91bmRDb2xvci1mb2N1cy0tJHtmb2N1c0NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJGJhY2tncm91bmRDb2xvcjogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS10cmFuc3BhcmVudF9fX1ZkdC1ZIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk2MF9fX1BQQVNsIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NDBfX193RkJhbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyNV9fX1lFOFFmIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjBfX182MDBqUSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk3MF9fX1YtWkdMIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1wcmltYXJ5X19fT0huckwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1hY2NlbnRfX19kdDQ3ZiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NfX19XVVIzeSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLW5vdGljZV9fX2xWTlJkIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nX19fQXJWdmwge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50X19fMlVQM1kge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ1RpbnRfX19xd0YwOCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbFRpbnRfX19pSy1qbCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3IHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY29kZV9fX0VtLWJKIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0taW5oZXJpdF9fX215MlJxOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13aGl0ZV9fX3RlLWdwOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX18xRDJJajpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMDBfX18tSkh1Mjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MF9fX3otODVJOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZMzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTQwX19fM0EtZTY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMF9fXzctQ0ZqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTIwX19fb01BY0Q6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMF9fX2dSMTkzOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwQWxwaGE4NV9fX0Nkay0tOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVE6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzX19fRzMwVkg6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ub3RpY2VfX19qV0ZjQzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxfX19yNmJaSTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqOmhvdmVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fWGk2MkY6aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm86aG92ZXIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWxpbmtfX19YOUxGcTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZzpob3ZlciB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWluaGVyaXRfX19SSlBXSjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVfX194Rjh1Mzpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXg6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTAwX19feHQxeEw6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBfX19lMjhqajpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwX19fd3REd1Q6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MzBfX19aVnZENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1X19fQXNWNmY6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MTBfX19tYWl6Zjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwX19fdlJuTDI6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19WaHl1Tjpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXByaW1hcnlfX183VHprdTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudF9fX210REdPOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjE6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdfX19xbG4ydTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsX19fUGdESTU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRfX19jcS1ENTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fX2VKOU5oOmZvY3VzIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1saW5rX19fVGxSUlk6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5iYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jb2RlX19fZmE2NVU6Zm9jdXMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYmFja2dyb3VuZENvbG9yLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1pbmhlcml0X19fTi1EdFlcIixcImJhY2tncm91bmRDb2xvci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXdoaXRlX19fMThmeHVcIixcImJhY2tncm91bmRDb2xvci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLXRyYW5zcGFyZW50X19fVmR0LVlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwMF9fX1BSelV0XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTgwX19fYWJ5dHVcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NjBfX19QUEFTbFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXk0MF9fX3dGQmFsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTMwX19fLS04TVRcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5MjVfX19ZRThRZlwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWdyZXkyMF9fXzYwMGpRXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tZ3JleTEwX19fSVNzYzlcIixcImJhY2tncm91bmRDb2xvci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5NzBfX19WLVpHTFwiLFwiYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1ncmV5ODBBbHBoYTg1X19fN29UWDNcIixcImJhY2tncm91bmRDb2xvci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tcHJpbWFyeV9fX09IbnJMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tYWNjZW50X19fZHQ0N2ZcIixcImJhY2tncm91bmRDb2xvci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tc3VjY2Vzc19fX1dVUjN5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbm90aWNlX19fbFZOUmRcIixcImJhY2tncm91bmRDb2xvci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0td2FybmluZ19fX0FyVnZsXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1jcml0aWNhbF9fX3AtV2I5XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS1zdWNjZXNzVGludF9fXzJVUDNZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLS13YXJuaW5nVGludF9fX3F3RjA4XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tY3JpdGljYWxUaW50X19faUstamxcIixcImJhY2tncm91bmRDb2xvci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci0tbGlua19fX2o0Umo3XCIsXCJiYWNrZ3JvdW5kQ29sb3ItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItLWNvZGVfX19FbS1iSlwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1pbmhlcml0X19fbXkyUnFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdoaXRlX19fdGUtZ3BcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXRyYW5zcGFyZW50X19fMUQySWpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwMF9fXy1KSHUyXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTgwX19fei04NUlcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NjBfX19oVWJZM1wiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXk0MF9fXzNBLWU2XCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTMwX19fNy1DRmpcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjVfX19tSVQ4UVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkyMF9fX29NQWNEXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTEwX19fZ1IxOTNcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5NzBfX19rMkpLTVwiLFwiYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fQ2RrLS1cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tcHJpbWFyeV9fX3p0Z3pBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tYWNjZW50X19fQkFqVVFcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tc3VjY2Vzc19fX0czMFZIXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbm90aWNlX19faldGY0NcIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0td2FybmluZ19fX3ZuLUJLXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1jcml0aWNhbF9fX3I2YlpJXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fXzg4TERqXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWhvdmVyLS13YXJuaW5nVGludF9fX1hpNjJGXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVjBxMm9cIixcImJhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1ob3Zlci0tbGlua19fX1g5TEZxXCIsXCJiYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItaG92ZXItLWNvZGVfX19sSENJZ1wiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1pbmhlcml0X19fUkpQV0pcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2hpdGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdoaXRlX19feEY4dTNcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tdHJhbnNwYXJlbnRcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fdHFxLXhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwMF9fX3h0MXhMXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTgwX19fZTI4ampcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTYwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NjBfX193dER3VFwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NDBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXk0MF9fX0RESGtQXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTMwX19fWlZ2RDVcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTI1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjVfX19Bc1Y2ZlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5MjBcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkyMF9fX09MMFpZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTEwX19fbWFpemZcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tZ3JleTcwXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5NzBfX192Um5MMlwiLFwiYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1ncmV5ODBBbHBoYTg1X19fVmh5dU5cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tcHJpbWFyeV9fXzdUemt1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWFjY2VudFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tYWNjZW50X19fbXRER09cIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tc3VjY2Vzc19fX255M3psXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLW5vdGljZVwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbm90aWNlX19fb3ZGdjFcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0td2FybmluZ19fX3FsbjJ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1jcml0aWNhbF9fX1BnREk1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS1zdWNjZXNzVGludF9fX2NxLUQ1XCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLXdhcm5pbmdUaW50XCI6XCJiYWNrZ3JvdW5kLWNvbG9yLW1vZHVsZV9fYmFja2dyb3VuZENvbG9yLWZvY3VzLS13YXJuaW5nVGludF9fX2FIdGdBXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNyaXRpY2FsVGludFwiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tY3JpdGljYWxUaW50X19fZUo5TmhcIixcImJhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua1wiOlwiYmFja2dyb3VuZC1jb2xvci1tb2R1bGVfX2JhY2tncm91bmRDb2xvci1mb2N1cy0tbGlua19fX1RsUlJZXCIsXCJiYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVcIjpcImJhY2tncm91bmQtY29sb3ItbW9kdWxlX19iYWNrZ3JvdW5kQ29sb3ItZm9jdXMtLWNvZGVfX19mYTY1VVwifTsiLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IENvbG9yIH0gZnJvbSBcIi4uL19zaGFyZWQvY29sb3JzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlcldpZHRoIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHR5cGUgQ29ybmVyU3R5bGVzLCBnZXRDb3JuZXJTdHlsZXMgfSBmcm9tIFwiLi9nZXQtY29ybmVyLXN0eWxlc1wiO1xuaW1wb3J0IHsgZ2V0U2lkZVN0eWxlcywgdHlwZSBTaWRlU3R5bGVzIH0gZnJvbSBcIi4vZ2V0LXNpZGUtc3R5bGVzXCI7XG5pbXBvcnQgeyBjb21wYWN0IH0gZnJvbSBcImxvZGFzaC9mcFwiO1xuXG5leHBvcnQgdHlwZSBCb3JkZXJDb2xvckFsaWFzID0ga2V5b2YgdHlwZW9mIGFsaWFzVG9Ob21pbmFsO1xuZXhwb3J0IHR5cGUgQm9yZGVyQ29sb3IgPSBDb2xvciB8IEJvcmRlckNvbG9yQWxpYXM7XG5cbmNvbnN0IGFsaWFzVG9Ob21pbmFsID0geyBib3JkZXJQcmltYXJ5OiBcImdyZXk2MFwiIH0gYXMgY29uc3Q7XG5cbmNvbnN0IGlzQm9yZGVyQ29sb3JBbGlhcyA9IChjb2xvcjogQm9yZGVyQ29sb3IpOiBjb2xvciBpcyBCb3JkZXJDb2xvckFsaWFzID0+IGNvbG9yIGluIGFsaWFzVG9Ob21pbmFsO1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyQ29sb3JQcm9wcyA9IHtcbiAgcmVhZG9ubHkgbm9ybWFsPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGhvdmVyPzogQm9yZGVyQ29sb3I7XG4gIHJlYWRvbmx5IGRpc2FibGVkPzogQm9yZGVyQ29sb3I7XG59O1xuXG5leHBvcnQgdHlwZSAkQm9yZGVyUHJvcHMgPSB7XG4gIGNvbG9yPzogQm9yZGVyQ29sb3IgfCAkQm9yZGVyQ29sb3JQcm9wcztcbiAgd2lkdGg/OiBCb3JkZXJXaWR0aCB8IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMZWF2ZSB0aGUgbGFzdCBvZiB0aGUgZWxlbWVudCdzIHNpYmxpbmdzIHdpdGhvdXQgdGhlIGJvcmRlciwgc28gdGhhdCBhIHN0YWNrXG4gICAqIG9mIGJvcmRlcmVkIHJvd3MgcmVhZHMgYXMgcm93cyBzZXBhcmF0ZWQgZnJvbSBlYWNoIG90aGVyIHJhdGhlciB0aGFuIGZyYW1lZC5cbiAgICovXG4gIGV4Y2VwdExhc3Q/OiBib29sZWFuO1xufSAmIFNpZGVTdHlsZXMgJlxuICBDb3JuZXJTdHlsZXM7XG5cbmV4cG9ydCB0eXBlIEJvcmRlclBsdWdpblByb3BzID0geyAkYm9yZGVyPzogJEJvcmRlclByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBib3JkZXJQbHVnaW4gPSBnZXRQbHVnaW48Qm9yZGVyUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJvcmRlcikge1xuICAgIHJldHVybiB7ICRib3JkZXI6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgZ2V0Q29ybmVyU3R5bGVzKHByb3BzLiRib3JkZXIpLCBnZXRCb3JkZXJTdHlsZXMocHJvcHMuJGJvcmRlcildLFxuICAgICRib3JkZXI6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBnZXRCb3JkZXJTdHlsZXMgPSAoeyB3aWR0aCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wLCBjb2xvciwgZXhjZXB0TGFzdCB9OiAkQm9yZGVyUHJvcHMpID0+IHtcbiAgY29uc3QgYm9yZGVyV2lkdGggPSB3aWR0aCA9PT0gdHJ1ZSB8fCAod2lkdGggPT09IHVuZGVmaW5lZCAmJiBjb2xvcikgPyBcInh4c1wiIDogd2lkdGg7XG4gIGNvbnN0IHsgbm9ybWFsLCBob3ZlciwgZGlzYWJsZWQgfSA9XG4gICAgYm9yZGVyV2lkdGggJiYgY29sb3IgPT09IHVuZGVmaW5lZFxuICAgICAgPyB7IG5vcm1hbDogXCJib3JkZXJQcmltYXJ5XCIgYXMgY29uc3QgfVxuICAgICAgOiB0eXBlb2YgY29sb3IgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyB7IG5vcm1hbDogY29sb3IgfVxuICAgICAgICA6IChjb2xvciA/PyB7fSk7XG5cbiAgY29uc3Qgbm9ybWFsQ29sb3IgPSBub3JtYWwgJiYgaXNCb3JkZXJDb2xvckFsaWFzKG5vcm1hbCkgPyBhbGlhc1RvTm9taW5hbFtub3JtYWxdIDogbm9ybWFsO1xuICBjb25zdCBob3ZlckNvbG9yID0gaG92ZXIgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGhvdmVyKSA/IGFsaWFzVG9Ob21pbmFsW2hvdmVyXSA6IGhvdmVyO1xuICBjb25zdCBkaXNhYmxlZENvbG9yID0gZGlzYWJsZWQgJiYgaXNCb3JkZXJDb2xvckFsaWFzKGRpc2FibGVkKSA/IGFsaWFzVG9Ob21pbmFsW2Rpc2FibGVkXSA6IGRpc2FibGVkO1xuXG4gIGNvbnN0IHN0eWxlQ2xhc3NlcyA9IGNvbXBhY3QoW1xuICAgIGJvcmRlcldpZHRoID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3dpZHRoLS0ke2JvcmRlcldpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIG5vcm1hbENvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX2NvbG9yLS0ke25vcm1hbENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIGhvdmVyQ29sb3IgPyBib3JkZXJTdHlsZXNbYGJvcmRlcl9fY29sb3ItLSR7aG92ZXJDb2xvcn0tLWhvdmVyYF0gOiB1bmRlZmluZWQsXG4gICAgZGlzYWJsZWRDb2xvciA/IGJvcmRlclN0eWxlc1tgYm9yZGVyX19jb2xvci0tJHtkaXNhYmxlZENvbG9yfS0tZGlzYWJsZWRgXSA6IHVuZGVmaW5lZCxcbiAgICAuLi5nZXRTaWRlU3R5bGVzKHsgbGVmdCwgcmlnaHQsIGJvdHRvbSwgdG9wIH0pLFxuICAgIGV4Y2VwdExhc3QgPyBib3JkZXJTdHlsZXNbXCJib3JkZXItLWV4Y2VwdC1sYXN0XCJdIDogdW5kZWZpbmVkLFxuICBdKTtcblxuICByZXR1cm4gW3N0eWxlQ2xhc3Nlcywgc3R5bGVDbGFzc2VzLmxlbmd0aCA+IDAgJiYgYm9yZGVyU3R5bGVzW1wiYm9yZGVyX19zdHlsZS0tc29saWRcIl1dO1xufTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2JvcmRlci9ib3JkZXIubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3N0eWxlLS1zb2xpZF9fXzFReTFKIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDIHtcXG4gIGJvcmRlci1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1zX19fdmxtdWwge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1fX19Fb0h2aiB7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbWxfX19rc0tQZSB7XFxuICBib3JkZXItcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54IHtcXG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tNTBfX19FYzVjYyB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tZnVsbF9fX2YwT2tMIHtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXplcm9fX191TGNPMiB7XFxuICBib3JkZXItd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5IHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSSB7XFxuICBib3JkZXItd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXNfX194OU5VaiB7XFxuICBib3JkZXItd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLW1fX19DRjhDRSB7XFxuICBib3JkZXItd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NSB7XFxuICBib3JkZXItd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE4ge1xcbiAgYm9yZGVyLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS14eGxfX18tZHJnUCB7XFxuICBib3JkZXItd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS0zeGxfX19kcW1pRiB7XFxuICBib3JkZXItd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS00eGxfX19iRUw5MCB7XFxuICBib3JkZXItd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS01eGxfX196ajFWWCB7XFxuICBib3JkZXItd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0X19fRTJNU3Mge1xcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJfX19XeW5CUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlX19fZ1Qyb2cge1xcbiAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdoaXRlLS1ob3Zlcl9fX1FkcFZiOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYSzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRfX19zd2FtSCB7XFxuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXo6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZF9fX3NpRHJ5OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwX19fdjVsODMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkX19fUWpLUlI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0taG92ZXJfX19DcHBsVjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWRpc2FibGVkX19fLThQS2w6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwX19fUDlKTUgge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk2MC0tZGlzYWJsZWRfX19nY1ZkRDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDBfX19mNlNEdyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NDAtLWhvdmVyX19fVUhkSXI6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0taG92ZXJfX19WTkRTUjpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWRpc2FibGVkX19fcHlKT3E6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1X19fc25WbmQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyNS0tZGlzYWJsZWRfX19vbVBKUDpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjBfX19nYm4zWiB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjAtLWhvdmVyX19feFJzd2M6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0taG92ZXJfX19VWmgtZDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWRpc2FibGVkX19fOVotT1Q6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwX19feXI5aU0ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk3MC0tZGlzYWJsZWRfX19Td1JRaTpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fNkRiZFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0E6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkX19feVA0Ty06ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXByaW1hcnlfX19nZnhCTyB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0taG92ZXJfX19wdUhEcDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzRzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50X19fZS1IbEQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWFjY2VudC0taG92ZXJfX19TMm9WRTpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1kaXNhYmxlZF9fX3kzQmJiOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzX19fWnVybFMge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk06aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkX19fVFAzUnY6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0taG92ZXJfX19NSlFVaDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWRpc2FibGVkX19feVZ1aTI6ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6IHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3Zlcl9fX21Bb1NCOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1kaXNhYmxlZF9fX1djQUstOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWwtLWhvdmVyX19fdU1GamE6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRfX19LOWdsNzpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUFNSTW4ge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZzpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NUaW50LS1kaXNhYmxlZF9fX1drT3BBOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRfX19JVFdtTSB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3Zlcl9fX0pjLU5uOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm86ZGlzYWJsZWQge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19PUXV4dCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbFRpbnQtLWhvdmVyX19fbFdhOUQ6aG92ZXIge1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0OmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWxpbmtfX19pWWVGayB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0taG92ZXJfX180eVJKUDpob3ZlciB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQjpkaXNhYmxlZCB7XFxuICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3Zlcl9fX1o1czVkOmhvdmVyIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jb2RlLS1kaXNhYmxlZF9fX3VEUVpNOmRpc2FibGVkIHtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS16ZXJvX19fVktScS0ge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHhzX19fOHppN1Qge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0teHNfX19STkVLMiB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1zX19fYVZuMVcge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogM3B4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLWxfX18tb2VQUCB7XFxuICBib3JkZXItdG9wLXdpZHRoOiA2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6IHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS0zeGxfX181eEstLSB7XFxuICBib3JkZXItdG9wLXdpZHRoOiAxMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tNHhsX19fcEVEdGMge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMTRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdoaXRlX19fdS11UWIge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogd2hpdGU7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudF9fX1BzTW14IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTgwX19fZUhqekYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBfX19IaXJnZiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTMwX19fQkJyQlEge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBfX18xbHVwUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwX19fRTJHZlQge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXYge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1wcmltYXJ5X19fNTExamsge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NfX183OS11aiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1gge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fUGEwTkcge1xcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tc3VjY2Vzc1RpbnQsIHJnYmEoNzYsIDE3NSwgODAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRfX18yZVVRVCB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19ISkFvMiB7XFxuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tbGlua19fX0tZRkdLIHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3IHtcXG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS16ZXJvX19fcmxESW4ge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4c19fXy16NzlhIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS1zX19fTXRZVDYge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAzcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLW1fX19TRDk3dyB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14bF9fXzA1bjAwIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eGxfX18tYUV3diB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTN4bF9fX0R1MFJvIHtcXG4gIGJvcmRlci1yaWdodC13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGsge1xcbiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS01eGxfX19TcDQ4ayB7XFxuICBib3JkZXItcmlnaHQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRfX185eVBlSSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmQge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB3aGl0ZTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwX19fYWFTbmEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWoge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NjBfX19vTlctVSB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MF9fXzJKd2k5IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHgge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjVfX19RYkZVSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMF9fX2VzTVFNIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NzBfX190a3pBSiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVfX19qNDVVTiB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1wcmltYXJ5X19fSElrMkEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tYWNjZW50X19fV1gyTFMge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tc3VjY2Vzc19fX1JJd2FIIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLW5vdGljZV9fX3ZVTGFUIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ19fX1kyaVBpIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsX19fWG02dFEge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fbTFudlkge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1zdWNjZXNzVGludCwgcmdiYSg3NiwgMTc1LCA4MCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEYge1xcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44IHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzIHtcXG4gIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNvZGVfX19VQ2RNMCB7XFxuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0temVyb19fX1BsQUJMIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXh4c19fX1pGbS1VIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLXhzX19faER6U3Mge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tc19fX0lXdC11IHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItcyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1sX19fMEh2bDEge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0cyB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tM3hsX19fR2pMWVUge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMTJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLTR4bF9fX0J2SldQIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQiB7XFxuICBib3JkZXItYm90dG9tLXdpZHRoOiAxNnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IGluaGVyaXQ7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZV9fX0RabWo2IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRfX19xa05nRiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eCB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXk4MF9fX3RuTWo1IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwbiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwX19fYzd1YzAge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkzMF9fX1k4NUM0IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwX19fdk8tbUoge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMF9fX0ZhLWh5IHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrViB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tcHJpbWFyeV9fX0otcjVKIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVMge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYnV0dG9uQWNjZW50QmFja2dyb3VuZCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzX19fZnhadlIge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcml0aWNhbCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1zdWNjZXNzVGludF9fX0FzdnRjIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50X19fNE9QZk8ge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0td2FybmluZ1RpbnQsIHJnYmEoMjU1LCAxNTIsIDAsIDAuMSkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxUaW50X19feDJVTFEge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWxpbmtfX19SMlhEdSB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYiB7XFxuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS0ge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcCB7XFxuICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXhzX19fejJYSUYge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDJweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmMge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDNweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1tX19fNGpQdTUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1sX19fbFBhUksge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14bF9fX01jLS1SIHtcXG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHhsX19fS1hPUloge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUUge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDEycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNHhsX19fY2RVbFcge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE0cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tNXhsX19fN2w5SDAge1xcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdF9fX3FkNGtEIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiBpbmhlcml0O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlX19fLXJ6czcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHdoaXRlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50X19fdVVVRXgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBfX19RRGJWMiB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwX19fN2hWeTgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTYwX19fcTlUczIge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTMwX19faXRVVXMge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTI1X19fejlFZ0Qge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTEwX19feXRaUE4ge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTcwX19fRW95Vlcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fXzJHSVcyIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHkge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWFjY2VudF9fXzFSUzByIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1idXR0b25BY2NlbnRCYWNrZ3JvdW5kKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXUge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLW5vdGljZV9fX21oSkFuIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdfX191VjV0VyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxfX19BNkppTyB7XFxuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY3JpdGljYWwpO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWoge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludF9fX043VWNUIHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS13YXJuaW5nVGludCwgcmdiYSgyNTUsIDE1MiwgMCwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY3JpdGljYWxUaW50X19fYS1mYUcge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tbGlua19fX213Ukt3IHtcXG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jb2RlX19fdUpXRkgge1xcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0ViB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNfX192bzVlbCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1fX19HSUVjdCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLW1sX19fbUVjRHYge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1sX19fcmctRDAge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHcyB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxfX181Wkl2OCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXplcm9fX19POGRFMyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TCB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1fX19TbDVSUiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGIge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sX19fNTJKb2wge1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBfX183LXdPRyB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNiB7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTAwMDAwMDAwMDAwMDAwMDAwMHB4O1xcbn1cXG5cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDBweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLXNfX196RklMMyB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1tX19fS05TY1Qge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxfX192dDd4MiB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA4cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1sX19fazhwaWsge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTZweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHUge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNTAlO1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tZnVsbF9fX2VIajZzIHtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwMDAwMDAwMDAwMDAwMDAwMDBweDtcXG59XFxuXFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLXplcm9fX19QMVl0dyB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwcHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGUge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMnB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbV9fXzNMUlIwIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHcge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xcbn1cXG4uYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0tbF9fXzNzMkNKIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDE2cHg7XFxufVxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS01MF9fX3dOWXdRIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDUwJTtcXG59XFxuLmJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUiB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMDAwMDAwMDAwMDAwMDAwMDAwcHg7XFxufVxcblxcbi5ib3JkZXItbW9kdWxlX19ib3JkZXItLWV4Y2VwdC1sYXN0X19fMjJZc0I6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYm9yZGVyX19zdHlsZS0tc29saWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fc3R5bGUtLXNvbGlkX19fMVF5MUpcIixcImJvcmRlcl9fcmFkaXVzLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0temVyb19fXy1rN1VDXCIsXCJib3JkZXJfX3JhZGl1cy0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLXNfX192bG11bFwiLFwiYm9yZGVyX19yYWRpdXMtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS1tX19fRW9IdmpcIixcImJvcmRlcl9fcmFkaXVzLS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLW1sX19fa3NLUGVcIixcImJvcmRlcl9fcmFkaXVzLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3JhZGl1cy0tbF9fXy01NG54XCIsXCJib3JkZXJfX3JhZGl1cy0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fcmFkaXVzLS01MF9fX0VjNWNjXCIsXCJib3JkZXJfX3JhZGl1cy0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19yYWRpdXMtLWZ1bGxfX19mME9rTFwiLFwiYm9yZGVyX193aWR0aC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0temVyb19fX3VMY08yXCIsXCJib3JkZXJfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXh4c19fX0owdFo5XCIsXCJib3JkZXJfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHNfX19VUmNrSVwiLFwiYm9yZGVyX193aWR0aC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tc19fX3g5TlVqXCIsXCJib3JkZXJfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX3dpZHRoLS1tX19fQ0Y4Q0VcIixcImJvcmRlcl9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLWxfX19Zb0I2NVwiLFwiYm9yZGVyX193aWR0aC0teGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fd2lkdGgtLXhsX19fQkNMbE5cIixcImJvcmRlcl9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0teHhsX19fLWRyZ1BcIixcImJvcmRlcl9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tM3hsX19fZHFtaUZcIixcImJvcmRlcl9fd2lkdGgtLTR4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNHhsX19fYkVMOTBcIixcImJvcmRlcl9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX193aWR0aC0tNXhsX19femoxVlhcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXRfX19FMk1Tc1wiLFwiYm9yZGVyX19jb2xvci0taW5oZXJpdC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWluaGVyaXQtLWhvdmVyX19fV3luQlBcIixcImJvcmRlcl9fY29sb3ItLWluaGVyaXQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1pbmhlcml0LS1kaXNhYmxlZF9fX3EtdHNFXCIsXCJib3JkZXJfX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2hpdGVfX19nVDJvZ1wiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0taG92ZXJfX19RZHBWYlwiLFwiYm9yZGVyX19jb2xvci0td2hpdGUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS13aGl0ZS0tZGlzYWJsZWRfX19peVRYS1wiLFwiYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50X19fc3dhbUhcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWhvdmVyX19falVaLXpcIixcImJvcmRlcl9fY29sb3ItLXRyYW5zcGFyZW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tdHJhbnNwYXJlbnQtLWRpc2FibGVkX19fc2lEcnlcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDBfX192NWw4M1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTEwMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWhvdmVyX19fSjEtT1FcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMDAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAwLS1kaXNhYmxlZF9fX1FqS1JSXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MF9fX2txNWFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODAtLWhvdmVyX19fQ3BwbFZcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MC0tZGlzYWJsZWRfX18tOFBLbFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjBfX19QOUpNSFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTYwLS1ob3Zlcl9fX0FaaWNHXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NjAtLWRpc2FibGVkX19fZ2NWZERcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwX19fZjZTRHdcIixcImJvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk0MC0taG92ZXJfX19VSGRJclwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTQwLS1kaXNhYmxlZF9fXzRlRGtDXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMF9fX2ZxYnR1XCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MzAtLWhvdmVyX19fVk5EU1JcIixcImJvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkzMC0tZGlzYWJsZWRfX19weUpPcVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjVfX19zblZuZFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTI1LS1ob3Zlcl9fX25kcmZZXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MjUtLWRpc2FibGVkX19fb21QSlBcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwX19fZ2JuM1pcIixcImJvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkyMC0taG92ZXJfX194UnN3Y1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTIwLS1kaXNhYmxlZF9fX1NWZUFUXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMF9fX1pVNUdhXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5MTAtLWhvdmVyX19fVVpoLWRcIixcImJvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXkxMC0tZGlzYWJsZWRfX185Wi1PVFwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzBfX195cjlpTVwiLFwiYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tZ3JleTcwLS1ob3Zlcl9fX2w5WVRkXCIsXCJib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5NzAtLWRpc2FibGVkX19fU3dSUWlcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODVfX182RGJkU1wiLFwiYm9yZGVyX19jb2xvci0tZ3JleTgwQWxwaGE4NS0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWhvdmVyX19feFNrd0FcIixcImJvcmRlcl9fY29sb3ItLWdyZXk4MEFscGhhODUtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ncmV5ODBBbHBoYTg1LS1kaXNhYmxlZF9fX3lQNE8tXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5X19fZ2Z4Qk9cIixcImJvcmRlcl9fY29sb3ItLXByaW1hcnktLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1ob3Zlcl9fX3B1SERwXCIsXCJib3JkZXJfX2NvbG9yLS1wcmltYXJ5LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tcHJpbWFyeS0tZGlzYWJsZWRfX19INUZzR1wiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnRfX19lLUhsRFwiLFwiYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tYWNjZW50LS1ob3Zlcl9fX1Myb1ZFXCIsXCJib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1hY2NlbnQtLWRpc2FibGVkX19feTNCYmJcIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3NfX19adXJsU1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzcy0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWhvdmVyX19fV3ktMk1cIixcImJvcmRlcl9fY29sb3ItLXN1Y2Nlc3MtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzLS1kaXNhYmxlZF9fX1RQM1J2XCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZV9fX1p3UXZUXCIsXCJib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1ub3RpY2UtLWhvdmVyX19fTUpRVWhcIixcImJvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLW5vdGljZS0tZGlzYWJsZWRfX195VnVpMlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ19fX0xLNkF6XCIsXCJib3JkZXJfX2NvbG9yLS13YXJuaW5nLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZy0taG92ZXJfX19tQW9TQlwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZy0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmctLWRpc2FibGVkX19fV2NBSy1cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1jcml0aWNhbF9fX0dUWXoxXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1ob3Zlcl9fX3VNRmphXCIsXCJib3JkZXJfX2NvbG9yLS1jcml0aWNhbC0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsLS1kaXNhYmxlZF9fX0s5Z2w3XCIsXCJib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QU1JNblwiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0taG92ZXJfX19VZkpQZ1wiLFwiYm9yZGVyX19jb2xvci0tc3VjY2Vzc1RpbnQtLWRpc2FibGVkXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1zdWNjZXNzVGludC0tZGlzYWJsZWRfX19Xa09wQVwiLFwiYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50X19fSVRXbU1cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWhvdmVyX19fSmMtTm5cIixcImJvcmRlcl9fY29sb3ItLXdhcm5pbmdUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0td2FybmluZ1RpbnQtLWRpc2FibGVkX19fdXF6Qm9cIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50X19fT1F1eHRcIixcImJvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNyaXRpY2FsVGludC0taG92ZXJfX19sV2E5RFwiLFwiYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY3JpdGljYWxUaW50LS1kaXNhYmxlZF9fX2xZaGg0XCIsXCJib3JkZXJfX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rX19faVllRmtcIixcImJvcmRlcl9fY29sb3ItLWxpbmstLWhvdmVyXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJfX2NvbG9yLS1saW5rLS1ob3Zlcl9fXzR5UkpQXCIsXCJib3JkZXJfX2NvbG9yLS1saW5rLS1kaXNhYmxlZFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tbGluay0tZGlzYWJsZWRfX18wazlkQlwiLFwiYm9yZGVyX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZV9fXzhPc0ZpXCIsXCJib3JkZXJfX2NvbG9yLS1jb2RlLS1ob3ZlclwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyX19jb2xvci0tY29kZS0taG92ZXJfX19aNXM1ZFwiLFwiYm9yZGVyX19jb2xvci0tY29kZS0tZGlzYWJsZWRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlcl9fY29sb3ItLWNvZGUtLWRpc2FibGVkX19fdURRWk1cIixcImJvcmRlclRvcF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXplcm9fX19WS1JxLVwiLFwiYm9yZGVyVG9wX193aWR0aC0teHhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14eHNfX184emk3VFwiLFwiYm9yZGVyVG9wX193aWR0aC0teHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXhzX19fUk5FSzJcIixcImJvcmRlclRvcF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXNfX19hVm4xV1wiLFwiYm9yZGVyVG9wX193aWR0aC0tbVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX193aWR0aC0tbV9fX0I2MTRqXCIsXCJib3JkZXJUb3BfX3dpZHRoLS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS1sX19fLW9lUFBcIixcImJvcmRlclRvcF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX3dpZHRoLS14bF9fX1pKYzZJXCIsXCJib3JkZXJUb3BfX3dpZHRoLS14eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLXh4bF9fX01uckh6XCIsXCJib3JkZXJUb3BfX3dpZHRoLS0zeGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTN4bF9fXzV4Sy0tXCIsXCJib3JkZXJUb3BfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTR4bF9fX3BFRHRjXCIsXCJib3JkZXJUb3BfX3dpZHRoLS01eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fd2lkdGgtLTV4bF9fX01GdmZoXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1pbmhlcml0X19fQ3IxbmFcIixcImJvcmRlclRvcF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13aGl0ZV9fX3UtdVFiXCIsXCJib3JkZXJUb3BfX2NvbG9yLS10cmFuc3BhcmVudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tdHJhbnNwYXJlbnRfX19Qc01teFwiLFwiYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tZ3JleTEwMF9fX1djOXRMXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk4MF9fX2VIanpGXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk2MF9fX3RTQXRlXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk0MF9fX0hpcmdmXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkzMF9fX0JCckJRXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyNV9fX1VIVlpYXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MjBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkyMF9fXzFsdXBQXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXkxMF9fX0UyR2ZUXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5NzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWdyZXk3MF9fX0RiQzJHXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19fa0I5LXZcIixcImJvcmRlclRvcF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXByaW1hcnlfX181MTFqa1wiLFwiYm9yZGVyVG9wX19jb2xvci0tYWNjZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1hY2NlbnRfX19JMUtCUFwiLFwiYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc19fXzc5LXVqXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLW5vdGljZV9fXy1kT0QwXCIsXCJib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS13YXJuaW5nX19fVDM1a1hcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJUb3BfX2NvbG9yLS1jcml0aWNhbF9fX3MtcXZrXCIsXCJib3JkZXJUb3BfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tc3VjY2Vzc1RpbnRfX19QYTBOR1wiLFwiYm9yZGVyVG9wX19jb2xvci0td2FybmluZ1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLXdhcm5pbmdUaW50X19fMmVVUVRcIixcImJvcmRlclRvcF9fY29sb3ItLWNyaXRpY2FsVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY3JpdGljYWxUaW50X19fSEpBbzJcIixcImJvcmRlclRvcF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclRvcF9fY29sb3ItLWxpbmtfX19LWUZHS1wiLFwiYm9yZGVyVG9wX19jb2xvci0tY29kZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyVG9wX19jb2xvci0tY29kZV9fX3ZLT0t3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0temVyb19fX3JsREluXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14eHNfX18tejc5YVwiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS14c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS14c19fX3daVmhqXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tc19fX010WVQ2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbV9fX1NEOTd3XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tbF9fX3FTSTBFXCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXhsX19fMDVuMDBcIixcImJvcmRlclJpZ2h0X193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLXh4bF9fXy1hRXd2XCIsXCJib3JkZXJSaWdodF9fd2lkdGgtLTN4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX3dpZHRoLS0zeGxfX19EdTBSb1wiLFwiYm9yZGVyUmlnaHRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X193aWR0aC0tNHhsX19fMlpDWGtcIixcImJvcmRlclJpZ2h0X193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fd2lkdGgtLTV4bF9fX1NwNDhrXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWluaGVyaXRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0taW5oZXJpdF9fXzl5UGVJXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdoaXRlX19faElPQmRcIixcImJvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tdHJhbnNwYXJlbnRfX19veElOSlwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTAwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkxMDBfX19hYVNuYVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwX19fNVBUNWpcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk2MF9fX29OVy1VXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk0MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5NDBfX18ySndpOVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTMwX19fVDZodHhcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyNV9fX1FiRlVKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXkyMFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MjBfX19lc01RTVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTEwX19fWjBRemZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWdyZXk3MF9fX3RrekFKXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2o0NVVOXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tcHJpbWFyeV9fX0hJazJBXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1hY2NlbnRfX19XWDJMU1wiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXN1Y2Nlc3NfX19SSXdhSFwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbm90aWNlX19fdlVMYVRcIixcImJvcmRlclJpZ2h0X19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS13YXJuaW5nX19fWTJpUGlcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxfX19YbTZ0UVwiLFwiYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmlnaHRfX2NvbG9yLS1zdWNjZXNzVGludF9fX20xbnZZXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLXdhcm5pbmdUaW50X19fbi1oeEZcIixcImJvcmRlclJpZ2h0X19jb2xvci0tY3JpdGljYWxUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSaWdodF9fY29sb3ItLWNyaXRpY2FsVGludF9fXzRWSk44XCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tbGlua19fX0gycmUzXCIsXCJib3JkZXJSaWdodF9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJpZ2h0X19jb2xvci0tY29kZV9fX1VDZE0wXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS16ZXJvX19fUGxBQkxcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXh4c1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teHhzX19fWkZtLVVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14c19fX2hEelNzXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS1zX19fSVd0LXVcIixcImJvcmRlckJvdHRvbV9fd2lkdGgtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fd2lkdGgtLW1fX19mMXItc1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0tbF9fXzBIdmwxXCIsXCJib3JkZXJCb3R0b21fX3dpZHRoLS14bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX193aWR0aC0teGxfX19zU1J0c1wiLFwiYm9yZGVyQm90dG9tX193aWR0aC0teHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS14eGxfX19OdUJnRlwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS0zeGxfX19HakxZVVwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNHhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS00eGxfX19CdkpXUFwiLFwiYm9yZGVyQm90dG9tX193aWR0aC0tNXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX3dpZHRoLS01eGxfX19yQ2VEQlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0taW5oZXJpdF9fXzczZHFWXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS13aGl0ZVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2hpdGVfX19EWm1qNlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tdHJhbnNwYXJlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXRyYW5zcGFyZW50X19fcWtOZ0ZcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWdyZXkxMDBfX19YMnY3eFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5ODBfX190bk1qNVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTYwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NjBfX19VT1cwblwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NDBfX19jN3VjMFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTMwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MzBfX19ZODVDNFwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTI1XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjVfX19rdjJObVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MjBfX192Ty1tSlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTEwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5MTBfX19GYS1oeVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTcwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ncmV5NzBfX19oLUNrVlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2lyeG9IXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1wcmltYXJ5X19fSi1yNUpcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWFjY2VudFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tYWNjZW50X19fb2M0UVNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NfX19meFp2UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tbm90aWNlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1ub3RpY2VfX19JSUE1UlwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0td2FybmluZ19fX2xzWkctXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyQm90dG9tX19jb2xvci0tY3JpdGljYWxfX19CN0w1LVwiLFwiYm9yZGVyQm90dG9tX19jb2xvci0tc3VjY2Vzc1RpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fQXN2dGNcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLXdhcm5pbmdUaW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS13YXJuaW5nVGludF9fXzRPUGZPXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3gyVUxRXCIsXCJib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJCb3R0b21fX2NvbG9yLS1saW5rX19fUjJYRHVcIixcImJvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckJvdHRvbV9fY29sb3ItLWNvZGVfX19FcjloYlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXplcm9cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS16ZXJvX19fMS1GTS1cIixcImJvcmRlckxlZnRfX3dpZHRoLS14eHNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS14eHNfX19vakFhcFwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhzXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teHNfX196MlhJRlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS1zX19fRHFYYmNcIixcImJvcmRlckxlZnRfX3dpZHRoLS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tbV9fXzRqUHU1XCIsXCJib3JkZXJMZWZ0X193aWR0aC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLWxfX19sUGFSS1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXhsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0teGxfX19NYy0tUlwiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLXh4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLXh4bF9fX0tYT1JaXCIsXCJib3JkZXJMZWZ0X193aWR0aC0tM3hsXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X193aWR0aC0tM3hsX19fNGZZSUVcIixcImJvcmRlckxlZnRfX3dpZHRoLS00eGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX3dpZHRoLS00eGxfX19jZFVsV1wiLFwiYm9yZGVyTGVmdF9fd2lkdGgtLTV4bFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fd2lkdGgtLTV4bF9fXzdsOUgwXCIsXCJib3JkZXJMZWZ0X19jb2xvci0taW5oZXJpdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWluaGVyaXRfX19xZDRrRFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdoaXRlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0td2hpdGVfX18tcnpzN1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXRyYW5zcGFyZW50XCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tdHJhbnNwYXJlbnRfX191VVVFeFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkxMDBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTAwX19fUURiVjJcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5ODBfX183aFZ5OFwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk2MF9fX3E5VHMyXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTQwX19feUlyMEpcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MzBfX19pdFVVc1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXkyNV9fX3o5RWdEXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tZ3JleTIwX19fSHFySm5cIixcImJvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ncmV5MTBfX195dFpQTlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk3MF9fX0VveVZXXCIsXCJib3JkZXJMZWZ0X19jb2xvci0tZ3JleTgwQWxwaGE4NVwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWdyZXk4MEFscGhhODVfX18yR0lXMlwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXByaW1hcnlcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1wcmltYXJ5X19fSU5DOHlcIixcImJvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1hY2NlbnRfX18xUlMwclwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzX19fMTJLaXVcIixcImJvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1ub3RpY2VfX19taEpBblwiLFwiYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nX19fdVY1dFdcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLWNyaXRpY2FsX19fQTZKaU9cIixcImJvcmRlckxlZnRfX2NvbG9yLS1zdWNjZXNzVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXN1Y2Nlc3NUaW50X19fZ09yWWpcIixcImJvcmRlckxlZnRfX2NvbG9yLS13YXJuaW5nVGludFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyTGVmdF9fY29sb3ItLXdhcm5pbmdUaW50X19fTjdVY1RcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19hLWZhR1wiLFwiYm9yZGVyTGVmdF9fY29sb3ItLWxpbmtcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlckxlZnRfX2NvbG9yLS1saW5rX19fbXdSS3dcIixcImJvcmRlckxlZnRfX2NvbG9yLS1jb2RlXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJMZWZ0X19jb2xvci0tY29kZV9fX3VKV0ZIXCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXplcm9fX19kbHN0VlwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLXNcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1zX19fdm81ZWxcIixcImJvcmRlclJhZGl1c1RvcFJpZ2h0LS1tXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tbV9fX0dJRWN0XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1tbF9fX21FY0R2XCIsXCJib3JkZXJSYWRpdXNUb3BSaWdodC0tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWxfX19yZy1EMFwiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLTUwXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BSaWdodC0tNTBfX19YbGxHc1wiLFwiYm9yZGVyUmFkaXVzVG9wUmlnaHQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcFJpZ2h0LS1mdWxsX19fNVpJdjhcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS16ZXJvXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0temVyb19fX084ZEUzXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tc1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLXNfX19ueEx0TFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tX19fU2w1UlJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1tbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLW1sX19fQW9RMGJcIixcImJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS1sXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tbF9fXzUySm9sXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS01MF9fXzctd09HXCIsXCJib3JkZXJSYWRpdXNCb3R0b21SaWdodC0tZnVsbFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tUmlnaHQtLWZ1bGxfX19MQmFQNlwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0temVyb19fX29RQmRtXCIsXCJib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNCb3R0b21MZWZ0LS1zX19fekZJTDNcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1fX19LTlNjVFwiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLW1sX19fdnQ3eDJcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWxfX19rOHBpa1wiLFwiYm9yZGVyUmFkaXVzQm90dG9tTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLTUwX19fZjJYVHVcIixcImJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c0JvdHRvbUxlZnQtLWZ1bGxfX19lSGo2c1wiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb1wiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyUmFkaXVzVG9wTGVmdC0temVyb19fX1AxWXR3XCIsXCJib3JkZXJSYWRpdXNUb3BMZWZ0LS1zXCI6XCJib3JkZXItbW9kdWxlX19ib3JkZXJSYWRpdXNUb3BMZWZ0LS1zX19fSC1sWGVcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLW1cIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1fX18zTFJSMFwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tbWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLW1sX19faWd2MHdcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWxfX18zczJDSlwiLFwiYm9yZGVyUmFkaXVzVG9wTGVmdC0tNTBcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLTUwX19fd05Zd1FcIixcImJvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxcIjpcImJvcmRlci1tb2R1bGVfX2JvcmRlclJhZGl1c1RvcExlZnQtLWZ1bGxfX19DZnotUlwiLFwiYm9yZGVyLS1leGNlcHQtbGFzdFwiOlwiYm9yZGVyLW1vZHVsZV9fYm9yZGVyLS1leGNlcHQtbGFzdF9fXzIyWXNCXCJ9OyIsICJpbXBvcnQgYm9yZGVyU3R5bGVzIGZyb20gXCIuL2JvcmRlci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBCb3JkZXJSYWRpdXNTaXplIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb3JuZXJTdHlsZXMge1xuICByYWRpdXM/OiBCb3JkZXJSYWRpdXNTaXplIHwgYm9vbGVhbjtcbiAgcmFkaXVzVG9wUmlnaHQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNCb3R0b21SaWdodD86IEJvcmRlclJhZGl1c1NpemU7XG4gIHJhZGl1c0JvdHRvbUxlZnQ/OiBCb3JkZXJSYWRpdXNTaXplO1xuICByYWRpdXNUb3BMZWZ0PzogQm9yZGVyUmFkaXVzU2l6ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENvcm5lclN0eWxlcyA9IChzdHlsZXM6IENvcm5lclN0eWxlcykgPT4ge1xuICBjb25zdCB7IHJhZGl1cywgcmFkaXVzVG9wUmlnaHQsIHJhZGl1c0JvdHRvbVJpZ2h0LCByYWRpdXNCb3R0b21MZWZ0LCByYWRpdXNUb3BMZWZ0IH0gPSBzdHlsZXM7XG5cbiAgaWYgKHJhZGl1cykge1xuICAgIGNvbnN0IGJvcmRlclJhZGl1c1NpemUgPSByYWRpdXMgPT09IHRydWUgPyBcInNcIiA6IHJhZGl1cztcblxuICAgIHJldHVybiBib3JkZXJSYWRpdXNTaXplID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJfX3JhZGl1cy0tJHtib3JkZXJSYWRpdXNTaXplfWBdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIFtcbiAgICByYWRpdXNUb3BSaWdodCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyUmFkaXVzVG9wUmlnaHQtLSR7cmFkaXVzVG9wUmlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgcmFkaXVzQm90dG9tUmlnaHQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbVJpZ2h0LS0ke3JhZGl1c0JvdHRvbVJpZ2h0fWBdIDogdW5kZWZpbmVkLFxuICAgIHJhZGl1c0JvdHRvbUxlZnQgPyBib3JkZXJTdHlsZXNbYGJvcmRlclJhZGl1c0JvdHRvbUxlZnQtLSR7cmFkaXVzQm90dG9tTGVmdH1gXSA6IHVuZGVmaW5lZCxcbiAgICByYWRpdXNUb3BMZWZ0ID8gYm9yZGVyU3R5bGVzW2Bib3JkZXJSYWRpdXNUb3BMZWZ0LS0ke3JhZGl1c1RvcExlZnR9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuIiwgImltcG9ydCBib3JkZXJTdHlsZXMgZnJvbSBcIi4vYm9yZGVyLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IEJvcmRlclNpZGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5pbXBvcnQgeyBjYXBpdGFsaXplIGFzIGxvZGFzaENhcGl0YWxpemUgfSBmcm9tIFwibG9kYXNoL2ZwXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lkZVN0eWxlcyB7XG4gIHRvcD86IEJvcmRlclNpZGU7XG4gIHJpZ2h0PzogQm9yZGVyU2lkZTtcbiAgYm90dG9tPzogQm9yZGVyU2lkZTtcbiAgbGVmdD86IEJvcmRlclNpZGU7XG59XG5cbmV4cG9ydCBjb25zdCBnZXRTaWRlU3R5bGVzID0gKHNpZGVzOiBTaWRlU3R5bGVzKSA9PiBbXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInRvcFwiLCBzaWRlcyksXG4gIC4uLmdldFNwZWNpZmljU2lkZVN0eWxlcyhcInJpZ2h0XCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwiYm90dG9tXCIsIHNpZGVzKSxcbiAgLi4uZ2V0U3BlY2lmaWNTaWRlU3R5bGVzKFwibGVmdFwiLCBzaWRlcyksXG5dO1xuXG5jb25zdCBnZXRTcGVjaWZpY1NpZGVTdHlsZXMgPSAoc2lkZToga2V5b2YgU2lkZVN0eWxlcywgc2lkZXM6IFNpZGVTdHlsZXMpID0+IHtcbiAgY29uc3QgeyB3aWR0aCwgY29sb3IgfSA9IHNpZGVzW3NpZGVdID8/IHt9O1xuICBjb25zdCBzaWRlTmFtZSA9IGNhcGl0YWxpemUoc2lkZSk7XG5cbiAgcmV0dXJuIFtcbiAgICB3aWR0aCA/IGJvcmRlclN0eWxlc1tgYm9yZGVyJHtzaWRlTmFtZX1fX3dpZHRoLS0ke3dpZHRofWBdIDogdW5kZWZpbmVkLFxuICAgIGNvbG9yID8gYm9yZGVyU3R5bGVzW2Bib3JkZXIke3NpZGVOYW1lfV9fY29sb3ItLSR7Y29sb3J9YF0gOiB1bmRlZmluZWQsXG4gIF07XG59O1xuXG5jb25zdCBjYXBpdGFsaXplID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHRhcmdldDogVCkgPT4gbG9kYXNoQ2FwaXRhbGl6ZSh0YXJnZXQpIGFzIENhcGl0YWxpemU8VD47XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBmb250U3R5bGVzIGZyb20gXCIuL2ZvbnQubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgRm9udFNpemUgPSBcInh4c1wiIHwgXCJ4c1wiIHwgXCJzXCIgfCBcIm1cIiB8IFwibFwiIHwgXCJ4bFwiIHwgXCJ4eGxcIiB8IFwiM3hsXCIgfCBcIjR4bFwiO1xuXG5leHBvcnQgdHlwZSBGb250Qm9sZCA9IFwiNjAwXCI7XG5cbmV4cG9ydCB0eXBlIEZvbnRMaW5lSGVpZ2h0ID0gXCJub25lXCIgfCBcInRpZ2h0XCIgfCBcIm5vcm1hbFwiIHwgXCJsb29zZVwiO1xuXG5leHBvcnQgdHlwZSBGb250UGx1Z2luUHJvcHMgPSB7XG4gICRmb250PzpcbiAgICB8IGJvb2xlYW5cbiAgICB8IHtcbiAgICAgICAgc2l6ZT86IEZvbnRTaXplO1xuICAgICAgICBpdGFsaWM/OiBib29sZWFuO1xuICAgICAgICBib2xkPzogYm9vbGVhbiB8IEZvbnRCb2xkO1xuICAgICAgICBsaW5lSGVpZ2h0PzogRm9udExpbmVIZWlnaHQ7XG4gICAgICAgIGZvcmNlV3JhcD86IGJvb2xlYW47XG4gICAgICAgIG5vV3JhcD86IGJvb2xlYW47XG4gICAgICAgIHVwcGVyY2FzZT86IGJvb2xlYW47XG4gICAgICAgIHVuZGVybGluZT86IGJvb2xlYW47XG4gICAgICAgIHRleHRPdmVyZmxvdz86IFwiY2xpcFwiIHwgXCJlbGxpcHNpc1wiIHwgXCJkZWZhdWx0XCI7XG4gICAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGZvbnRQbHVnaW4gPSBnZXRQbHVnaW48Rm9udFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRmb250KSB7XG4gICAgcmV0dXJuIHsgJGZvbnQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3Qge1xuICAgIHNpemUgPSB1bmRlZmluZWQsXG4gICAgYm9sZCA9IGZhbHNlLFxuICAgIGxpbmVIZWlnaHQgPSB1bmRlZmluZWQsXG4gICAgbm9XcmFwID0gZmFsc2UsXG4gICAgdXBwZXJjYXNlID0gZmFsc2UsXG4gICAgaXRhbGljID0gZmFsc2UsXG4gICAgZm9yY2VXcmFwID0gZmFsc2UsXG4gICAgdW5kZXJsaW5lID0gZmFsc2UsXG4gICAgdGV4dE92ZXJmbG93ID0gXCJkZWZhdWx0XCIsXG4gIH0gPSBwcm9wcy4kZm9udCA9PT0gdHJ1ZSA/IHt9IDogcHJvcHMuJGZvbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBwcm9wcy4kY2xhc3NOYW1lLFxuICAgICAgc2l6ZSA/IGZvbnRTdHlsZXNbYGZvbnRfX3NpemUtLSR7c2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGJvbGQgPT09IHRydWUgPyBmb250U3R5bGVzW1wiZm9udC0tYm9sZFwiXSA6IGJvbGQgPyBmb250U3R5bGVzW2Bmb250LS13ZWlnaHQtJHtib2xkfWBdIDogdW5kZWZpbmVkLFxuICAgICAgbGluZUhlaWdodCA/IGZvbnRTdHlsZXNbYGZvbnRfX2xpbmUtaGVpZ2h0LS0ke2xpbmVIZWlnaHR9YF0gOiB1bmRlZmluZWQsXG4gICAgICB0ZXh0T3ZlcmZsb3cgPT09IFwiZGVmYXVsdFwiID8gdW5kZWZpbmVkIDogZm9udFN0eWxlc1tgZm9udC0tdGV4dC1vdmVyZmxvdy0tJHt0ZXh0T3ZlcmZsb3d9YF0sXG4gICAgICB7XG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tbm8td3JhcFwiXV06IG5vV3JhcCxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS1mb3JjZS13cmFwXCJdXTogZm9yY2VXcmFwLFxuICAgICAgICBbZm9udFN0eWxlc1tcImZvbnQtLWl0YWxpY1wiXV06IGl0YWxpYyxcbiAgICAgICAgW2ZvbnRTdHlsZXNbXCJmb250LS11cHBlcmNhc2VcIl1dOiB1cHBlcmNhc2UsXG4gICAgICAgIFtmb250U3R5bGVzW1wiZm9udC0tdW5kZXJsaW5lXCJdXTogdW5kZXJsaW5lLFxuICAgICAgfSxcbiAgICBdLFxuICAgICRmb250OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLSB7XFxuICBmb250LXNpemU6IGNhbGMoMS4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5IHtcXG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtYWxsKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS1zX19fVGJuTWwge1xcbiAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLW1fX19mREpBaiB7XFxuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iaWcpO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLWxfX191S2N1ayB7XFxuICBmb250LXNpemU6IGNhbGMoMi4yNSAqIHZhcigtLXVuaXQpKTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19zaXplLS14bF9fX1JlaG9RIHtcXG4gIGZvbnQtc2l6ZTogY2FsYygyLjUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0teHhsX19fQ2dvS1Age1xcbiAgZm9udC1zaXplOiBjYWxjKDIuNzUgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tM3hsX19fc0NJZXoge1xcbiAgZm9udC1zaXplOiBjYWxjKDMgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2Uge1xcbiAgZm9udC1zaXplOiBjYWxjKDQgKiB2YXIoLS11bml0KSk7XFxufVxcbi5mb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5SyB7XFxuICBsaW5lLWhlaWdodDogMTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tdGlnaHRfX19yLUVCOSB7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxfX19ySjRWTiB7XFxuICBsaW5lLWhlaWdodDogMS41O1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtIHtcXG4gIGxpbmUtaGVpZ2h0OiAyO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWJvbGRfX19iamUtYiB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS13ZWlnaHQtNjAwX19fRWdkem0ge1xcbiAgZm9udC13ZWlnaHQ6IDYwMDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1uby13cmFwX19fcWJSUk8ge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS1mb3JjZS13cmFwX19fT0dDRnoge1xcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtbiB7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4uZm9udC1tb2R1bGVfX2ZvbnQtLWl0YWxpY19fX0pINFRaIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS11bmRlcmxpbmVfX19kNG9uTCB7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG59XFxuLmZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc19fX0hxZlgtIHtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5mb250LW1vZHVsZV9fZm9udC0tdGV4dC1vdmVyZmxvdy0tY2xpcF9fXzk2eEI5IHtcXG4gIHRleHQtb3ZlcmZsb3c6IGNsaXA7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJmb250X19zaXplLS14eHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14eHNfX19LSjJRLVwiLFwiZm9udF9fc2l6ZS0teHNcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS14c19fX3hFYVU5XCIsXCJmb250X19zaXplLS1zXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tc19fX1Ribk1sXCIsXCJmb250X19zaXplLS1tXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbV9fX2ZESkFqXCIsXCJmb250X19zaXplLS1sXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tbF9fX3VLY3VrXCIsXCJmb250X19zaXplLS14bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXhsX19fUmVob1FcIixcImZvbnRfX3NpemUtLXh4bFwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX3NpemUtLXh4bF9fX0Nnb0tQXCIsXCJmb250X19zaXplLS0zeGxcIjpcImZvbnQtbW9kdWxlX19mb250X19zaXplLS0zeGxfX19zQ0llelwiLFwiZm9udF9fc2l6ZS0tNHhsXCI6XCJmb250LW1vZHVsZV9fZm9udF9fc2l6ZS0tNHhsX19fQTVrc2VcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub25lXCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLW5vbmVfX18xc0k5S1wiLFwiZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0XCI6XCJmb250LW1vZHVsZV9fZm9udF9fbGluZS1oZWlnaHQtLXRpZ2h0X19fci1FQjlcIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1ub3JtYWxcIjpcImZvbnQtbW9kdWxlX19mb250X19saW5lLWhlaWdodC0tbm9ybWFsX19fcko0Vk5cIixcImZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnRfX2xpbmUtaGVpZ2h0LS1sb29zZV9fX2RwelMtXCIsXCJmb250LS1ib2xkXCI6XCJmb250LW1vZHVsZV9fZm9udC0tYm9sZF9fX2JqZS1iXCIsXCJmb250LS13ZWlnaHQtNjAwXCI6XCJmb250LW1vZHVsZV9fZm9udC0td2VpZ2h0LTYwMF9fX0VnZHptXCIsXCJmb250LS1uby13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tbm8td3JhcF9fX3FiUlJPXCIsXCJmb250LS1mb3JjZS13cmFwXCI6XCJmb250LW1vZHVsZV9fZm9udC0tZm9yY2Utd3JhcF9fX09HQ0Z6XCIsXCJmb250LS11cHBlcmNhc2VcIjpcImZvbnQtbW9kdWxlX19mb250LS11cHBlcmNhc2VfX192UVhtblwiLFwiZm9udC0taXRhbGljXCI6XCJmb250LW1vZHVsZV9fZm9udC0taXRhbGljX19fSkg0VFpcIixcImZvbnQtLXVuZGVybGluZVwiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXVuZGVybGluZV9fX2Q0b25MXCIsXCJmb250LS10ZXh0LW92ZXJmbG93LS1lbGxpcHNpc1wiOlwiZm9udC1tb2R1bGVfX2ZvbnQtLXRleHQtb3ZlcmZsb3ctLWVsbGlwc2lzX19fSHFmWC1cIixcImZvbnQtLXRleHQtb3ZlcmZsb3ctLWNsaXBcIjpcImZvbnQtbW9kdWxlX19mb250LS10ZXh0LW92ZXJmbG93LS1jbGlwX19fOTZ4QjlcIn07IiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IHR5cGUgQm94U2hhZG93UGx1Z2luUHJvcHMgPSB7XG4gICRib3hTaGFkb3c/OiBib29sZWFuIHwgXCJlbGV2YXRlZFwiIHwgXCJzdWJ0bGVcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBib3hTaGFkb3dQbHVnaW4gPSBnZXRQbHVnaW48Qm94U2hhZG93UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJGJveFNoYWRvdykge1xuICAgIHJldHVybiB7XG4gICAgICAkYm94U2hhZG93OiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHZhcmlhbnQgPSBwcm9wcy4kYm94U2hhZG93ID09PSB0cnVlID8gXCJlbGV2YXRlZFwiIDogcHJvcHMuJGJveFNoYWRvdztcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBzdHlsZXNbYGJveC1zaGFkb3ctLSR7dmFyaWFudH1gXV0sXG4gICAgJGJveFNoYWRvdzogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ib3gtc2hhZG93LW1vZHVsZV9fYm94LXNoYWRvdy0tZWxldmF0ZWRfX19qYWg3ZiB7XFxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjQpO1xcbn1cXG4uYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNIHtcXG4gIGJveC1zaGFkb3c6IDAgM3B4IDdweCByZ2JhKDAsIDAsIDAsIDAuMjI3NDUwOTgwNCksIDAgMC42cHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yMjc0NTA5ODA0KTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJib3gtc2hhZG93LS1lbGV2YXRlZFwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLWVsZXZhdGVkX19famFoN2ZcIixcImJveC1zaGFkb3ctLXN1YnRsZVwiOlwiYm94LXNoYWRvdy1tb2R1bGVfX2JveC1zaGFkb3ctLXN1YnRsZV9fX1ZvNnhNXCJ9OyIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9uby1wb2ludGVyLWV2ZW50cy5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcyA9IHsgJG5vUG9pbnRlckV2ZW50cz86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IG5vUG9pbnRlckV2ZW50c1BsdWdpbiA9IGdldFBsdWdpbjxOb1BvaW50ZXJFdmVudHNQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFtzdHlsZXNbXCJuby1wb2ludGVyLWV2ZW50c1wiXV06IHByb3BzLiRub1BvaW50ZXJFdmVudHMgfV0sXG4gICRub1BvaW50ZXJFdmVudHM6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIubm8tcG9pbnRlci1ldmVudHMtbW9kdWxlX19uby1wb2ludGVyLWV2ZW50c19fXzdtRjBiICoge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibm8tcG9pbnRlci1ldmVudHNcIjpcIm5vLXBvaW50ZXItZXZlbnRzLW1vZHVsZV9fbm8tcG9pbnRlci1ldmVudHNfX183bUYwYlwifTsiLCAiaW1wb3J0IHR5cGUgeyBQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcblxuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIjtcblxuLy8gU2ltcGxpZmllZCB0eXBlIHNpbmNlIFJlZkNhbGxiYWNrIGZyb20gXCJyZWFjdFwiIGNhdXNlcyBVTkRFRklORURfVk9JRF9PTkxZIGVycm9yXG4vLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQ29uZnVzaW5nVm9pZFR5cGU6IHZvaWQgdHlwaW5nIHJlcXVpcmVkXG50eXBlIFJlZkNhbGxiYWNrPFQ+ID0gKGluc3RhbmNlOiBUIHwgbnVsbCkgPT4gdW5kZWZpbmVkIHwgdm9pZCB8ICgoKSA9PiBhbnkpO1xuXG5leHBvcnQgdHlwZSBSZWZMaWtlPFQ+ID0gUmVmQ2FsbGJhY2s8VD4gfCBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQgfCBudWxsPiB8IFJlYWN0LlJlZk9iamVjdDxUPiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgJFJlZlByb3A8VD4gPSBSZWZMaWtlPFQ+IHwgJFJlZlByb3A8VD5bXTtcblxuZXhwb3J0IHR5cGUgUmVmUGx1Z2luUHJvcHM8VD4gPSB7XG4gICRyZWY/OiAkUmVmUHJvcDxUPjtcbiAgcmVmPzogUmVmTGlrZTxUPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlZlBsdWdpbjxUPiA9IFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPiwgdW5rbm93bj47XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZQbHVnaW48VCA9IEhUTUxFbGVtZW50PigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxSZWZQbHVnaW5Qcm9wczxUPj4oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyAkcmVmIH0gPSBwcm9wcztcbiAgICBjb25zdCBwcmV2UmVmcyA9IHVzZVJlZihuZXcgU2V0PFJlZkxpa2U8VD4+KCkpO1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpO1xuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IFdlIGRvIG5vdCB3YW50IHRvIHJ1biB0aGlzIG11bHRpcGxlIHRpbWVzXG4gICAgY29uc3QgcmVmID0gdXNlQ2FsbGJhY2soKGN1cnJlbnQ6IFQpID0+IHtcbiAgICAgIGNvbnN0IGZpcnN0UmVmcyA9IGZsYXR0ZW5SZWZzKCRyZWYpO1xuXG4gICAgICBmaXJzdFJlZnMuZm9yRWFjaChoYW5kbGVSZWZzRm9yKGN1cnJlbnQpKTtcbiAgICAgIHByZXZSZWZzLmN1cnJlbnQgPSBmaXJzdFJlZnM7XG4gICAgICBlbGVtZW50UmVmLmN1cnJlbnQgPSBjdXJyZW50O1xuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBwcmV2UmVmcy5jdXJyZW50LmZvckVhY2goaGFuZGxlUmVmc0ZvcjxUPihudWxsKSk7XG4gICAgICB9O1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBmaXJzdFJlbmRlciA9IHVzZVJlZih0cnVlKTtcblxuICAgIGlmICghZmlyc3RSZW5kZXIuY3VycmVudCkge1xuICAgICAgY29uc3QgY3VycmVudFJlZnMgPSBmbGF0dGVuUmVmcygkcmVmKTtcbiAgICAgIGNvbnN0IGFkZGVkUmVmcyA9IGN1cnJlbnRSZWZzLmRpZmZlcmVuY2UocHJldlJlZnMuY3VycmVudCk7XG4gICAgICBjb25zdCByZW1vdmVkUmVmcyA9IHByZXZSZWZzLmN1cnJlbnQuZGlmZmVyZW5jZShjdXJyZW50UmVmcyk7XG5cbiAgICAgIGFkZGVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4oZWxlbWVudFJlZi5jdXJyZW50KSk7XG4gICAgICByZW1vdmVkUmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3I8VD4obnVsbCkpO1xuICAgICAgcHJldlJlZnMuY3VycmVudCA9IGN1cnJlbnRSZWZzO1xuICAgIH1cblxuICAgIGZpcnN0UmVuZGVyLmN1cnJlbnQgPSBmYWxzZTtcblxuICAgIHJldHVybiB7XG4gICAgICByZWYsXG4gICAgICAkcmVmOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG59XG5cbmNvbnN0IGZsYXR0ZW5SZWZzID0gPFQsPihyZWZzOiAkUmVmUHJvcDxUPik6IFNldDxSZWZMaWtlPFQ+PiA9PlxuICBuZXcgU2V0KChbcmVmc10uZmxhdChJbmZpbml0eSBhcyAxKSBhcyBBcnJheTxOb25OdWxsYWJsZTxSZWZMaWtlPFQ+Pj4pLmZpbHRlcihpc0RlZmluZWQpKTtcblxuY29uc3QgaGFuZGxlUmVmc0ZvciA9XG4gIDxULD4odmFsdWU6IFQgfCBudWxsKSA9PlxuICAocmVmczogJFJlZlByb3A8VD4pID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzKSkge1xuICAgICAgcmVmcy5mb3JFYWNoKGhhbmRsZVJlZnNGb3IodmFsdWUpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWZzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJlZnModmFsdWUpO1xuICAgIH0gZWxzZSBpZiAocmVmcykge1xuICAgICAgKHJlZnMgYXMgTXV0YWJsZVJlZk9iamVjdDxUIHwgbnVsbD4pLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG4gIH07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjc3NOYW1lcywgdHlwZSBJQ2xhc3NOYW1lIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcblxuZXhwb3J0IHR5cGUgQ2xhc3NOYW1lUGx1Z2luUHJvcHMgPSB7ICRjbGFzc05hbWU/OiBJQ2xhc3NOYW1lOyBjbGFzc05hbWU/OiBzdHJpbmcgfTtcblxubGV0IHNob3dDbHV0dGVyID0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTmFtZVBsdWdpbiA9IGdldFBsdWdpbjxDbGFzc05hbWVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IGNsYXNzTmFtZSA9IGNzc05hbWVzKHByb3BzLmNsYXNzTmFtZSwgcHJvcHMuJGNsYXNzTmFtZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi4oY2xhc3NOYW1lID8geyBjbGFzc05hbWU6IHNob3dDbHV0dGVyID8gY2xhc3NOYW1lIDogcmVtb3ZlQ2x1dHRlcihjbGFzc05hbWUpIH0gOiB7fSksXG4gICAgJGNsYXNzTmFtZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG5cbmNvbnN0IHJlbW92ZUNsdXR0ZXIgPSAoY2xhc3NOYW1lOiBzdHJpbmcpID0+XG4gIGNsYXNzTmFtZS5yZXBsYWNlKC9fX18uKj8oPz1cXHN8JCkvZywgXCJcIikucmVwbGFjZSgvXFxiW2EtekEtWjAtOS1dKy1tb2R1bGVfXy9nLCBcIlwiKTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZyA9ICgpID0+IHtcbiAgc2hvd0NsdXR0ZXIgPSBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBzaG93Q3NzTW9kdWxlQ2x1dHRlckZvclByb2R1Y3Rpb24gPSAoKSA9PiB7XG4gIHNob3dDbHV0dGVyID0gdHJ1ZTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCByZWxhdGl2ZVN0eWxlcyBmcm9tIFwiLi9yZWxhdGl2ZS5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBSZWxhdGl2ZVBsdWdpblByb3BzID0geyAkcmVsYXRpdmU/OiBib29sZWFuOyAkZml4ZWQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCByZWxhdGl2ZVBsdWdpbiA9IGdldFBsdWdpbjxSZWxhdGl2ZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW1xuICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgeyBbcmVsYXRpdmVTdHlsZXMucmVsYXRpdmVdOiAhIXByb3BzLiRyZWxhdGl2ZSwgW3JlbGF0aXZlU3R5bGVzLmZpeGVkXTogISFwcm9wcy4kZml4ZWQgfSxcbiAgXSxcbiAgJGZpeGVkOiB1bmRlZmluZWQsXG4gICRyZWxhdGl2ZTogdW5kZWZpbmVkLFxufSkpO1xuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5yZWxhdGl2ZS1tb2R1bGVfX3JlbGF0aXZlX19fa3dNNXEge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4ucmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJyZWxhdGl2ZVwiOlwicmVsYXRpdmUtbW9kdWxlX19yZWxhdGl2ZV9fX2t3TTVxXCIsXCJmaXhlZFwiOlwicmVsYXRpdmUtbW9kdWxlX19maXhlZF9fX0NzWEhEXCJ9OyIsICJleHBvcnQgdHlwZSBEcmFnZ2FibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyYWdnYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIGl0ZW06IFQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcm9wcGFibGVQbHVnaW5Qcm9wczxUID0gYW55PiA9IHtcbiAgJGRyb3BwYWJsZT86IHtcbiAgICBjb250ZXh0OiBEcmFnZ2FibGVDb250ZXh0PFQ+O1xuICAgIG9uRHJvcDogKGl0ZW06IFQpID0+IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBEcmFnZ2FibGVDb250ZXh0PERyYWdnZWRJdGVtPiA9IHtcbiAgZHJhZ2dhYmxlOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IE5vbk51bGxhYmxlPERyYWdnYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltgJGRyYWdnYWJsZWBdPjtcbiAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+IE5vbk51bGxhYmxlPERyb3BwYWJsZVBsdWdpblByb3BzPERyYWdnZWRJdGVtPltcIiRkcm9wcGFibGVcIl0+O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERyYWdnYWJsZUNvbnRleHQgPSA8RHJhZ2dlZEl0ZW0+KCk6IERyYWdnYWJsZUNvbnRleHQ8RHJhZ2dlZEl0ZW0+ID0+IHtcbiAgY29uc3QgY29udGV4dCA9IHtcbiAgICBkcmFnZ2FibGU6IChpdGVtOiBEcmFnZ2VkSXRlbSkgPT4gKHtcbiAgICAgIGNvbnRleHQsXG4gICAgICBpdGVtLFxuICAgIH0pLFxuXG4gICAgZHJvcHBhYmxlOiAob25Ecm9wOiAoaXRlbTogRHJhZ2dlZEl0ZW0pID0+IHZvaWQpID0+ICh7XG4gICAgICBjb250ZXh0LFxuICAgICAgb25Ecm9wLFxuICAgIH0pLFxuICB9O1xuXG4gIHJldHVybiBjb250ZXh0O1xufTtcbiIsICJpbXBvcnQgeyBnZXRGZWF0dXJlIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IHsgcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL2ZlYXR1cmUtY29yZVwiO1xuaW1wb3J0IG1vZHVsZXNXaXRoSW5qZWN0YWJsZXMgZnJvbSBcIi4vKiovKi5pbmplY3RhYmxlLih0c3x0c3gpXCI7XG5pbXBvcnQgc3R5bGVzaGVldHMgZnJvbSBcIi4vKiovIShfKikuKHNjc3N8Y3NzKVwiO1xuXG5leHBvcnQgY29uc3QgZWxlbWVudENvbXBvbmVudEZlYXR1cmUgPSBnZXRGZWF0dXJlKHtcbiAgaWQ6IFwiZWxlbWVudC1jb21wb25lbnRcIixcbiAgcmVnaXN0ZXI6IChkaSkgPT4gcmVnaXN0ZXJJbmplY3RhYmxlc0Zyb21Nb2R1bGVzKGRpLCBbLi4ubW9kdWxlc1dpdGhJbmplY3RhYmxlcywgLi4uc3R5bGVzaGVldHNdKSxcbiAgLy8gTm8gZmVhdHVyZSBkZXBlbmRlbmNpZXM6IGEgZGVzaWduIHN5c3RlbSBldmVyeW9uZSBtYXkgaW5zdGFsbCBjYW5ub3QgZHJhZ1xuICAvLyBMZW5zIGZlYXR1cmVzIGludG8gdGhlIGNsb3N1cmUuIFRoZSBjbG9jayB0aGUgaG92ZXJhYmxlIHBsdWdpbiBuZWVkcyBpc1xuICAvLyBsb2NhbCwgYW5kIHRoZSBwbGF0Zm9ybSBpcyByZWFkIGRpcmVjdGx5LlxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGtleWJvYXJkIGNvbnZlbnRpb25zIG9mIG1hY09TIGFwcGx5LlxuICpcbiAqIFJlYWQgZnJvbSB0aGUgYnJvd3NlciByYXRoZXIgdGhhbiBmcm9tIGBwcm9jZXNzYCBvciB0aGUgdmFycyBmZWF0dXJlOiB0aGlzIGlzXG4gKiBhIHJlbmRlcmVyLW9ubHkgZGVzaWduIHN5c3RlbSwgaXQgbWF5IG5vdCBkZXBlbmQgb24gYSBmZWF0dXJlIHBhY2thZ2UsIGFuZFxuICogYHByb2Nlc3NgIGlzIG5vdCB0aGVyZSB0byByZWFkIG9uY2UgdGhlIHJlbmRlcmVyIHN0b3BzIHJ1bm5pbmcgd2l0aCBub2RlXG4gKiBpbnRlZ3JhdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IGlzTWFjSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiaXMtbWFjXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IHtcbiAgICBjb25zdCB7IHVzZXJBZ2VudERhdGEsIHBsYXRmb3JtLCB1c2VyQWdlbnQgfSA9IG5hdmlnYXRvciBhcyBOYXZpZ2F0b3IgJiB7XG4gICAgICByZWFkb25seSB1c2VyQWdlbnREYXRhPzogeyByZWFkb25seSBwbGF0Zm9ybT86IHN0cmluZyB9O1xuICAgIH07XG5cbiAgICByZXR1cm4gL21hYy9pLnRlc3QodXNlckFnZW50RGF0YT8ucGxhdGZvcm0gPz8gcGxhdGZvcm0gPz8gdXNlckFnZW50ID8/IFwiXCIpO1xuICB9LFxufSk7XG4iLCAiaW1wb3J0IHsgZ2V0SW5qZWN0YWJsZTIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWF0Y2hlcyB9IGZyb20gXCJsb2Rhc2gvZnBcIjtcbmltcG9ydCB7IGlzTWFjSW5qZWN0YWJsZSB9IGZyb20gXCIuL2lzLW1hYy5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm9uLXJpZ2h0LXRyaWdnZXJcIixcblxuICBpbnN0YW50aWF0ZTogKGRpKSA9PiB7XG4gICAgY29uc3QgaXNNYWMgPSBkaS5pbmplY3QoaXNNYWNJbmplY3RhYmxlKTtcblxuICAgIHJldHVybiAoKSA9PiBvblJpZ2h0VHJpZ2dlckZvcihpc01hYygpID8gaXNNYWNvc1Nob3J0Y3V0IDogaXNMaW51eE9yV2luZG93c1Nob3J0Y3V0KTtcbiAgfSxcbn0pO1xuXG5jb25zdCBvblJpZ2h0VHJpZ2dlckZvciA9XG4gIDxUPihjYjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PFQ+KSA9PiBib29sZWFuKSA9PlxuICAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8VD4sIGNhbGxiYWNrOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxUPikgPT4ge1xuICAgIGlmIChjYihldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfVxuICB9O1xuXG5jb25zdCBpc01hY29zU2hvcnRjdXQgPSBtYXRjaGVzKHtcbiAgc2hpZnRLZXk6IGZhbHNlLFxuICBhbHRLZXk6IGZhbHNlLFxuICBjdHJsS2V5OiBmYWxzZSxcbiAgbWV0YUtleTogdHJ1ZSxcbiAgY29kZTogXCJFbnRlclwiLFxufSk7XG5cbmNvbnN0IGlzTGludXhPcldpbmRvd3NTaG9ydGN1dCA9IG1hdGNoZXMoe1xuICBzaGlmdEtleTogZmFsc2UsXG4gIGFsdEtleTogZmFsc2UsXG4gIGN0cmxLZXk6IHRydWUsXG4gIG1ldGFLZXk6IGZhbHNlLFxuICBjb2RlOiBcIkVudGVyXCIsXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBtYWtlU3VyZURyYWdBbmREcm9wRXZlbnRzSGF2ZVRpbWVUb0hhcHBlbkluamVjdGFibGUgPSBnZXRJbmplY3RhYmxlMih7XG4gIGlkOiBcIm1ha2Utc3VyZS1kcmFnLWFuZC1kcm9wLWV2ZW50cy1oYXZlLXRpbWUtdG8taGFwcGVuXCIsXG5cbiAgaW5zdGFudGlhdGU6ICgpID0+ICgpID0+IChjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9LCA1MCk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgTmF2aWdhYmxlRW50cnkgPSB7XG4gIHJlYWRvbmx5IGl0ZW06IHVua25vd247XG4gIHJlYWRvbmx5IG9yZGVyTnVtYmVyOiBudW1iZXI7XG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufTtcblxudHlwZSBOYXZpZ2FibGVDb250ZXh0ID0gS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PGFueT47XG5cbi8qKlxuICogVGhlIG1lbWJlcnMgb2YgZXZlcnkga2V5Ym9hcmQtbmF2aWdhYmxlIGNvbnRleHQsIHRoZSBvcmRlciB0aGUgY29udGV4dHMgYXBwZWFyZWQgaW4sIGFuZCB3aGljaFxuICogbWVtYmVyIG9mIGVhY2ggaGFkIGZvY3VzLiBGb2N1cyBiZWxvbmdzIHRvIHRoZSBjb250ZXh0IHRoYXQgYXBwZWFyZWQgbGFzdDsgd2hlbiBpdCBnb2VzIGF3YXksIHRoZVxuICogcHJldmlvdXMgb25lIHRha2VzIGl0IGJhY2sgXHUyMDE0IGF0IHRoZSBtZW1iZXIgaXQgd2FzIGxlZnQgb24sIHdoaWNoIGlzIHdoYXQgbWFrZXMgc3RlcHBpbmcgaW50b1xuICogc29tZXRoaW5nIGFuZCBiYWNrIG91dCBvZiBpdCBsYW5kIHdoZXJlIGl0IHN0YXJ0ZWQgcmF0aGVyIHRoYW4gYXQgdGhlIGJlZ2lubmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwia2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZVwiLFxuXG4gIGluc3RhbnRpYXRlOiAoKSA9PiB7XG4gICAgY29uc3QgZW50cmllc0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgU2V0PE5hdmlnYWJsZUVudHJ5Pj4oKTtcbiAgICBjb25zdCBpdGVtSW5Gb2N1c0J5Q29udGV4dCA9IG5ldyBNYXA8TmF2aWdhYmxlQ29udGV4dCwgdW5rbm93bj4oKTtcbiAgICBjb25zdCBjb250ZXh0U3RhY2s6IE5hdmlnYWJsZUNvbnRleHRbXSA9IFtdO1xuXG4gICAgY29uc3QgZW50cmllc09mID0gKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gZW50cmllc0J5Q29udGV4dC5nZXQoY29udGV4dCk7XG5cbiAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNyZWF0ZWQgPSBuZXcgU2V0PE5hdmlnYWJsZUVudHJ5PigpO1xuXG4gICAgICBlbnRyaWVzQnlDb250ZXh0LnNldChjb250ZXh0LCBjcmVhdGVkKTtcblxuICAgICAgcmV0dXJuIGNyZWF0ZWQ7XG4gICAgfTtcblxuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgc29ydGVkRW50cmllc09mOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCkgPT5cbiAgICAgICAgWy4uLmVudHJpZXNPZihjb250ZXh0KV0uc29ydCgoYSwgYikgPT4gYS5vcmRlck51bWJlciAtIGIub3JkZXJOdW1iZXIpLFxuXG4gICAgICBjb250ZXh0SW5Gb2N1czogKCkgPT4gY29udGV4dFN0YWNrLmF0KC0xKSxcblxuICAgICAgaXRlbUluRm9jdXNPZjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQpID0+IGl0ZW1JbkZvY3VzQnlDb250ZXh0LmdldChjb250ZXh0KSxcblxuICAgICAgbm90ZUl0ZW1JbkZvY3VzOiAoY29udGV4dDogTmF2aWdhYmxlQ29udGV4dCwgaXRlbTogdW5rbm93bikgPT4ge1xuICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5zZXQoY29udGV4dCwgaXRlbSk7XG4gICAgICB9LFxuXG4gICAgICByZWdpc3RlcjogKGNvbnRleHQ6IE5hdmlnYWJsZUNvbnRleHQsIGVudHJ5OiBOYXZpZ2FibGVFbnRyeSkgPT4ge1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gZW50cmllc09mKGNvbnRleHQpO1xuXG4gICAgICAgIGlmIChlbnRyaWVzLnNpemUgPT09IDApIHtcbiAgICAgICAgICBjb250ZXh0U3RhY2sucHVzaChjb250ZXh0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVudHJpZXMuYWRkKGVudHJ5KTtcbiAgICAgIH0sXG5cbiAgICAgIGRlcmVnaXN0ZXI6IChjb250ZXh0OiBOYXZpZ2FibGVDb250ZXh0LCBlbnRyeTogTmF2aWdhYmxlRW50cnkpID0+IHtcbiAgICAgICAgY29uc3QgZW50cmllcyA9IGVudHJpZXNPZihjb250ZXh0KTtcblxuICAgICAgICBlbnRyaWVzLmRlbGV0ZShlbnRyeSk7XG5cbiAgICAgICAgaWYgKGVudHJpZXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGluZGV4SW5TdGFjayA9IGNvbnRleHRTdGFjay5sYXN0SW5kZXhPZihjb250ZXh0KTtcblxuICAgICAgICAgIGlmIChpbmRleEluU3RhY2sgIT09IC0xKSB7XG4gICAgICAgICAgICBjb250ZXh0U3RhY2suc3BsaWNlKGluZGV4SW5TdGFjaywgMSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gQSBjb250ZXh0IHRoYXQgaXMgZ29uZSByZW1lbWJlcnMgbm90aGluZzogdGhlIG5leHQgdGltZSBpdHMgbWVtYmVycyBhcHBlYXIsIHRoZXlcbiAgICAgICAgICAvLyBhcHBlYXIgYW5ldywgYW5kIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRha2VzIGZvY3VzIGFzIGl0IGRpZCB0aGUgZmlyc3QgdGltZS5cbiAgICAgICAgICBpdGVtSW5Gb2N1c0J5Q29udGV4dC5kZWxldGUoY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRJbmplY3RhYmxlMiB9IGZyb20gXCJAazhzbGVucy9pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBpdGVtQmVpbmdIb3ZlcmVkSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiLi4vLi4vaXRlbS1iZWluZy1ob3ZlcmVkLmluamVjdGFibGVcIjtcbmltcG9ydCB0eXBlIHsgSG92ZXJhYmxlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9ob3ZlcmFibGVcIjtcbmltcG9ydCB0eXBlIHsgTXV0YWJsZVJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tIFwibW9ieFwiO1xuXG5leHBvcnQgY29uc3QgY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSA9IGdldEluamVjdGFibGUyKHtcbiAgaWQ6IFwiY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkXCIsXG4gIGNvbnN1bXB0aW9uczogW2l0ZW1CZWluZ0hvdmVyZWRJbmplY3Rpb25Ub2tlbl0sXG5cbiAgaW5zdGFudGlhdGU6IChkaSkgPT4ge1xuICAgIGNvbnN0IGl0ZW1CZWluZ0hvdmVyZWQgPSBkaS5pbmplY3QoaXRlbUJlaW5nSG92ZXJlZEluamVjdGlvblRva2VuKTtcblxuICAgIHJldHVybiAoY29udGV4dDogSG92ZXJhYmxlQ29udGV4dDxNdXRhYmxlUmVmT2JqZWN0PGFueT4+KSA9PiB7XG4gICAgICBjb25zdCBob3ZlcmVkSXRlbSA9IGl0ZW1CZWluZ0hvdmVyZWQoKShjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICEhaG92ZXJlZEl0ZW0uZ2V0KCkpO1xuICAgIH07XG4gIH0sXG59KTtcbiIsICJpbXBvcnQgeyBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcbmltcG9ydCBnbG9iYWxPdmVycmlkZXMgZnJvbSBcIi4vKiovKi5nbG9iYWwtb3ZlcnJpZGUtZm9yLWluamVjdGFibGUuKHRzfHRzeClcIjtcbmltcG9ydCBkZWZhdWx0T3ZlcnJpZGVzIGZyb20gXCIuLyoqLyouZGVmYXVsdC1vdmVycmlkZS4odHN8dHN4KVwiO1xuXG5leHBvcnQgY29uc3QgdGVzdFV0aWxSdW5uYWJsZUluamVjdGFibGUgPSBnZXRUZXN0VXRpbFJ1bm5hYmxlRm9yT3ZlcnJpZGVzKHtcbiAgZ2xvYmFsT3ZlcnJpZGVzLFxuICBkZWZhdWx0T3ZlcnJpZGVzLFxufSk7XG4iLCAiXG5cbmNvbnN0IG1vZHVsZXMgPSBbXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbXVxuIiwgImltcG9ydCB0eXBlIHsgRGlDb250YWluZXIgfSBmcm9tIFwiQGs4c2xlbnMvaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHsgbWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlIH0gZnJvbSBcIi4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZVwiO1xuXG4vLyBSdW5zIHRoZSBjYWxsYmFjayBzdHJhaWdodCBhd2F5IGluIHRlc3RzLCBpbnN0ZWFkIG9mIGFmdGVyIHRoZSByZWFsIGRlbGF5LlxuZXhwb3J0IGRlZmF1bHQgKGRpOiBEaUNvbnRhaW5lcikgPT4ge1xuICBkaS5vdmVycmlkZTIobWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlLCAoKSA9PiAoKSA9PiAoY2FsbGJhY2s6ICgpID0+IHZvaWQpID0+IGNhbGxiYWNrKCkpO1xufTtcbiIsICJpbXBvcnQgdHlwZSB7IERpQ29udGFpbmVyIH0gZnJvbSBcIkBrOHNsZW5zL2luamVjdGFibGVcIjtcbmltcG9ydCB7IHRvb2x0aXBEZWxheUluamVjdGFibGUgfSBmcm9tIFwiLi90b29sdGlwLWRlbGF5LmluamVjdGFibGVcIjtcblxuLy8gTm8gZGVsYXkgaW4gdGVzdHMsIHNvIGEgdG9vbHRpcCBhcHBlYXJzIHdpdGhvdXQgYW55b25lIGFkdmFuY2luZyB0aW1lcnMuXG4vLyBXcml0dGVuIGFzIGEgcGxhaW4gZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhyb3VnaCBnZXREZWZhdWx0TW9ja2luZ092ZXJyaWRlLFxuLy8gd2hpY2ggaXMgYW4gaWRlbnRpdHkgZnVuY3Rpb24gaW4gYSB0ZXN0IHBhY2thZ2UgdGhpcyBvbmUgbWF5IG5vdCBpbXBvcnQuXG5leHBvcnQgZGVmYXVsdCAoZGk6IERpQ29udGFpbmVyKSA9PiB7XG4gIGRpLm92ZXJyaWRlMih0b29sdGlwRGVsYXlJbmplY3RhYmxlLCAoKSA9PiAoKSA9PiB1bmRlZmluZWQpO1xufTtcbiIsICJpbXBvcnQgeyByZW1vdmVDc3NNb2R1bGVDbHV0dGVyRm9yVW5pdFRlc3RpbmcgfSBmcm9tIFwiLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJlbW92ZUNzc01vZHVsZUNsdXR0ZXJGb3JVbml0VGVzdGluZygpO1xufTtcbiIsICJpbXBvcnQgKiBhcyBtb2R1bGUwIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5kZWZhdWx0LW92ZXJyaWRlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcmVtb3ZlLWNzcy1tb2R1bGUtY2x1dHRlci5kZWZhdWx0LW92ZXJyaWRlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyXTtcblxuZXhwb3J0IGRlZmF1bHQgbW9kdWxlcztcbmV4cG9ydCBjb25zdCBmaWxlbmFtZXMgPSBbJ3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uZGVmYXVsdC1vdmVycmlkZS50cycsJ3BsdWdpbnMvdG9vbHRpcC90b29sdGlwLWRlbGF5L3Rvb2x0aXAtZGVsYXkuZGVmYXVsdC1vdmVycmlkZS50cycsJ3JlbW92ZS1jc3MtbW9kdWxlLWNsdXR0ZXIuZGVmYXVsdC1vdmVycmlkZS50cyddXG4iLCAiaW1wb3J0ICogYXMgbW9kdWxlMCBmcm9tICcuL3BsdWdpbnMvY2xpY2thYmxlL2lzLW1hYy5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy9jbGlja2FibGUvb24tcmlnaHQtdHJpZ2dlci5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUzIGZyb20gJy4vcGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9pdGVtLWJlaW5nLWRyYWdnZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNCBmcm9tICcuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlNSBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWh0bWwtZWxlbWVudC1yZWYtc2V0LmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTYgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2ZvY3VzYWJsZS1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTcgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlOCBmcm9tICcuL3BsdWdpbnMvZm9jdXNhYmxlL2RvLWZvY3VzLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTkgZnJvbSAnLi9wbHVnaW5zL2ZvY3VzYWJsZS9pdGVtLWJlaW5nLWZvY3VzZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTAgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9jb21wdXRlZC1ub3cuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTEgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTIgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9pdGVtLWJlaW5nLWhvdmVyZWQuaW5qZWN0YWJsZS50cyc7aW1wb3J0ICogYXMgbW9kdWxlMTMgZnJvbSAnLi9wbHVnaW5zL2hvdmVyYWJsZS9sb2NhbC1ob3ZlcmFibGUvX3ByaXZhdGUvY29udGV4dC1pcy1iZWluZy1ob3ZlcmVkLmluamVjdGFibGUudHMnO2ltcG9ydCAqIGFzIG1vZHVsZTE0IGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJztpbXBvcnQgKiBhcyBtb2R1bGUxNSBmcm9tICcuL3Rlc3QtdXRpbC1ydW5uYWJsZS5pbmplY3RhYmxlLnRzJ1xuXG5jb25zdCBtb2R1bGVzID0gW21vZHVsZTAsbW9kdWxlMSxtb2R1bGUyLG1vZHVsZTMsbW9kdWxlNCxtb2R1bGU1LG1vZHVsZTYsbW9kdWxlNyxtb2R1bGU4LG1vZHVsZTksbW9kdWxlMTAsbW9kdWxlMTEsbW9kdWxlMTIsbW9kdWxlMTMsbW9kdWxlMTQsbW9kdWxlMTVdO1xuXG5leHBvcnQgZGVmYXVsdCBtb2R1bGVzO1xuZXhwb3J0IGNvbnN0IGZpbGVuYW1lcyA9IFsncGx1Z2lucy9jbGlja2FibGUvaXMtbWFjLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2NsaWNrYWJsZS9vbi1yaWdodC10cmlnZ2VyLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGUudHMnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2l0ZW0tYmVpbmctZHJhZ2dlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9kcmFnZ2FibGUtYW5kLWRyb3BwYWJsZS9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi9tYWtlLXN1cmUtZHJhZy1hbmQtZHJvcC1ldmVudHMtaGF2ZS10aW1lLXRvLWhhcHBlbi5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvX3NoYXJlZC9mb2N1c2FibGUtaHRtbC1lbGVtZW50LXJlZi1zZXQuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQvZm9jdXNhYmxlLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL19zaGFyZWQva2V5Ym9hcmQtbmF2aWdhdGlvbi1zdGF0ZS5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9mb2N1c2FibGUvZG8tZm9jdXMuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvZm9jdXNhYmxlL2l0ZW0tYmVpbmctZm9jdXNlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvY29tcHV0ZWQtbm93LmluamVjdGFibGUudHMnLCdwbHVnaW5zL2hvdmVyYWJsZS9ob3ZlcmVkLWl0ZW0tc3RhdGUuaW5qZWN0YWJsZS50cycsJ3BsdWdpbnMvaG92ZXJhYmxlL2l0ZW0tYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy9ob3ZlcmFibGUvbG9jYWwtaG92ZXJhYmxlL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlLnRzJywncGx1Z2lucy90b29sdGlwL3Rvb2x0aXAtZGVsYXkvdG9vbHRpcC1kZWxheS5pbmplY3RhYmxlLnRzJywndGVzdC11dGlsLXJ1bm5hYmxlLmluamVjdGFibGUudHMnXVxuIiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvYW5jaG9yL2FuY2hvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmFuY2hvci1tb2R1bGVfX2FuY2hvcl9fX20tNXViIHtcXG4gIGFuY2hvci1uYW1lOiB2YXIoLS1hbmNob3ItbmFtZSk7XFxufVxcblxcbi5hbmNob3ItbW9kdWxlX19hbmNob3JlZEF0X19fVUFyVUsge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgcG9zaXRpb24tYW5jaG9yOiB2YXIoLS1hbmNob3ItdGFyZ2V0KTtcXG4gIHBvc2l0aW9uLWFyZWE6IHZhcigtLWFuY2hvci1wb3NpdGlvbik7XFxuICAvKiBUaGUgYnJvd3NlciBjZW50ZXJzIGEgcG9wb3ZlciBpbiB0aGUgdmlld3BvcnQ7IHRoZSBwb3NpdGlvbiBhcmVhIHBsYWNlcyB0aGlzIG9uZSBpbnN0ZWFkLiAqL1xcbiAgaW5zZXQ6IGF1dG87XFxuICAvKiBNaXJyb3IgdG8gdGhlIG9wcG9zaXRlIHNpZGUsIHRoZW4gdGhlIG9wcG9zaXRlIHNwYW4sIGJlZm9yZSBnaXZpbmcgdXAuICovXFxuICBwb3NpdGlvbi10cnktZmFsbGJhY2tzOiBmbGlwLWJsb2NrLCBmbGlwLWlubGluZSwgZmxpcC1ibG9jayBmbGlwLWlubGluZTtcXG4gIC8qIFRoZSBnYXAgYmVsb25ncyB0byB0aGUgZWxlbWVudCBhcyBmYXIgYXMgdGhlIHBvaW50ZXIgaXMgY29uY2VybmVkLCBzbyBtb3Zpbmcgb250byBpdCBhY3Jvc3NcXG4gICAgIHRoZSBnYXAgbmV2ZXIgY291bnRzIGFzIGxlYXZpbmcuIFJlYWNoZXMgb3V0IG9uIGV2ZXJ5IHNpZGUsIHNvIGl0IGhvbGRzIGhvd2V2ZXIgdGhlIGVsZW1lbnRcXG4gICAgIGVuZHMgdXAgZmxpcHBlZC4gKi9cXG59XFxuLmFuY2hvci1tb2R1bGVfX2FuY2hvcmVkQXRfX19VQXJVSzo6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6IFxcXCJcXFwiO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaW5zZXQ6IGNhbGMoLTEgKiB2YXIoLS1hbmNob3ItZ2FwLCAwcHgpKTtcXG4gIHotaW5kZXg6IC0xO1xcbn1cXG5cXG4uYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBYyB7XFxuICAvKiBJbiB0aGUgdG9wIGxheWVyLCBsaWtlIHdoYXRldmVyIGlzIGFuY2hvcmVkIHRvIGl0LCBzbyB0aGUgcG9pbnQgaXMgdGhlIG9uZSBpbiB0aGUgdmlld3BvcnQgdGhlXFxuICAgICBjdXJzb3Igd2FzIGF0IHJhdGhlciB0aGFuIG9uZSBvZmZzZXQgYnkgZXZlcnkgdHJhbnNmb3JtaW5nIGFuY2VzdG9yIGluIGJldHdlZW4uICovXFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBpbnNldDogYXV0bztcXG4gIGxlZnQ6IHZhcigtLWFuY2hvci1wb2ludC14KTtcXG4gIHRvcDogdmFyKC0tYW5jaG9yLXBvaW50LXkpO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxuICBhbmNob3ItbmFtZTogdmFyKC0tYW5jaG9yLW5hbWUpO1xcbiAgLyogVW5kbyB3aGF0IHRoZSBicm93c2VyIGdpdmVzIGFuIGVsZW1lbnQgb2YgdGhlIHRvcCBsYXllcjogdGhpcyBvbmUgaGFzIG5vdGhpbmcgdG8gc2hvdy4gKi9cXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBib3JkZXI6IDA7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiYW5jaG9yXCI6XCJhbmNob3ItbW9kdWxlX19hbmNob3JfX19tLTV1YlwiLFwiYW5jaG9yZWRBdFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yZWRBdF9fX1VBclVLXCIsXCJhbmNob3JQb2ludFwiOlwiYW5jaG9yLW1vZHVsZV9fYW5jaG9yUG9pbnRfX19zQTFBY1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ibG9jay9ibG9jay5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmJsb2NrLW1vZHVsZV9fYmxvY2tfX19ZNHR6aiB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLmJsb2NrLW1vZHVsZV9fYmxvY2stLWlubGluZV9fXy0xWUNnIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJibG9ja1wiOlwiYmxvY2stbW9kdWxlX19ibG9ja19fX1k0dHpqXCIsXCJibG9jay0taW5saW5lXCI6XCJibG9jay1tb2R1bGVfX2Jsb2NrLS1pbmxpbmVfX18tMVlDZ1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jb2xvci9jb2xvci5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYSB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNjpob3ZlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZTpmb2N1cyB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSTpkaXNhYmxlZCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdoaXRlX19fZjhjMXMge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2hpdGVfX19NNmFSZzpob3ZlciB7XFxuICBjb2xvcjogd2hpdGU7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13aGl0ZV9fX2k2dVl6OmZvY3VzIHtcXG4gIGNvbG9yOiB3aGl0ZTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdoaXRlX19fbnRqWUU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHdoaXRlO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tdHJhbnNwYXJlbnRfX18xdmZydiB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS10cmFuc3BhcmVudF9fX3htN0JEOmhvdmVyIHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50X19fcGRlLVc6Zm9jdXMge1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRfX19aMFF1VTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenYge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTEwMF9fX0dGQ29tOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTAwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMDBfX19BTTdvTTpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUo6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTgwX19fRDcxZm4ge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4Yjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MF9fXzhQbHlvOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTgwX19fdzFucGM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk2MF9fX3hmWm1iOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTYwX19fa3dtMkc6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk2MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncTpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk0MF9fX2lST3pSIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTQwX19fcmJOMDQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk0MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTQwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk0MF9fX05pWnhpOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTMwX19fTHduTDIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaDpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTMwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkzMF9fX1FVYjRTOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTMwX19fS3E5Z1c6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1byB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyNV9fX3RZeWdEOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTI1X19fVHhpNWw6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyNSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xYzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkyMF9fX0VGMk9MIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTIwX19fdVB0WFU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXkyMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXYzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTIwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkyMF9fX3ZwdXkxOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTEwX19fbDVhWnAge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjcjpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTEwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkxMF9fX1Z3VzcxOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5MTApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTEwX19fWTVxeXc6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITSB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk3MF9fXzNrcnRMOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5NzApO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTcwX19fcDNpZXg6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWdyZXk3MCk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVjpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBBbHBoYTg1X19fRG9mbzA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWdyZXk4MEFscGhhODUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwQWxwaGE4NV9fX1Q0QmdGOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1ncmV5ODBBbHBoYTg1KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6czpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fMDhXblYge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tcHJpbWFyeV9fX1Z0LTNmOmhvdmVyIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMjpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1wcmltYXJ5X19fMFhzazk6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm8ge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tYWNjZW50X19fNGgzTFQ6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tYWNjZW50X19fQWpTN1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzU6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc19fX3dvVEYyIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NfX183RUlXYzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tc3VjY2Vzcyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc19fX05lMldJOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tbm90aWNlX19fZU9kVXA6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLW5vdGljZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ub3RpY2VfX19OZ1VSTDpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tbm90aWNlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdfX19HajJoTTpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0td2FybmluZyk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS13YXJuaW5nX19fY0JtdDk6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmcpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnEge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNyaXRpY2FsX19fUlFXWlk6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsX19fOVlsQ1k6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTM6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fRGQwUnkge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50X19fTEtsemc6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHA6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXN1Y2Nlc3NUaW50X19fbHNtSmg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdUaW50X19fajNQWlgge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3U6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXdhcm5pbmdUaW50X19fQzZ6bkQ6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50X19fVzZqSTg6ZGlzYWJsZWQge1xcbiAgY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX3lSSmFBIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjU6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNyaXRpY2FsVGludCwgcmdiYSgyMDYsIDU3LCA1MSwgMC4xKSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRfX184dERtZzpmb2N1cyB7XFxuICBjb2xvcjogdmFyKC0tY3JpdGljYWxUaW50LCByZ2JhKDIwNiwgNTcsIDUxLCAwLjEpKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsVGludF9fX1RBQkhrOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci0tbGlua19fX25TTW05IHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZMzpob3ZlciB7XFxuICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1saW5rX19fODZKdGY6Zm9jdXMge1xcbiAgY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tbGlua19fX0ZvSjVYOmRpc2FibGVkIHtcXG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQSB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5jb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1jb2RlX19fVjV1dVY6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWNvZGUpO1xcbn1cXG4uY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tY29kZV9fX0lBSzdkOmZvY3VzIHtcXG4gIGNvbG9yOiB2YXIoLS1jb2RlKTtcXG59XFxuLmNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVdzpkaXNhYmxlZCB7XFxuICBjb2xvcjogdmFyKC0tY29kZSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29sb3ItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWluaGVyaXRfX19HTXAtYVwiLFwiY29sb3ItaG92ZXItLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWluaGVyaXRfX19mR0xLNlwiLFwiY29sb3ItZm9jdXMtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWluaGVyaXRfX195R2ZDZVwiLFwiY29sb3ItZGlzYWJsZWQtLWluaGVyaXRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWluaGVyaXRfX19zOU1DSVwiLFwiY29sb3ItLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX2Y4YzFzXCIsXCJjb2xvci1ob3Zlci0td2hpdGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdoaXRlX19fTTZhUmdcIixcImNvbG9yLWZvY3VzLS13aGl0ZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2hpdGVfX19pNnVZelwiLFwiY29sb3ItZGlzYWJsZWQtLXdoaXRlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13aGl0ZV9fX250allFXCIsXCJjb2xvci0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fMXZmcnZcIixcImNvbG9yLWhvdmVyLS10cmFuc3BhcmVudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tdHJhbnNwYXJlbnRfX194bTdCRFwiLFwiY29sb3ItZm9jdXMtLXRyYW5zcGFyZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS10cmFuc3BhcmVudF9fX3BkZS1XXCIsXCJjb2xvci1kaXNhYmxlZC0tdHJhbnNwYXJlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXRyYW5zcGFyZW50X19fWjBRdVVcIixcImNvbG9yLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MTAwX19fQ3BEenZcIixcImNvbG9yLWhvdmVyLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTAwX19fR0ZDb21cIixcImNvbG9yLWZvY3VzLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MTAwX19fQU03b01cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTAwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MTAwX19fOFNSdUpcIixcImNvbG9yLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0Q3MWZuXCIsXCJjb2xvci1ob3Zlci0tZ3JleTgwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5ODBfX19zQkl4YlwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTgwX19fOFBseW9cIixcImNvbG9yLWRpc2FibGVkLS1ncmV5ODBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MF9fX3cxbnBjXCIsXCJjb2xvci0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19VVDI4WFwiLFwiY29sb3ItaG92ZXItLWdyZXk2MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTYwX19feGZabWJcIixcImNvbG9yLWZvY3VzLS1ncmV5NjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk2MF9fX2t3bTJHXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTYwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NjBfX19tZlZncVwiLFwiY29sb3ItLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTQwX19faVJPelJcIixcImNvbG9yLWhvdmVyLS1ncmV5NDBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk0MF9fX3JiTjA0XCIsXCJjb2xvci1mb2N1cy0tZ3JleTQwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5NDBfX19vSVJVZlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk0MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTQwX19fTmlaeGlcIixcImNvbG9yLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fX0x3bkwyXCIsXCJjb2xvci1ob3Zlci0tZ3JleTMwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MzBfX19YN2gtaFwiLFwiY29sb3ItZm9jdXMtLWdyZXkzMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTMwX19fUVViNFNcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkzMF9fX0txOWdXXCIsXCJjb2xvci0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19FTlQ1b1wiLFwiY29sb3ItaG92ZXItLWdyZXkyNVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTI1X19fdFl5Z0RcIixcImNvbG9yLWZvY3VzLS1ncmV5MjVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXkyNV9fX1R4aTVsXCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTI1XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5MjVfX19ibS0xY1wiLFwiY29sb3ItLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tZ3JleTIwX19fRUYyT0xcIixcImNvbG9yLWhvdmVyLS1ncmV5MjBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXkyMF9fX3VQdFhVXCIsXCJjb2xvci1mb2N1cy0tZ3JleTIwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1ncmV5MjBfX193M3JXY1wiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXkyMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tZ3JleTIwX19fdnB1eTFcIixcImNvbG9yLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2w1YVpwXCIsXCJjb2xvci1ob3Zlci0tZ3JleTEwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ncmV5MTBfX180QXBjclwiLFwiY29sb3ItZm9jdXMtLWdyZXkxMFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tZ3JleTEwX19fVndXNzFcIixcImNvbG9yLWRpc2FibGVkLS1ncmV5MTBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXkxMF9fX1k1cXl3XCIsXCJjb2xvci0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX19DOUhITVwiLFwiY29sb3ItaG92ZXItLWdyZXk3MFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tZ3JleTcwX19fM2tydExcIixcImNvbG9yLWZvY3VzLS1ncmV5NzBcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk3MF9fX3AzaWV4XCIsXCJjb2xvci1kaXNhYmxlZC0tZ3JleTcwXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1ncmV5NzBfX184NkpxVlwiLFwiY29sb3ItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWdyZXk4MEFscGhhODVfX18tM1RkZFwiLFwiY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWdyZXk4MEFscGhhODVfX19Eb2ZvMFwiLFwiY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWdyZXk4MEFscGhhODVfX19UNEJnRlwiLFwiY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWdyZXk4MEFscGhhODVfX19lUjN6c1wiLFwiY29sb3ItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLXByaW1hcnlfX18wOFduVlwiLFwiY29sb3ItaG92ZXItLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXByaW1hcnlfX19WdC0zZlwiLFwiY29sb3ItZm9jdXMtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXByaW1hcnlfX190NXIwMlwiLFwiY29sb3ItZGlzYWJsZWQtLXByaW1hcnlcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLXByaW1hcnlfX18wWHNrOVwiLFwiY29sb3ItLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tYWNjZW50X19fai1MZm9cIixcImNvbG9yLWhvdmVyLS1hY2NlbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWFjY2VudF9fXzRoM0xUXCIsXCJjb2xvci1mb2N1cy0tYWNjZW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1hY2NlbnRfX19BalM3WVwiLFwiY29sb3ItZGlzYWJsZWQtLWFjY2VudFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tYWNjZW50X19fWlM5VzVcIixcImNvbG9yLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzX19fd29URjJcIixcImNvbG9yLWhvdmVyLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzX19fN0VJV2NcIixcImNvbG9yLWZvY3VzLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1zdWNjZXNzX19fS1owZGlcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1zdWNjZXNzX19fTmUyV0lcIixcImNvbG9yLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLW5vdGljZV9fXzZENktHXCIsXCJjb2xvci1ob3Zlci0tbm90aWNlXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1ub3RpY2VfX19lT2RVcFwiLFwiY29sb3ItZm9jdXMtLW5vdGljZVwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0tbm90aWNlX19fTmdVUkxcIixcImNvbG9yLWRpc2FibGVkLS1ub3RpY2VcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLW5vdGljZV9fX3NEbzhyXCIsXCJjb2xvci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci0td2FybmluZ19fX2ZLYndkXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0td2FybmluZ19fX0dqMmhNXCIsXCJjb2xvci1mb2N1cy0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ19fX2NCbXQ5XCIsXCJjb2xvci1kaXNhYmxlZC0td2FybmluZ1wiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0td2FybmluZ19fX3JYRGJSXCIsXCJjb2xvci0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsX19fc2hGQnFcIixcImNvbG9yLWhvdmVyLS1jcml0aWNhbFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxfX19SUVdaWVwiLFwiY29sb3ItZm9jdXMtLWNyaXRpY2FsXCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWZvY3VzLS1jcml0aWNhbF9fXzlZbENZXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNyaXRpY2FsX19faDM3LTNcIixcImNvbG9yLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci0tc3VjY2Vzc1RpbnRfX19EZDBSeVwiLFwiY29sb3ItaG92ZXItLXN1Y2Nlc3NUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWhvdmVyLS1zdWNjZXNzVGludF9fX0xLbHpnXCIsXCJjb2xvci1mb2N1cy0tc3VjY2Vzc1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLXN1Y2Nlc3NUaW50X19fYlFZaHBcIixcImNvbG9yLWRpc2FibGVkLS1zdWNjZXNzVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1kaXNhYmxlZC0tc3VjY2Vzc1RpbnRfX19sc21KaFwiLFwiY29sb3ItLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX2ozUFpYXCIsXCJjb2xvci1ob3Zlci0td2FybmluZ1RpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLXdhcm5pbmdUaW50X19fam4xd3VcIixcImNvbG9yLWZvY3VzLS13YXJuaW5nVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1mb2N1cy0td2FybmluZ1RpbnRfX19DNnpuRFwiLFwiY29sb3ItZGlzYWJsZWQtLXdhcm5pbmdUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS13YXJuaW5nVGludF9fX1c2akk4XCIsXCJjb2xvci0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX195UkphQVwiLFwiY29sb3ItaG92ZXItLWNyaXRpY2FsVGludFwiOlwiY29sb3ItbW9kdWxlX19jb2xvci1ob3Zlci0tY3JpdGljYWxUaW50X19fVnNvTjVcIixcImNvbG9yLWZvY3VzLS1jcml0aWNhbFRpbnRcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNyaXRpY2FsVGludF9fXzh0RG1nXCIsXCJjb2xvci1kaXNhYmxlZC0tY3JpdGljYWxUaW50XCI6XCJjb2xvci1tb2R1bGVfX2NvbG9yLWRpc2FibGVkLS1jcml0aWNhbFRpbnRfX19UQUJIa1wiLFwiY29sb3ItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWxpbmtfX19uU01tOVwiLFwiY29sb3ItaG92ZXItLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWxpbmtfX19HbmlZM1wiLFwiY29sb3ItZm9jdXMtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWxpbmtfX184Nkp0ZlwiLFwiY29sb3ItZGlzYWJsZWQtLWxpbmtcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWxpbmtfX19Gb0o1WFwiLFwiY29sb3ItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItLWNvZGVfX19uQ09qQVwiLFwiY29sb3ItaG92ZXItLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItaG92ZXItLWNvZGVfX19WNXV1VlwiLFwiY29sb3ItZm9jdXMtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZm9jdXMtLWNvZGVfX19JQUs3ZFwiLFwiY29sb3ItZGlzYWJsZWQtLWNvZGVcIjpcImNvbG9yLW1vZHVsZV9fY29sb3ItZGlzYWJsZWQtLWNvZGVfX193M1ZVd1wifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMiB7XFxuICBjdXJzb3I6IGFsaWFzO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84IHtcXG4gIGN1cnNvcjogYWxsLXNjcm9sbDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2NlbGxfX181V08yRiB7XFxuICBjdXJzb3I6IGNlbGw7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb2x1bW4tcmVzaXplX19fcExxM3Mge1xcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY29udGV4dC1tZW51X19fSXFwNTYge1xcbiAgY3Vyc29yOiBjb250ZXh0LW1lbnU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19jb3B5X19fWFU3eUwge1xcbiAgY3Vyc29yOiBjb3B5O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fY3Jvc3NoYWlyX19fMThheWsge1xcbiAgY3Vyc29yOiBjcm9zc2hhaXI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFQge1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1yZXNpemVfX19TNEhGNSB7XFxuICBjdXJzb3I6IGUtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLSB7XFxuICBjdXJzb3I6IGV3LXJlc2l6ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX2dyYWJfX19VdkFGNyB7XFxuICBjdXJzb3I6IGdyYWI7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ncmFiYmluZ19fX01NaXZYIHtcXG4gIGN1cnNvcjogZ3JhYmJpbmc7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19oZWxwX19faUI4RzQge1xcbiAgY3Vyc29yOiBoZWxwO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbW92ZV9fX3lwZC1QIHtcXG4gIGN1cnNvcjogbW92ZTtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vcnRoLXJlc2l6ZV9fXzdOa2hWIHtcXG4gIGN1cnNvcjogbi1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtcmVzaXplX19fTTRNSXoge1xcbiAgY3Vyc29yOiBuZS1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcSB7XFxuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5IHtcXG4gIGN1cnNvcjogbm8tZHJvcDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX25vbmVfX19FaTlzeiB7XFxuICBjdXJzb3I6IG5vbmU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1IHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU4ge1xcbiAgY3Vyc29yOiBucy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtcmVzaXplX19fY2tDb2gge1xcbiAgY3Vyc29yOiBudy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWUyB7XFxuICBjdXJzb3I6IG53c2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Byb2dyZXNzX19fSWdFeHkge1xcbiAgY3Vyc29yOiBwcm9ncmVzcztcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3Jvdy1yZXNpemVfX18wU3NlNiB7XFxuICBjdXJzb3I6IHJvdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX19zb3V0aC1yZXNpemVfX180RmVuUyB7XFxuICBjdXJzb3I6IHMtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGhlYXN0LXJlc2l6ZV9fX3c4aEdxIHtcXG4gIGN1cnNvcjogc2UtcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fc291dGh3ZXN0LXJlc2l6ZV9fXzZVdjRHIHtcXG4gIGN1cnNvcjogc3ctcmVzaXplO1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3IHtcXG4gIGN1cnNvcjogdGV4dDtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3ZlcnRpY2FsLXRleHRfX18zT2F6RSB7XFxuICBjdXJzb3I6IHZlcnRpY2FsLXRleHQ7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2IHtcXG4gIGN1cnNvcjogdy1yZXNpemU7XFxufVxcblxcbi5jdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEcge1xcbiAgY3Vyc29yOiB3YWl0O1xcbn1cXG5cXG4uY3Vyc29yLW1vZHVsZV9fem9vbS1pbl9fX3pFREhRIHtcXG4gIGN1cnNvcjogem9vbS1pbjtcXG59XFxuXFxuLmN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzYge1xcbiAgY3Vyc29yOiB6b29tLW91dDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJhbGlhc1wiOlwiY3Vyc29yLW1vZHVsZV9fYWxpYXNfX18waXlIMlwiLFwiYWxsLXNjcm9sbFwiOlwiY3Vyc29yLW1vZHVsZV9fYWxsLXNjcm9sbF9fX1U5aG84XCIsXCJjZWxsXCI6XCJjdXJzb3ItbW9kdWxlX19jZWxsX19fNVdPMkZcIixcImNvbHVtbi1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX2NvbHVtbi1yZXNpemVfX19wTHEzc1wiLFwiY29udGV4dC1tZW51XCI6XCJjdXJzb3ItbW9kdWxlX19jb250ZXh0LW1lbnVfX19JcXA1NlwiLFwiY29weVwiOlwiY3Vyc29yLW1vZHVsZV9fY29weV9fX1hVN3lMXCIsXCJjcm9zc2hhaXJcIjpcImN1cnNvci1tb2R1bGVfX2Nyb3NzaGFpcl9fXzE4YXlrXCIsXCJkZWZhdWx0XCI6XCJjdXJzb3ItbW9kdWxlX19kZWZhdWx0X19fdkQtOFRcIixcImVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19lYXN0LXJlc2l6ZV9fX1M0SEY1XCIsXCJlYXN0LWFuZC13ZXN0LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fZWFzdC1hbmQtd2VzdC1yZXNpemVfX191LUpmLVwiLFwiZ3JhYlwiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYl9fX1V2QUY3XCIsXCJncmFiYmluZ1wiOlwiY3Vyc29yLW1vZHVsZV9fZ3JhYmJpbmdfX19NTWl2WFwiLFwiaGVscFwiOlwiY3Vyc29yLW1vZHVsZV9faGVscF9fX2lCOEc0XCIsXCJtb3ZlXCI6XCJjdXJzb3ItbW9kdWxlX19tb3ZlX19feXBkLVBcIixcIm5vcnRoLXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fbm9ydGgtcmVzaXplX19fN05raFZcIixcIm5vcnRoZWFzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRoZWFzdC1yZXNpemVfX19NNE1JelwiLFwibm9ydGhlYXN0LWFuZC1zb3V0aHdlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aGVhc3QtYW5kLXNvdXRod2VzdC1yZXNpemVfX196LTFkcVwiLFwibm8tZHJvcFwiOlwiY3Vyc29yLW1vZHVsZV9fbm8tZHJvcF9fX1dUMXQ5XCIsXCJub25lXCI6XCJjdXJzb3ItbW9kdWxlX19ub25lX19fRWk5c3pcIixcIm5vdC1hbGxvd2VkXCI6XCJjdXJzb3ItbW9kdWxlX19ub3QtYWxsb3dlZF9fXzl1Rkx1XCIsXCJub3J0aC1hbmQtc291dGgtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aC1hbmQtc291dGgtcmVzaXplX19fUUc1QU5cIixcIm5vcnRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX25vcnRod2VzdC1yZXNpemVfX19ja0NvaFwiLFwibm9ydGh3ZXN0LWFuZC1zb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19ub3J0aHdlc3QtYW5kLXNvdXRoZWFzdC1yZXNpemVfX19uajRWU1wiLFwicG9pbnRlclwiOlwiY3Vyc29yLW1vZHVsZV9fcG9pbnRlcl9fX0ZpZGZLXCIsXCJwcm9ncmVzc1wiOlwiY3Vyc29yLW1vZHVsZV9fcHJvZ3Jlc3NfX19JZ0V4eVwiLFwicm93LXJlc2l6ZVwiOlwiY3Vyc29yLW1vZHVsZV9fcm93LXJlc2l6ZV9fXzBTc2U2XCIsXCJzb3V0aC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRoLXJlc2l6ZV9fXzRGZW5TXCIsXCJzb3V0aGVhc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX19zb3V0aGVhc3QtcmVzaXplX19fdzhoR3FcIixcInNvdXRod2VzdC1yZXNpemVcIjpcImN1cnNvci1tb2R1bGVfX3NvdXRod2VzdC1yZXNpemVfX182VXY0R1wiLFwidGV4dFwiOlwiY3Vyc29yLW1vZHVsZV9fdGV4dF9fX3RxLUF3XCIsXCJ2ZXJ0aWNhbC10ZXh0XCI6XCJjdXJzb3ItbW9kdWxlX192ZXJ0aWNhbC10ZXh0X19fM09hekVcIixcIndlc3QtcmVzaXplXCI6XCJjdXJzb3ItbW9kdWxlX193ZXN0LXJlc2l6ZV9fX2JyVzU2XCIsXCJ3YWl0XCI6XCJjdXJzb3ItbW9kdWxlX193YWl0X19fUXRYbEdcIixcInpvb20taW5cIjpcImN1cnNvci1tb2R1bGVfX3pvb20taW5fX196RURIUVwiLFwiem9vbS1vdXRcIjpcImN1cnNvci1tb2R1bGVfX3pvb20tb3V0X19fcWJxbzZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZGlzcGxheS1jb250ZW50cy1tb2R1bGVfX2NvbnRlbnRzX19fbVJlWEsge1xcbiAgZGlzcGxheTogY29udGVudHM7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiY29udGVudHNcIjpcImRpc3BsYXktY29udGVudHMtbW9kdWxlX19jb250ZW50c19fX21SZVhLXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLmRyYWdnYWJsZS1tb2R1bGVfX2RyYWdnYWJsZV9fX2JqQ0EzIGltZyxcXG5hIHtcXG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImRyYWdnYWJsZVwiOlwiZHJhZ2dhYmxlLW1vZHVsZV9fZHJhZ2dhYmxlX19fYmpDQTNcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmFkZWQvZmFkZWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5mYWRlZC1tb2R1bGVfX2ZhZGVkX19fLXViYk0ge1xcbiAgb3BhY2l0eTogNTAlO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZhZGVkXCI6XCJmYWRlZC1tb2R1bGVfX2ZhZGVkX19fLXViYk1cIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZmxleC1jaGlsZC1tb2R1bGVfX2ZsZXgtY2hpbGRfX183QmRoZCB7XFxuICBmbGV4OiAxIDEgMDtcXG59XFxuXFxuLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkLS1zaHJpbmthYmxlX19fNkg1LS0ge1xcbiAgbWluLWhlaWdodDogMDtcXG4gIG1pbi13aWR0aDogMDtcXG59XFxuXFxuLmZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkLS1maXhlZF9fX0ZLZXRMIHtcXG4gIGZsZXgtc2hyaW5rOiAwO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcImZsZXgtY2hpbGRcIjpcImZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkX19fN0JkaGRcIixcImZsZXgtY2hpbGQtLXNocmlua2FibGVcIjpcImZsZXgtY2hpbGQtbW9kdWxlX19mbGV4LWNoaWxkLS1zaHJpbmthYmxlX19fNkg1LS1cIixcImZsZXgtY2hpbGQtLWZpeGVkXCI6XCJmbGV4LWNoaWxkLW1vZHVsZV9fZmxleC1jaGlsZC0tZml4ZWRfX19GS2V0TFwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5mbGV4LW1vZHVsZV9fZmxleF9fX2VGTEVjIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fd3JhcC0td3JhcF9fXzJMcVRnIHtcXG4gIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsX19fMEFpT2Yge1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19kaXJlY3Rpb24tLXZlcnRpY2FsLXJldmVyc2VkX19fSW9lLTUge1xcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbF9fX2EzMnpvIHtcXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS1ob3Jpem9udGFsLXJldmVyc2VkX19faUx3REsge1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUJldHdlZW5fX19hNm9NSCB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQXJvdW5kX19fNVlPVTQge1xcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlcl9fX3VyWllHIHtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoX19fTTVhejAge1xcbiAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRfX19QSEYxRSB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRfX19hTVB4MCB7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hfX19iQU5pZyB7XFxuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJfX18wVnN5OSB7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWZsZXhTdGFydF9fX2owSnp4IHtcXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRfX19EbVU1UiB7XFxuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS16ZXJvX19fdzMtVGcge1xcbiAgZ2FwOiAwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXplcm9fX185NjBBNyB7XFxuICBjb2x1bW4tZ2FwOiAwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXplcm9fX19vS3VzVCB7XFxuICByb3ctZ2FwOiAwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS00eHNfX19yclRKZSB7XFxuICBnYXA6IDFweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhzX19fVFIzWUUge1xcbiAgY29sdW1uLWdhcDogMXB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eHNfX182aW4zaiB7XFxuICByb3ctZ2FwOiAxcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0zeHNfX19SY3VtUiB7XFxuICBnYXA6IDJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hzX19fWC1DMWEge1xcbiAgY29sdW1uLWdhcDogMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeHNfX19rVzBpTyB7XFxuICByb3ctZ2FwOiAycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eHNfX19VQjNGaiB7XFxuICBnYXA6IDRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHhzX19fdUladjIge1xcbiAgY29sdW1uLWdhcDogNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14eHNfX190LWdxTiB7XFxuICByb3ctZ2FwOiA0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14c19fX3R0M1NvIHtcXG4gIGdhcDogOHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14c19fX0I1b1hjIHtcXG4gIGNvbHVtbi1nYXA6IDhweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teHNfX18xRVgyZiB7XFxuICByb3ctZ2FwOiA4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1zX19fOW1ZelMge1xcbiAgZ2FwOiAxMnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1zX19fYXZ0Zi0ge1xcbiAgY29sdW1uLWdhcDogMTJweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tc19fX1lPQlZWIHtcXG4gIHJvdy1nYXA6IDEycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1tX19fQWItdDAge1xcbiAgZ2FwOiAxNnB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1tX19fUTZjQi0ge1xcbiAgY29sdW1uLWdhcDogMTZweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbV9fXzctRFEwIHtcXG4gIHJvdy1nYXA6IDE2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1sX19fY3Ztancge1xcbiAgZ2FwOiAyMHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1sX19fRXBRdFQge1xcbiAgY29sdW1uLWdhcDogMjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbF9fX3hZaUtoIHtcXG4gIHJvdy1nYXA6IDIwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14bF9fX0NJc05QIHtcXG4gIGdhcDogMjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teGxfX19tTFV4UiB7XFxuICBjb2x1bW4tZ2FwOiAyNHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS14bF9fX0tXTjMzIHtcXG4gIHJvdy1nYXA6IDI0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14eGxfX18xMnQtNiB7XFxuICBnYXA6IDI4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3ZBTHRmIHtcXG4gIGNvbHVtbi1nYXA6IDI4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXh4bF9fX0lkY3FVIHtcXG4gIHJvdy1nYXA6IDI4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0zeGxfX19pVXJ4MSB7XFxuICBnYXA6IDMycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTN4bF9fXy1OVjBaIHtcXG4gIGNvbHVtbi1nYXA6IDMycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTN4bF9fX1ZZY1JoIHtcXG4gIHJvdy1nYXA6IDMycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS00eGxfX19mWmlLViB7XFxuICBnYXA6IDM2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTR4bF9fX1g5S3B5IHtcXG4gIGNvbHVtbi1nYXA6IDM2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTR4bF9fX2RidlcwIHtcXG4gIHJvdy1nYXA6IDM2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS01eGxfX180M2hIdiB7XFxuICBnYXA6IDQwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJYeWVRIHtcXG4gIGNvbHVtbi1nYXA6IDQwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTV4bF9fX3F2ak9FIHtcXG4gIHJvdy1nYXA6IDQwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS02eGxfX19zUHk2TCB7XFxuICBnYXA6IDQ0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTZ4bF9fX3phZ1dNIHtcXG4gIGNvbHVtbi1nYXA6IDQ0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTZ4bF9fX1UtdVpKIHtcXG4gIHJvdy1nYXA6IDQ0cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS03eGxfX19PYXd2LSB7XFxuICBnYXA6IDQ4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTd4bF9fX0t6ck1yIHtcXG4gIGNvbHVtbi1nYXA6IDQ4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTd4bF9fX3BBdkx2IHtcXG4gIHJvdy1nYXA6IDQ4cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS04eGxfX19FZW9FLSB7XFxuICBnYXA6IDUycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2tiaW9KIHtcXG4gIGNvbHVtbi1nYXA6IDUycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTh4bF9fX1AtOS1lIHtcXG4gIHJvdy1nYXA6IDUycHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS05eGxfX19UZ25VUyB7XFxuICBnYXA6IDU2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTl4bF9fX05HbDNKIHtcXG4gIGNvbHVtbi1nYXA6IDU2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTl4bF9fX0VHdWVoIHtcXG4gIHJvdy1nYXA6IDU2cHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0xMHhsX19fQ2YxdzYge1xcbiAgZ2FwOiA2MHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMHhsX19fTEpSR2wge1xcbiAgY29sdW1uLWdhcDogNjBweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tMTB4bF9fX3pQdHlOIHtcXG4gIHJvdy1nYXA6IDYwcHg7XFxufVxcbi5mbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0xMXhsX19fb3JmZ0kge1xcbiAgZ2FwOiA2NHB4O1xcbn1cXG4uZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMXhsX19fZERLZHAge1xcbiAgY29sdW1uLWdhcDogNjRweDtcXG59XFxuLmZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tMTF4bF9fX3ZERy1BIHtcXG4gIHJvdy1nYXA6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZmxleFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX19lRkxFY1wiLFwiZmxleF9fd3JhcC0td3JhcFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX3dyYXAtLXdyYXBfX18yTHFUZ1wiLFwiZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWxfX18wQWlPZlwiLFwiZmxleF9fZGlyZWN0aW9uLS12ZXJ0aWNhbC1yZXZlcnNlZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0tdmVydGljYWwtcmV2ZXJzZWRfX19Jb2UtNVwiLFwiZmxleF9fZGlyZWN0aW9uLS1ob3Jpem9udGFsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZGlyZWN0aW9uLS1ob3Jpem9udGFsX19fYTMyem9cIixcImZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2RpcmVjdGlvbi0taG9yaXpvbnRhbC1yZXZlcnNlZF9fX2lMd0RLXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2Vlbl9fX2E2b01IXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VBcm91bmRfX181WU9VNFwiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlclwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1jZW50ZXJfX191clpZR1wiLFwiZmxleF9fanVzdGlmeUNvbnRlbnQtLXN0cmV0Y2hcIjpcImZsZXgtbW9kdWxlX19mbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaF9fX001YXowXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0XCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhTdGFydF9fX1BIRjFFXCIsXCJmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleEVuZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kX19fYU1QeDBcIixcImZsZXhfX2FsaWduSXRlbXMtLXN0cmV0Y2hcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoX19fYkFOaWdcIixcImZsZXhfX2FsaWduSXRlbXMtLWNlbnRlclwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWNlbnRlcl9fXzBWc3k5XCIsXCJmbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRcIjpcImZsZXgtbW9kdWxlX19mbGV4X19hbGlnbkl0ZW1zLS1mbGV4U3RhcnRfX19qMEp6eFwiLFwiZmxleF9fYWxpZ25JdGVtcy0tZmxleEVuZFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2FsaWduSXRlbXMtLWZsZXhFbmRfX19EbVU1UlwiLFwiZmxleF9fZ2FwLS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS16ZXJvX19fdzMtVGdcIixcImZsZXhfX2dhcC0tY29sdW1uLS16ZXJvXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXplcm9fX185NjBBN1wiLFwiZmxleF9fZ2FwLS1yb3ctLXplcm9cIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0temVyb19fX29LdXNUXCIsXCJmbGV4X19nYXAtLTR4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNHhzX19fcnJUSmVcIixcImZsZXhfX2dhcC0tY29sdW1uLS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNHhzX19fVFIzWUVcIixcImZsZXhfX2dhcC0tcm93LS00eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNHhzX19fNmluM2pcIixcImZsZXhfX2dhcC0tM3hzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0zeHNfX19SY3VtUlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0zeHNfX19YLUMxYVwiLFwiZmxleF9fZ2FwLS1yb3ctLTN4c1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS0zeHNfX19rVzBpT1wiLFwiZmxleF9fZ2FwLS14eHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXh4c19fX1VCM0ZqXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4c19fX3VJWnYyXCIsXCJmbGV4X19nYXAtLXJvdy0teHhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXh4c19fX3QtZ3FOXCIsXCJmbGV4X19nYXAtLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS14c19fX3R0M1NvXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teHNcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0teHNfX19CNW9YY1wiLFwiZmxleF9fZ2FwLS1yb3ctLXhzXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXhzX19fMUVYMmZcIixcImZsZXhfX2dhcC0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tc19fXzltWXpTXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tc1wiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS1zX19fYXZ0Zi1cIixcImZsZXhfX2dhcC0tcm93LS1zXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXNfX19ZT0JWVlwiLFwiZmxleF9fZ2FwLS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1tX19fQWItdDBcIixcImZsZXhfX2dhcC0tY29sdW1uLS1tXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLW1fX19RNmNCLVwiLFwiZmxleF9fZ2FwLS1yb3ctLW1cIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tbV9fXzctRFEwXCIsXCJmbGV4X19nYXAtLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWxfX19jdm1qd1wiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLWxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tbF9fX0VwUXRUXCIsXCJmbGV4X19nYXAtLXJvdy0tbFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS1sX19feFlpS2hcIixcImZsZXhfX2dhcC0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXhsX19fQ0lzTlBcIixcImZsZXhfX2dhcC0tY29sdW1uLS14bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS14bF9fX21MVXhSXCIsXCJmbGV4X19nYXAtLXJvdy0teGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0teGxfX19LV04zM1wiLFwiZmxleF9fZ2FwLS14eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXh4bF9fXzEydC02XCIsXCJmbGV4X19nYXAtLWNvbHVtbi0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3ZBTHRmXCIsXCJmbGV4X19nYXAtLXJvdy0teHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLXh4bF9fX0lkY3FVXCIsXCJmbGV4X19nYXAtLTN4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tM3hsX19faVVyeDFcIixcImZsZXhfX2dhcC0tY29sdW1uLS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tM3hsX19fLU5WMFpcIixcImZsZXhfX2dhcC0tcm93LS0zeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tM3hsX19fVlljUmhcIixcImZsZXhfX2dhcC0tNHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS00eGxfX19mWmlLVlwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS00eGxfX19YOUtweVwiLFwiZmxleF9fZ2FwLS1yb3ctLTR4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS00eGxfX19kYnZXMFwiLFwiZmxleF9fZ2FwLS01eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTV4bF9fXzQzaEh2XCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJYeWVRXCIsXCJmbGV4X19nYXAtLXJvdy0tNXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTV4bF9fX3F2ak9FXCIsXCJmbGV4X19nYXAtLTZ4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tNnhsX19fc1B5NkxcIixcImZsZXhfX2dhcC0tY29sdW1uLS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tNnhsX19femFnV01cIixcImZsZXhfX2dhcC0tcm93LS02eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tNnhsX19fVS11WkpcIixcImZsZXhfX2dhcC0tN3hsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS03eGxfX19PYXd2LVwiLFwiZmxleF9fZ2FwLS1jb2x1bW4tLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS03eGxfX19LenJNclwiLFwiZmxleF9fZ2FwLS1yb3ctLTd4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tcm93LS03eGxfX19wQXZMdlwiLFwiZmxleF9fZ2FwLS04eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLTh4bF9fX0Vlb0UtXCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2tiaW9KXCIsXCJmbGV4X19nYXAtLXJvdy0tOHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTh4bF9fX1AtOS1lXCIsXCJmbGV4X19nYXAtLTl4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tOXhsX19fVGduVVNcIixcImZsZXhfX2dhcC0tY29sdW1uLS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLWNvbHVtbi0tOXhsX19fTkdsM0pcIixcImZsZXhfX2dhcC0tcm93LS05eGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tOXhsX19fRUd1ZWhcIixcImZsZXhfX2dhcC0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tMTB4bF9fX0NmMXc2XCIsXCJmbGV4X19nYXAtLWNvbHVtbi0tMTB4bFwiOlwiZmxleC1tb2R1bGVfX2ZsZXhfX2dhcC0tY29sdW1uLS0xMHhsX19fTEpSR2xcIixcImZsZXhfX2dhcC0tcm93LS0xMHhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1yb3ctLTEweGxfX196UHR5TlwiLFwiZmxleF9fZ2FwLS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS0xMXhsX19fb3JmZ0lcIixcImZsZXhfX2dhcC0tY29sdW1uLS0xMXhsXCI6XCJmbGV4LW1vZHVsZV9fZmxleF9fZ2FwLS1jb2x1bW4tLTExeGxfX19kREtkcFwiLFwiZmxleF9fZ2FwLS1yb3ctLTExeGxcIjpcImZsZXgtbW9kdWxlX19mbGV4X19nYXAtLXJvdy0tMTF4bF9fX3ZERy1BXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JhZGllbnQtbW9kdWxlX19ncmFkaWVudF9fX01EQnZGIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLXN1cmZhY2VHcmFkaWVudCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZ3JhZGllbnRcIjpcImdyYWRpZW50LW1vZHVsZV9fZ3JhZGllbnRfX19NREJ2RlwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuZ3JheXNjYWxlLW1vZHVsZV9fZ3JheXNjYWxlX19fM21aUDYge1xcbiAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiZ3JheXNjYWxlXCI6XCJncmF5c2NhbGUtbW9kdWxlX19ncmF5c2NhbGVfX18zbVpQNlwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9ncmlkL2dyaWQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5ncmlkLW1vZHVsZV9fZ3JpZF9fX01QVGhPIHtcXG4gIGRpc3BsYXk6IGdyaWQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMV9fX1kwVTJNIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS0yX19fWWdTNEgge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTNfX19tYUJEMiB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNF9fXzczQmpBIHtcXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19jb2x1bW5zLS01X19fU2x0LUQge1xcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgbWlubWF4KDAsIDFmcikpO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2NvbHVtbnMtLTZfX19ueU04eiB7XFxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCBtaW5tYXgoMCwgMWZyKSk7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX3hYZDNaIHtcXG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2FsaWduSXRlbXMtLWNlbnRlcl9fX0U4bUwtIHtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRfX18yTmR2UyB7XFxuICBhbGlnbi1pdGVtczogc3RhcnQ7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tZW5kX19fMUlwWW0ge1xcbiAgYWxpZ24taXRlbXM6IGVuZDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXplcm9fX19HMXE4ZCB7XFxuICBnYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0temVyb19fX3lnUXBKIHtcXG4gIGNvbHVtbi1nYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0temVyb19fX3cxLU94IHtcXG4gIHJvdy1nYXA6IDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4c19fX3pPMG12IHtcXG4gIGdhcDogMXB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS00eHNfX19HVW9kMyB7XFxuICBjb2x1bW4tZ2FwOiAxcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTR4c19fX3NWUVplIHtcXG4gIHJvdy1nYXA6IDFweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4c19fXy1JeFN3IHtcXG4gIGdhcDogMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0zeHNfX191dzQ2NiB7XFxuICBjb2x1bW4tZ2FwOiAycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTN4c19fX0pmd21ZIHtcXG4gIHJvdy1nYXA6IDJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4c19fX2doOGMtIHtcXG4gIGdhcDogNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14eHNfX19FNzZnSyB7XFxuICBjb2x1bW4tZ2FwOiA0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4c19fX25oeHotIHtcXG4gIHJvdy1nYXA6IDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhzX19fR0g0aDIge1xcbiAgZ2FwOiA4cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXhzX19fdVJxcmkge1xcbiAgY29sdW1uLWdhcDogOHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS14c19fX2xBTkV1IHtcXG4gIHJvdy1nYXA6IDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXNfX183UjBwcyB7XFxuICBnYXA6IDEycHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXNfX19hRFZBRyB7XFxuICBjb2x1bW4tZ2FwOiAxMnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1zX19fQVJEbXgge1xcbiAgcm93LWdhcDogMTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLW1fX19tM1hpaCB7XFxuICBnYXA6IDE2cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLW1fX19Dc3llTSB7XFxuICBjb2x1bW4tZ2FwOiAxNnB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1tX19fc09BWG4ge1xcbiAgcm93LWdhcDogMTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWxfX18wU3lLbCB7XFxuICBnYXA6IDIwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLWxfX19KdkpoTSB7XFxuICBjb2x1bW4tZ2FwOiAyMHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1sX19fYXBIOGIge1xcbiAgcm93LWdhcDogMjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhsX19fSS12UnQge1xcbiAgZ2FwOiAyNHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14bF9fX3QwU08zIHtcXG4gIGNvbHVtbi1nYXA6IDI0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhsX19fZXZORWQge1xcbiAgcm93LWdhcDogMjRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4bF9fX2VXUzAyIHtcXG4gIGdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHhsX19fcy0tLWIge1xcbiAgY29sdW1uLWdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teHhsX19fSjRGN28ge1xcbiAgcm93LWdhcDogMjhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTN4bF9fX0hWbGtEIHtcXG4gIGdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hsX19fekt0TEwge1xcbiAgY29sdW1uLWdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hsX19fRTlTVjkge1xcbiAgcm93LWdhcDogMzJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTR4bF9fX00zRzNmIHtcXG4gIGdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhsX19fbm50LXAge1xcbiAgY29sdW1uLWdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhsX19fMVc4YmQge1xcbiAgcm93LWdhcDogMzZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTV4bF9fX3lBblhEIHtcXG4gIGdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNXhsX19fMnc0UjEge1xcbiAgY29sdW1uLWdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNXhsX19fVkNmamcge1xcbiAgcm93LWdhcDogNDBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTZ4bF9fX2hFbDBGIHtcXG4gIGdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNnhsX19fRnhQdHAge1xcbiAgY29sdW1uLWdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNnhsX19feW4xZi0ge1xcbiAgcm93LWdhcDogNDRweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTd4bF9fX2diR0h1IHtcXG4gIGdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tN3hsX19fVnlqMXAge1xcbiAgY29sdW1uLWdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tN3hsX19fNUJCc1Mge1xcbiAgcm93LWdhcDogNDhweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTh4bF9fX2pDbG1DIHtcXG4gIGdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOHhsX19fYnE3RXoge1xcbiAgY29sdW1uLWdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOHhsX19fd051WjIge1xcbiAgcm93LWdhcDogNTJweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTl4bF9fX2luRTFFIHtcXG4gIGdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOXhsX19fTXNmanEge1xcbiAgY29sdW1uLWdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOXhsX19faTIzLWMge1xcbiAgcm93LWdhcDogNTZweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTEweGxfX19MQ0R0YyB7XFxuICBnYXA6IDYwcHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTEweGxfX19vOGNCeSB7XFxuICBjb2x1bW4tZ2FwOiA2MHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMHhsX19fUmpSdzkge1xcbiAgcm93LWdhcDogNjBweDtcXG59XFxuLmdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTExeGxfX19TcXVOYSB7XFxuICBnYXA6IDY0cHg7XFxufVxcbi5ncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTExeGxfX191U2VXeiB7XFxuICBjb2x1bW4tZ2FwOiA2NHB4O1xcbn1cXG4uZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0xMXhsX19fanFHLUkge1xcbiAgcm93LWdhcDogNjRweDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJncmlkXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fX01QVGhPXCIsXCJncmlkX19jb2x1bW5zLS0xXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMV9fX1kwVTJNXCIsXCJncmlkX19jb2x1bW5zLS0yXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tMl9fX1lnUzRIXCIsXCJncmlkX19jb2x1bW5zLS0zXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tM19fX21hQkQyXCIsXCJncmlkX19jb2x1bW5zLS00XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNF9fXzczQmpBXCIsXCJncmlkX19jb2x1bW5zLS01XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNV9fX1NsdC1EXCIsXCJncmlkX19jb2x1bW5zLS02XCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fY29sdW1ucy0tNl9fX255TTh6XCIsXCJncmlkX19hbGlnbkl0ZW1zLS1zdHJldGNoXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fYWxpZ25JdGVtcy0tc3RyZXRjaF9fX3hYZDNaXCIsXCJncmlkX19hbGlnbkl0ZW1zLS1jZW50ZXJcIjpcImdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1jZW50ZXJfX19FOG1MLVwiLFwiZ3JpZF9fYWxpZ25JdGVtcy0tc3RhcnRcIjpcImdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1zdGFydF9fXzJOZHZTXCIsXCJncmlkX19hbGlnbkl0ZW1zLS1lbmRcIjpcImdyaWQtbW9kdWxlX19ncmlkX19hbGlnbkl0ZW1zLS1lbmRfX18xSXBZbVwiLFwiZ3JpZF9fZ2FwLS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS16ZXJvX19fRzFxOGRcIixcImdyaWRfX2dhcC0tY29sdW1uLS16ZXJvXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXplcm9fX195Z1FwSlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXplcm9cIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0temVyb19fX3cxLU94XCIsXCJncmlkX19nYXAtLTR4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNHhzX19fek8wbXZcIixcImdyaWRfX2dhcC0tY29sdW1uLS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNHhzX19fR1VvZDNcIixcImdyaWRfX2dhcC0tcm93LS00eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNHhzX19fc1ZRWmVcIixcImdyaWRfX2dhcC0tM3hzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0zeHNfX18tSXhTd1wiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0zeHNfX191dzQ2NlwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTN4c1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS0zeHNfX19KZndtWVwiLFwiZ3JpZF9fZ2FwLS14eHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4c19fX2doOGMtXCIsXCJncmlkX19nYXAtLWNvbHVtbi0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4c19fX0U3NmdLXCIsXCJncmlkX19nYXAtLXJvdy0teHhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4c19fX25oeHotXCIsXCJncmlkX19nYXAtLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS14c19fX0dINGgyXCIsXCJncmlkX19nYXAtLWNvbHVtbi0teHNcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0teHNfX191UnFyaVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLXhzXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXhzX19fbEFORXVcIixcImdyaWRfX2dhcC0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tc19fXzdSMHBzXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tc1wiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS1zX19fYURWQUdcIixcImdyaWRfX2dhcC0tcm93LS1zXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXNfX19BUkRteFwiLFwiZ3JpZF9fZ2FwLS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1tX19fbTNYaWhcIixcImdyaWRfX2dhcC0tY29sdW1uLS1tXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLW1fX19Dc3llTVwiLFwiZ3JpZF9fZ2FwLS1yb3ctLW1cIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tbV9fX3NPQVhuXCIsXCJncmlkX19nYXAtLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWxfX18wU3lLbFwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLWxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tbF9fX0p2SmhNXCIsXCJncmlkX19nYXAtLXJvdy0tbFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS1sX19fYXBIOGJcIixcImdyaWRfX2dhcC0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXhsX19fSS12UnRcIixcImdyaWRfX2dhcC0tY29sdW1uLS14bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS14bF9fX3QwU08zXCIsXCJncmlkX19nYXAtLXJvdy0teGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0teGxfX19ldk5FZFwiLFwiZ3JpZF9fZ2FwLS14eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXh4bF9fX2VXUzAyXCIsXCJncmlkX19nYXAtLWNvbHVtbi0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLXh4bF9fX3MtLS1iXCIsXCJncmlkX19nYXAtLXJvdy0teHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLXh4bF9fX0o0RjdvXCIsXCJncmlkX19nYXAtLTN4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tM3hsX19fSFZsa0RcIixcImdyaWRfX2dhcC0tY29sdW1uLS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tM3hsX19fekt0TExcIixcImdyaWRfX2dhcC0tcm93LS0zeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tM3hsX19fRTlTVjlcIixcImdyaWRfX2dhcC0tNHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS00eGxfX19NM0czZlwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS00eGxfX19ubnQtcFwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTR4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS00eGxfX18xVzhiZFwiLFwiZ3JpZF9fZ2FwLS01eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTV4bF9fX3lBblhEXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTV4bF9fXzJ3NFIxXCIsXCJncmlkX19nYXAtLXJvdy0tNXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTV4bF9fX1ZDZmpnXCIsXCJncmlkX19nYXAtLTZ4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tNnhsX19faEVsMEZcIixcImdyaWRfX2dhcC0tY29sdW1uLS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tNnhsX19fRnhQdHBcIixcImdyaWRfX2dhcC0tcm93LS02eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tNnhsX19feW4xZi1cIixcImdyaWRfX2dhcC0tN3hsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS03eGxfX19nYkdIdVwiLFwiZ3JpZF9fZ2FwLS1jb2x1bW4tLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS03eGxfX19WeWoxcFwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTd4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tcm93LS03eGxfX181QkJzU1wiLFwiZ3JpZF9fZ2FwLS04eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLTh4bF9fX2pDbG1DXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTh4bF9fX2JxN0V6XCIsXCJncmlkX19nYXAtLXJvdy0tOHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTh4bF9fX3dOdVoyXCIsXCJncmlkX19nYXAtLTl4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tOXhsX19faW5FMUVcIixcImdyaWRfX2dhcC0tY29sdW1uLS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLWNvbHVtbi0tOXhsX19fTXNmanFcIixcImdyaWRfX2dhcC0tcm93LS05eGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tOXhsX19faTIzLWNcIixcImdyaWRfX2dhcC0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tMTB4bF9fX0xDRHRjXCIsXCJncmlkX19nYXAtLWNvbHVtbi0tMTB4bFwiOlwiZ3JpZC1tb2R1bGVfX2dyaWRfX2dhcC0tY29sdW1uLS0xMHhsX19fbzhjQnlcIixcImdyaWRfX2dhcC0tcm93LS0xMHhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1yb3ctLTEweGxfX19SalJ3OVwiLFwiZ3JpZF9fZ2FwLS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS0xMXhsX19fU3F1TmFcIixcImdyaWRfX2dhcC0tY29sdW1uLS0xMXhsXCI6XCJncmlkLW1vZHVsZV9fZ3JpZF9fZ2FwLS1jb2x1bW4tLTExeGxfX191U2VXelwiLFwiZ3JpZF9fZ2FwLS1yb3ctLTExeGxcIjpcImdyaWQtbW9kdWxlX19ncmlkX19nYXAtLXJvdy0tMTF4bF9fX2pxRy1JXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2hlaWdodC9oZWlnaHQubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1mdWxsX19fLWlvamYge1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXplcm9fX19kNTd3VyB7XFxuICBtYXgtaGVpZ2h0OiAwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS00eHNfX19MSlVCbiB7XFxuICBtYXgtaGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0zeHNfX18tMldvLSB7XFxuICBtYXgtaGVpZ2h0OiAycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eHNfX19oRnJCZSB7XFxuICBtYXgtaGVpZ2h0OiA0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14c19fX2MycGFEIHtcXG4gIG1heC1oZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXNfX19BY3A2VCB7XFxuICBtYXgtaGVpZ2h0OiAxMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbV9fX1Z6b1E5IHtcXG4gIG1heC1oZWlnaHQ6IDE2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1sX19fV2dscWIge1xcbiAgbWF4LWhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXhsX19fTFVtbEoge1xcbiAgbWF4LWhlaWdodDogMjRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLXh4bF9fX2RSM3pLIHtcXG4gIG1heC1oZWlnaHQ6IDI4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0zeGxfX19idWJURCB7XFxuICBtYXgtaGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhsX19fYmRaWDYge1xcbiAgbWF4LWhlaWdodDogMzZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTV4bF9fX1RVVEFSIHtcXG4gIG1heC1oZWlnaHQ6IDQwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS02eGxfX19HYy1IbCB7XFxuICBtYXgtaGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tN3hsX19fWXhkdFgge1xcbiAgbWF4LWhlaWdodDogNDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLTh4bF9fX0EyV3ZkIHtcXG4gIG1heC1oZWlnaHQ6IDUycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS05eGxfX19KdnJHSiB7XFxuICBtYXgtaGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTB4bF9fX3dMUlF1IHtcXG4gIG1heC1oZWlnaHQ6IDYwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0xMXhsX19fZ1UzeEkge1xcbiAgbWF4LWhlaWdodDogNjRweDtcXG59XFxuXFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXplcm9fX19QQlY0NyB7XFxuICBtaW4taGVpZ2h0OiAwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eHNfX19WM04tYiB7XFxuICBtaW4taGVpZ2h0OiAxcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeHNfX190Z0RRUSB7XFxuICBtaW4taGVpZ2h0OiAycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eHNfX18tcWhTeiB7XFxuICBtaW4taGVpZ2h0OiA0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14c19fX1pJcHF1IHtcXG4gIG1pbi1oZWlnaHQ6IDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXNfX194TWlHYyB7XFxuICBtaW4taGVpZ2h0OiAxMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbV9fX1ZFV0xyIHtcXG4gIG1pbi1oZWlnaHQ6IDE2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1sX19fYTYtRjcge1xcbiAgbWluLWhlaWdodDogMjBweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXhsX19fLXlsRnUge1xcbiAgbWluLWhlaWdodDogMjRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXh4bF9fXzdLNmYtIHtcXG4gIG1pbi1oZWlnaHQ6IDI4cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeGxfX18wRlpRbSB7XFxuICBtaW4taGVpZ2h0OiAzMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tNHhsX19fY0dvSmsge1xcbiAgbWluLWhlaWdodDogMzZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTV4bF9fX2ZWM2FPIHtcXG4gIG1pbi1oZWlnaHQ6IDQwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS02eGxfX19Ga1VHQyB7XFxuICBtaW4taGVpZ2h0OiA0NHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tN3hsX19fQ3Npd1Yge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTh4bF9fX2gtLURLIHtcXG4gIG1pbi1oZWlnaHQ6IDUycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS05eGxfX19uRk1TSCB7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tMTB4bF9fX0thLWNBIHtcXG4gIG1pbi1oZWlnaHQ6IDYwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMXhsX19fZlFzZ2Mge1xcbiAgbWluLWhlaWdodDogNjRweDtcXG59XFxuXFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tc3RyZXRjaF9fX3JZYVluIHtcXG4gIGhlaWdodDogc3RyZXRjaDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tZnVsbF9fX3ZXeGllIHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tYXV0b19fXzY3bkZOIHtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0temVyb19fX0FxQTBQIHtcXG4gIGhlaWdodDogMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS00eHNfX19GZEowaCB7XFxuICBoZWlnaHQ6IDFweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tM3hzX19fYXNVSmIge1xcbiAgaGVpZ2h0OiAycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4c19fX1lxVHFwIHtcXG4gIGhlaWdodDogNHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14c19fX2xOUnRZIHtcXG4gIGhlaWdodDogOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1zX19fSDdtLS0ge1xcbiAgaGVpZ2h0OiAxMnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1tX19fQ21McDEge1xcbiAgaGVpZ2h0OiAxNnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS1sX19fMnRra2gge1xcbiAgaGVpZ2h0OiAyMHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14bF9fXzd4QkppIHtcXG4gIGhlaWdodDogMjRweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0teHhsX19fQ2pTdTUge1xcbiAgaGVpZ2h0OiAyOHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeGxfX19wVWR2TiB7XFxuICBoZWlnaHQ6IDMycHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTR4bF9fX1FIWll5IHtcXG4gIGhlaWdodDogMzZweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tNXhsX19fV2Jnbzcge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS02eGxfX19rd2M4YSB7XFxuICBoZWlnaHQ6IDQ0cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTd4bF9fX211TzFsIHtcXG4gIGhlaWdodDogNDhweDtcXG59XFxuLmhlaWdodC1tb2R1bGVfX2hlaWdodC0tOHhsX19fOXBFTU4ge1xcbiAgaGVpZ2h0OiA1MnB4O1xcbn1cXG4uaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS05eGxfX182ZTQ2USB7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTEweGxfX19YZ1hwLSB7XFxuICBoZWlnaHQ6IDYwcHg7XFxufVxcbi5oZWlnaHQtbW9kdWxlX19oZWlnaHQtLTExeGxfX19hZHd1SCB7XFxuICBoZWlnaHQ6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibWF4LWhlaWdodC0tZnVsbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tZnVsbF9fXy1pb2pmXCIsXCJtYXgtaGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS16ZXJvX19fZDU3d1dcIixcIm1heC1oZWlnaHQtLTR4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tNHhzX19fTEpVQm5cIixcIm1heC1oZWlnaHQtLTN4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tM3hzX19fLTJXby1cIixcIm1heC1oZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teHhzX19faEZyQmVcIixcIm1heC1oZWlnaHQtLXhzXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14c19fX2MycGFEXCIsXCJtYXgtaGVpZ2h0LS1zXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS1zX19fQWNwNlRcIixcIm1heC1oZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX21heC1oZWlnaHQtLW1fX19Wem9ROVwiLFwibWF4LWhlaWdodC0tbFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tbF9fX1dnbHFiXCIsXCJtYXgtaGVpZ2h0LS14bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0teGxfX19MVW1sSlwiLFwibWF4LWhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS14eGxfX19kUjN6S1wiLFwibWF4LWhlaWdodC0tM3hsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0zeGxfX19idWJURFwiLFwibWF4LWhlaWdodC0tNHhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS00eGxfX19iZFpYNlwiLFwibWF4LWhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS01eGxfX19UVVRBUlwiLFwibWF4LWhlaWdodC0tNnhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS02eGxfX19HYy1IbFwiLFwibWF4LWhlaWdodC0tN3hsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS03eGxfX19ZeGR0WFwiLFwibWF4LWhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS04eGxfX19BMld2ZFwiLFwibWF4LWhlaWdodC0tOXhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS05eGxfX19KdnJHSlwiLFwibWF4LWhlaWdodC0tMTB4bFwiOlwiaGVpZ2h0LW1vZHVsZV9fbWF4LWhlaWdodC0tMTB4bF9fX3dMUlF1XCIsXCJtYXgtaGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19tYXgtaGVpZ2h0LS0xMXhsX19fZ1UzeElcIixcIm1pbi1oZWlnaHQtLXplcm9cIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXplcm9fX19QQlY0N1wiLFwibWluLWhlaWdodC0tNHhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS00eHNfX19WM04tYlwiLFwibWluLWhlaWdodC0tM3hzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0zeHNfX190Z0RRUVwiLFwibWluLWhlaWdodC0teHhzXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14eHNfX18tcWhTelwiLFwibWluLWhlaWdodC0teHNcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXhzX19fWklwcXVcIixcIm1pbi1oZWlnaHQtLXNcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXNfX194TWlHY1wiLFwibWluLWhlaWdodC0tbVwiOlwiaGVpZ2h0LW1vZHVsZV9fbWluLWhlaWdodC0tbV9fX1ZFV0xyXCIsXCJtaW4taGVpZ2h0LS1sXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS1sX19fYTYtRjdcIixcIm1pbi1oZWlnaHQtLXhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS14bF9fXy15bEZ1XCIsXCJtaW4taGVpZ2h0LS14eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLXh4bF9fXzdLNmYtXCIsXCJtaW4taGVpZ2h0LS0zeGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTN4bF9fXzBGWlFtXCIsXCJtaW4taGVpZ2h0LS00eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTR4bF9fX2NHb0prXCIsXCJtaW4taGVpZ2h0LS01eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTV4bF9fX2ZWM2FPXCIsXCJtaW4taGVpZ2h0LS02eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTZ4bF9fX0ZrVUdDXCIsXCJtaW4taGVpZ2h0LS03eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTd4bF9fX0NzaXdWXCIsXCJtaW4taGVpZ2h0LS04eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTh4bF9fX2gtLURLXCIsXCJtaW4taGVpZ2h0LS05eGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTl4bF9fX25GTVNIXCIsXCJtaW4taGVpZ2h0LS0xMHhsXCI6XCJoZWlnaHQtbW9kdWxlX19taW4taGVpZ2h0LS0xMHhsX19fS2EtY0FcIixcIm1pbi1oZWlnaHQtLTExeGxcIjpcImhlaWdodC1tb2R1bGVfX21pbi1oZWlnaHQtLTExeGxfX19mUXNnY1wiLFwiaGVpZ2h0LS1zdHJldGNoXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXN0cmV0Y2hfX19yWWFZblwiLFwiaGVpZ2h0LS1mdWxsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWZ1bGxfX192V3hpZVwiLFwiaGVpZ2h0LS1hdXRvXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLWF1dG9fX182N25GTlwiLFwiaGVpZ2h0LS16ZXJvXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXplcm9fX19BcUEwUFwiLFwiaGVpZ2h0LS00eHNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhzX19fRmRKMGhcIixcImhlaWdodC0tM3hzXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTN4c19fX2FzVUpiXCIsXCJoZWlnaHQtLXh4c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14eHNfX19ZcVRxcFwiLFwiaGVpZ2h0LS14c1wiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS14c19fX2xOUnRZXCIsXCJoZWlnaHQtLXNcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tc19fX0g3bS0tXCIsXCJoZWlnaHQtLW1cIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tbV9fX0NtTHAxXCIsXCJoZWlnaHQtLWxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tbF9fXzJ0a2toXCIsXCJoZWlnaHQtLXhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXhsX19fN3hCSmlcIixcImhlaWdodC0teHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLXh4bF9fX0NqU3U1XCIsXCJoZWlnaHQtLTN4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS0zeGxfX19wVWR2TlwiLFwiaGVpZ2h0LS00eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tNHhsX19fUUhaWXlcIixcImhlaWdodC0tNXhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTV4bF9fX1diZ283XCIsXCJoZWlnaHQtLTZ4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS02eGxfX19rd2M4YVwiLFwiaGVpZ2h0LS03eGxcIjpcImhlaWdodC1tb2R1bGVfX2hlaWdodC0tN3hsX19fbXVPMWxcIixcImhlaWdodC0tOHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTh4bF9fXzlwRU1OXCIsXCJoZWlnaHQtLTl4bFwiOlwiaGVpZ2h0LW1vZHVsZV9faGVpZ2h0LS05eGxfX182ZTQ2UVwiLFwiaGVpZ2h0LS0xMHhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTEweGxfX19YZ1hwLVwiLFwiaGVpZ2h0LS0xMXhsXCI6XCJoZWlnaHQtbW9kdWxlX19oZWlnaHQtLTExeGxfX19hZHd1SFwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9oaWRkZW4vaGlkZGVuLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaGlkZGVuLW1vZHVsZV9faGlkZGVuX19fblVVaTEge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJoaWRkZW5cIjpcImhpZGRlbi1tb2R1bGVfX2hpZGRlbl9fX25VVWkxXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL2ludGVyYWN0aXZlL2ludGVyYWN0aXZlLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcXG4gIHRyYW5zaXRpb246IDI1MG1zIGNvbG9yLCAyNTBtcyBvcGFjaXR5LCAxNTBtcyBiYWNrZ3JvdW5kLWNvbG9yLCAxNTBtcyBib3gtc2hhZG93O1xcbn1cXG4uaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoOm5vdCguaW50ZXJhY3RpdmUtbW9kdWxlX19pZ25vcmVGb2N1c1Zpc2libGVfX19XZHJERyk6Zm9jdXMtdmlzaWJsZSB7XFxuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYmx1ZSk7XFxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XFxufVxcbi5pbnRlcmFjdGl2ZS1tb2R1bGVfX2ludGVyYWN0aXZlX19fRmxVdWg6aG92ZXIge1xcbiAgY29sb3I6IHZhcigtLWljb25BY3RpdmVDb2xvcik7XFxuICBib3gtc2hhZG93OiAwIDAgMCAwIHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG59XFxuLmludGVyYWN0aXZlLW1vZHVsZV9faW50ZXJhY3RpdmVfX19GbFV1aC5pbnRlcmFjdGl2ZS1tb2R1bGVfX2FjdGl2ZV9fX29tbTd5IHtcXG4gIGNvbG9yOiB2YXIoLS1pY29uQWN0aXZlQ29sb3IpO1xcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWljb25BY3RpdmVCYWNrZ3JvdW5kKTtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJpbnRlcmFjdGl2ZVwiOlwiaW50ZXJhY3RpdmUtbW9kdWxlX19pbnRlcmFjdGl2ZV9fX0ZsVXVoXCIsXCJpZ25vcmVGb2N1c1Zpc2libGVcIjpcImludGVyYWN0aXZlLW1vZHVsZV9faWdub3JlRm9jdXNWaXNpYmxlX19fV2RyREdcIixcImFjdGl2ZVwiOlwiaW50ZXJhY3RpdmUtbW9kdWxlX19hY3RpdmVfX19vbW03eVwifTsiLCAiaW1wb3J0IHsgYXNTdHlsZXNoZWV0IH0gZnJvbSBcIkBrOHNsZW5zL3N0eWxlc2hlZXQtY29udHJhY3RzXCI7XG5leHBvcnQgY29uc3Qgc3R5bGVzaGVldCA9IGFzU3R5bGVzaGVldCh7IGlkOiBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50cy9zcmMvcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wLm1vZHVsZS5zY3NzXCIsIGNzczogXCIuaW52aXNpYmxlLWJhY2tkcm9wLW1vZHVsZV9faW52aXNpYmxlQmFja2Ryb3BfX19oT2g1Yjo6YmFja2Ryb3Age1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wiaW52aXNpYmxlQmFja2Ryb3BcIjpcImludmlzaWJsZS1iYWNrZHJvcC1tb2R1bGVfX2ludmlzaWJsZUJhY2tkcm9wX19faE9oNWJcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvbWFyZ2luL21hcmdpbi5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS16ZXJvX19fZ0dMcXcge1xcbiAgbWFyZ2luLXRvcDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4c19fX0V2OHI3IHtcXG4gIG1hcmdpbi10b3A6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeHNfX19tNFlPWiB7XFxuICBtYXJnaW4tdG9wOiAycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhzX19fb3BYdnAge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXhzX19fSklqWUMge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXNfX19ZTjhESSB7XFxuICBtYXJnaW4tdG9wOiAxMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLW1fX19Yd2stUyB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLWxfX19LVFdpRyB7XFxuICBtYXJnaW4tdG9wOiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXhsX19fOUlPYloge1xcbiAgbWFyZ2luLXRvcDogMjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14eGxfX18zTVd6cCB7XFxuICBtYXJnaW4tdG9wOiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTN4bF9fX004eEgzIHtcXG4gIG1hcmdpbi10b3A6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNHhsX19fcnZOSFIge1xcbiAgbWFyZ2luLXRvcDogMzZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS01eGxfX19JbkVSeCB7XFxuICBtYXJnaW4tdG9wOiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTZ4bF9fX1BTLXQ2IHtcXG4gIG1hcmdpbi10b3A6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tN3hsX19fUDVZYnoge1xcbiAgbWFyZ2luLXRvcDogNDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS04eGxfX185Nk1vSyB7XFxuICBtYXJnaW4tdG9wOiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTl4bF9fX29wZURjIHtcXG4gIG1hcmdpbi10b3A6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTB4bF9fX3B2RjZ4IHtcXG4gIG1hcmdpbi10b3A6IDYwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTF4bF9fX3BCekFtIHtcXG4gIG1hcmdpbi10b3A6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS16ZXJvX19fQld3Nk8ge1xcbiAgbWFyZ2luLXJpZ2h0OiAwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS00eHNfX19yZFBPbyB7XFxuICBtYXJnaW4tcmlnaHQ6IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLTN4c19fXy1ZOU9PIHtcXG4gIG1hcmdpbi1yaWdodDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhzX19fSnJvQUEge1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14c19fX1psOE1pIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tc19fXzI0REluIHtcXG4gIG1hcmdpbi1yaWdodDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLW1fX19aTGw2QiB7XFxuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1sX19fZUhTLUIge1xcbiAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teGxfX19JVzhkNCB7XFxuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14eGxfX18tT0Q3TCB7XFxuICBtYXJnaW4tcmlnaHQ6IDI4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeGxfX190R1lSUiB7XFxuICBtYXJnaW4tcmlnaHQ6IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS00eGxfX19FWHFoMyB7XFxuICBtYXJnaW4tcmlnaHQ6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS01eGxfX19DdVlWRyB7XFxuICBtYXJnaW4tcmlnaHQ6IDQwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS02eGxfX19ES2dEVCB7XFxuICBtYXJnaW4tcmlnaHQ6IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS03eGxfX19Geng0YiB7XFxuICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS04eGxfX19FbFNXTSB7XFxuICBtYXJnaW4tcmlnaHQ6IDUycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS05eGxfX18wb2FUeCB7XFxuICBtYXJnaW4tcmlnaHQ6IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0xMHhsX19fUTU1UEMge1xcbiAgbWFyZ2luLXJpZ2h0OiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTF4bF9fX3AwMmtuIHtcXG4gIG1hcmdpbi1yaWdodDogNjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS16ZXJvX19fbi1OVlEge1xcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4c19fX2lKSmFhIHtcXG4gIG1hcmdpbi1ib3R0b206IDFweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeHNfX19md1FkMSB7XFxuICBtYXJnaW4tYm90dG9tOiAycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhzX19fNlVhZkgge1xcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXhzX19fejJKMWUge1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXNfX18tSEY2USB7XFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLW1fX19KSk9SRSB7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLWxfX19HSVpjRiB7XFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXhsX19fTTRBd04ge1xcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14eGxfX19UcjhtWiB7XFxuICBtYXJnaW4tYm90dG9tOiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTN4bF9fXy0wWi1IIHtcXG4gIG1hcmdpbi1ib3R0b206IDMycHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNHhsX19fNGxrU0Yge1xcbiAgbWFyZ2luLWJvdHRvbTogMzZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS01eGxfX196aXpVUCB7XFxuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTZ4bF9fX3NNbXRLIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tN3hsX19fSk9BWnIge1xcbiAgbWFyZ2luLWJvdHRvbTogNDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS04eGxfX19BNVE0QyB7XFxuICBtYXJnaW4tYm90dG9tOiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTl4bF9fXzd1U3p2IHtcXG4gIG1hcmdpbi1ib3R0b206IDU2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTB4bF9fX0ptUUo1IHtcXG4gIG1hcmdpbi1ib3R0b206IDYwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTF4bF9fXzZLRVlzIHtcXG4gIG1hcmdpbi1ib3R0b206IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXplcm9fX192Q3ZTbyB7XFxuICBtYXJnaW4tbGVmdDogMHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS00eHNfX19sSzUteSB7XFxuICBtYXJnaW4tbGVmdDogMXB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeHNfX183LXhWLSB7XFxuICBtYXJnaW4tbGVmdDogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14eHNfX19nZTZWSiB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS14c19fX2R2clVqIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXNfX19ETVpKMiB7XFxuICBtYXJnaW4tbGVmdDogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tbV9fXzVwZWR3IHtcXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1sX19fLVN4REkge1xcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhsX19fNk4ta1oge1xcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4bF9fX1lrYXBZIHtcXG4gIG1hcmdpbi1sZWZ0OiAyOHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0zeGxfX184VVV1eCB7XFxuICBtYXJnaW4tbGVmdDogMzJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNHhsX19fYXFsNWIge1xcbiAgbWFyZ2luLWxlZnQ6IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTV4bF9fX2hRTnRwIHtcXG4gIG1hcmdpbi1sZWZ0OiA0MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS02eGxfX19TcVAzMSB7XFxuICBtYXJnaW4tbGVmdDogNDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tN3hsX19fZTBqLWoge1xcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTh4bF9fX3VrcFZ6IHtcXG4gIG1hcmdpbi1sZWZ0OiA1MnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS05eGxfX19sTkhCVCB7XFxuICBtYXJnaW4tbGVmdDogNTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTB4bF9fX0NCVVNuIHtcXG4gIG1hcmdpbi1sZWZ0OiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS0xMXhsX19fdWNLQzgge1xcbiAgbWFyZ2luLWxlZnQ6IDY0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXplcm9fX195S0xESCB7XFxuICBtYXJnaW46IDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNHhzX19fN25qc2kge1xcbiAgbWFyZ2luOiAxcHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4c19fX2tXQmJlIHtcXG4gIG1hcmdpbjogMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS14eHNfX19mWmlVYSB7XFxuICBtYXJnaW46IDRweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHNfX18tdGRPaiB7XFxuICBtYXJnaW46IDhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tc19fXzB4UDBnIHtcXG4gIG1hcmdpbjogMTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbV9fX1dkNHBwIHtcXG4gIG1hcmdpbjogMTZweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tbF9fX3lNVVhzIHtcXG4gIG1hcmdpbjogMjBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teGxfX193alpQUiB7XFxuICBtYXJnaW46IDI0cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4bF9fX0VtNFQ3IHtcXG4gIG1hcmdpbjogMjhweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tM3hsX19fY1FaSGYge1xcbiAgbWFyZ2luOiAzMnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS00eGxfX183SVdyTSB7XFxuICBtYXJnaW46IDM2cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTV4bF9fX2NTT1VRIHtcXG4gIG1hcmdpbjogNDBweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNnhsX19fRjNiU20ge1xcbiAgbWFyZ2luOiA0NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS03eGxfX18xVVFtSiB7XFxuICBtYXJnaW46IDQ4cHg7XFxufVxcblxcbi5tYXJnaW4tbW9kdWxlX19tYXJnaW4tLTh4bF9fX0dFMFN2IHtcXG4gIG1hcmdpbjogNTJweDtcXG59XFxuXFxuLm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tOXhsX19faDVoaEUge1xcbiAgbWFyZ2luOiA1NnB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0xMHhsX19fZEdLLVIge1xcbiAgbWFyZ2luOiA2MHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS0xMXhsX19fM3l4QnAge1xcbiAgbWFyZ2luOiA2NHB4O1xcbn1cXG5cXG4ubWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1hdXRvX19feTdnZjkge1xcbiAgbWFyZ2luOiBhdXRvO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm1hcmdpbl9fdG9wLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0temVyb19fX2dHTHF3XCIsXCJtYXJnaW5fX3RvcC0tNHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNHhzX19fRXY4cjdcIixcIm1hcmdpbl9fdG9wLS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeHNfX19tNFlPWlwiLFwibWFyZ2luX190b3AtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXh4c19fX29wWHZwXCIsXCJtYXJnaW5fX3RvcC0teHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14c19fX0pJallDXCIsXCJtYXJnaW5fX3RvcC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLXNfX19ZTjhESVwiLFwibWFyZ2luX190b3AtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS1tX19fWHdrLVNcIixcIm1hcmdpbl9fdG9wLS1sXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tbF9fX0tUV2lHXCIsXCJtYXJnaW5fX3RvcC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS14bF9fXzlJT2JaXCIsXCJtYXJnaW5fX3RvcC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0teHhsX19fM01XenBcIixcIm1hcmdpbl9fdG9wLS0zeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0zeGxfX19NOHhIM1wiLFwibWFyZ2luX190b3AtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTR4bF9fX3J2TkhSXCIsXCJtYXJnaW5fX3RvcC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tNXhsX19fSW5FUnhcIixcIm1hcmdpbl9fdG9wLS02eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS02eGxfX19QUy10NlwiLFwibWFyZ2luX190b3AtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX190b3AtLTd4bF9fX1A1WWJ6XCIsXCJtYXJnaW5fX3RvcC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tOHhsX19fOTZNb0tcIixcIm1hcmdpbl9fdG9wLS05eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS05eGxfX19vcGVEY1wiLFwibWFyZ2luX190b3AtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fdG9wLS0xMHhsX19fcHZGNnhcIixcIm1hcmdpbl9fdG9wLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3RvcC0tMTF4bF9fX3BCekFtXCIsXCJtYXJnaW5fX3JpZ2h0LS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS16ZXJvX19fQld3Nk9cIixcIm1hcmdpbl9fcmlnaHQtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tNHhzX19fcmRQT29cIixcIm1hcmdpbl9fcmlnaHQtLTN4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tM3hzX19fLVk5T09cIixcIm1hcmdpbl9fcmlnaHQtLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teHhzX19fSnJvQUFcIixcIm1hcmdpbl9fcmlnaHQtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14c19fX1psOE1pXCIsXCJtYXJnaW5fX3JpZ2h0LS1zXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS1zX19fMjRESW5cIixcIm1hcmdpbl9fcmlnaHQtLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fcmlnaHQtLW1fX19aTGw2QlwiLFwibWFyZ2luX19yaWdodC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tbF9fX2VIUy1CXCIsXCJtYXJnaW5fX3JpZ2h0LS14bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0teGxfX19JVzhkNFwiLFwibWFyZ2luX19yaWdodC0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS14eGxfX18tT0Q3TFwiLFwibWFyZ2luX19yaWdodC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0zeGxfX190R1lSUlwiLFwibWFyZ2luX19yaWdodC0tNHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS00eGxfX19FWHFoM1wiLFwibWFyZ2luX19yaWdodC0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS01eGxfX19DdVlWR1wiLFwibWFyZ2luX19yaWdodC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS02eGxfX19ES2dEVFwiLFwibWFyZ2luX19yaWdodC0tN3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS03eGxfX19Geng0YlwiLFwibWFyZ2luX19yaWdodC0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS04eGxfX19FbFNXTVwiLFwibWFyZ2luX19yaWdodC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS05eGxfX18wb2FUeFwiLFwibWFyZ2luX19yaWdodC0tMTB4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19yaWdodC0tMTB4bF9fX1E1NVBDXCIsXCJtYXJnaW5fX3JpZ2h0LS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX3JpZ2h0LS0xMXhsX19fcDAya25cIixcIm1hcmdpbl9fYm90dG9tLS16ZXJvXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0temVyb19fX24tTlZRXCIsXCJtYXJnaW5fX2JvdHRvbS0tNHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNHhzX19faUpKYWFcIixcIm1hcmdpbl9fYm90dG9tLS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeHNfX19md1FkMVwiLFwibWFyZ2luX19ib3R0b20tLXh4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXh4c19fXzZVYWZIXCIsXCJtYXJnaW5fX2JvdHRvbS0teHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14c19fX3oySjFlXCIsXCJtYXJnaW5fX2JvdHRvbS0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLXNfX18tSEY2UVwiLFwibWFyZ2luX19ib3R0b20tLW1cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS1tX19fSkpPUkVcIixcIm1hcmdpbl9fYm90dG9tLS1sXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tbF9fX0dJWmNGXCIsXCJtYXJnaW5fX2JvdHRvbS0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS14bF9fX000QXdOXCIsXCJtYXJnaW5fX2JvdHRvbS0teHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0teHhsX19fVHI4bVpcIixcIm1hcmdpbl9fYm90dG9tLS0zeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0zeGxfX18tMFotSFwiLFwibWFyZ2luX19ib3R0b20tLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTR4bF9fXzRsa1NGXCIsXCJtYXJnaW5fX2JvdHRvbS0tNXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tNXhsX19feml6VVBcIixcIm1hcmdpbl9fYm90dG9tLS02eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS02eGxfX19zTW10S1wiLFwibWFyZ2luX19ib3R0b20tLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19ib3R0b20tLTd4bF9fX0pPQVpyXCIsXCJtYXJnaW5fX2JvdHRvbS0tOHhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tOHhsX19fQTVRNENcIixcIm1hcmdpbl9fYm90dG9tLS05eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS05eGxfX183dVN6dlwiLFwibWFyZ2luX19ib3R0b20tLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fYm90dG9tLS0xMHhsX19fSm1RSjVcIixcIm1hcmdpbl9fYm90dG9tLS0xMXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2JvdHRvbS0tMTF4bF9fXzZLRVlzXCIsXCJtYXJnaW5fX2xlZnQtLXplcm9cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0temVyb19fX3ZDdlNvXCIsXCJtYXJnaW5fX2xlZnQtLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS00eHNfX19sSzUteVwiLFwibWFyZ2luX19sZWZ0LS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tM3hzX19fNy14Vi1cIixcIm1hcmdpbl9fbGVmdC0teHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXh4c19fX2dlNlZKXCIsXCJtYXJnaW5fX2xlZnQtLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLXhzX19fZHZyVWpcIixcIm1hcmdpbl9fbGVmdC0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1zX19fRE1aSjJcIixcIm1hcmdpbl9fbGVmdC0tbVwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1tX19fNXBlZHdcIixcIm1hcmdpbl9fbGVmdC0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS1sX19fLVN4RElcIixcIm1hcmdpbl9fbGVmdC0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teGxfX182Ti1rWlwiLFwibWFyZ2luX19sZWZ0LS14eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0teHhsX19fWWthcFlcIixcIm1hcmdpbl9fbGVmdC0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTN4bF9fXzhVVXV4XCIsXCJtYXJnaW5fX2xlZnQtLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS00eGxfX19hcWw1YlwiLFwibWFyZ2luX19sZWZ0LS01eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tNXhsX19faFFOdHBcIixcIm1hcmdpbl9fbGVmdC0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTZ4bF9fX1NxUDMxXCIsXCJtYXJnaW5fX2xlZnQtLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luX19sZWZ0LS03eGxfX19lMGotalwiLFwibWFyZ2luX19sZWZ0LS04eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tOHhsX19fdWtwVnpcIixcIm1hcmdpbl9fbGVmdC0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW5fX2xlZnQtLTl4bF9fX2xOSEJUXCIsXCJtYXJnaW5fX2xlZnQtLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTB4bF9fX0NCVVNuXCIsXCJtYXJnaW5fX2xlZnQtLTExeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbl9fbGVmdC0tMTF4bF9fX3VjS0M4XCIsXCJtYXJnaW4tLXplcm9cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0temVyb19fX3lLTERIXCIsXCJtYXJnaW4tLTR4c1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS00eHNfX183bmpzaVwiLFwibWFyZ2luLS0zeHNcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tM3hzX19fa1dCYmVcIixcIm1hcmdpbi0teHhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXh4c19fX2ZaaVVhXCIsXCJtYXJnaW4tLXhzXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLXhzX19fLXRkT2pcIixcIm1hcmdpbi0tc1wiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1zX19fMHhQMGdcIixcIm1hcmdpbi0tbVwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1tX19fV2Q0cHBcIixcIm1hcmdpbi0tbFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS1sX19feU1VWHNcIixcIm1hcmdpbi0teGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teGxfX193alpQUlwiLFwibWFyZ2luLS14eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0teHhsX19fRW00VDdcIixcIm1hcmdpbi0tM3hsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTN4bF9fX2NRWkhmXCIsXCJtYXJnaW4tLTR4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS00eGxfX183SVdyTVwiLFwibWFyZ2luLS01eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tNXhsX19fY1NPVVFcIixcIm1hcmdpbi0tNnhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTZ4bF9fX0YzYlNtXCIsXCJtYXJnaW4tLTd4bFwiOlwibWFyZ2luLW1vZHVsZV9fbWFyZ2luLS03eGxfX18xVVFtSlwiLFwibWFyZ2luLS04eGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tOHhsX19fR0UwU3ZcIixcIm1hcmdpbi0tOXhsXCI6XCJtYXJnaW4tbW9kdWxlX19tYXJnaW4tLTl4bF9fX2g1aGhFXCIsXCJtYXJnaW4tLTEweGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTB4bF9fX2RHSy1SXCIsXCJtYXJnaW4tLTExeGxcIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tMTF4bF9fXzN5eEJwXCIsXCJtYXJnaW4tLWF1dG9cIjpcIm1hcmdpbi1tb2R1bGVfX21hcmdpbi0tYXV0b19fX3k3Z2Y5XCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL29mZnNldC1jaGlsZHJlbi9vZmZzZXQtY2hpbGRyZW4ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0temVyb19fXzhseUdpID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0temVyb19fX0RiSTNqID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0temVyb19fX2loblNYID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS16ZXJvX19fUTRMWE8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTR4c19fX0xmTTB4ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNHhzX19fWWV5dzYgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eHNfX19UQWFESyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhzX19fNmlXVW8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4c19fX3Vya2lnID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hzX19feVhIM3ogPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0zeHNfX19nQXpWQSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hzX19fV3I0OGMgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXh4c19fX2RxVFRTID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhzX19fRXA2NlIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eHNfX185dlBZZCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhzX19fanV1S3AgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhzX19fbnc1YWEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14c19fX0pnQzZsID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHNfX19jeHRWeCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC04cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHNfX18yaVA1ZyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tc19fX0htMmlwID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXNfX19XYTM4TiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1zX19fV1dCRmggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1zX19fd3pGVjkgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1tX19fWmpPQ00gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbV9fX2lwRGtXID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLW1fX19ZOHFEVyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLW1fX180WEpmdiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLWxfX19RdlRSbyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1sX19fRUdrQVIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tbF9fX1VuVUh2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tbF9fX2pWTk5YID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teGxfX19FTmNjWCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14bF9fX2JtcnNhID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXhsX19fS2pvLWMgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14bF9fX0RIUnV5ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhsX19fb25qZUEgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0teHhsX19fdi0xVGwgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyOHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhsX19faS1jMmggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14eGxfX19xRzA4NSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDI4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4bF9fX0w5bXNRID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTN4bF9fX3dNTWJtID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4bF9fX2JTU09yID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tM3hsX19fZTlXN3YgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS00eGxfX19WQWsteCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eGxfX19EeXk1WCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDM2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eGxfX19YMHg1YSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zNnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4bF9fX1F1bC1qID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNXhsX19fZVc1UWsgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNXhsX19fcGlhLVogPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNXhsX19faUFBaG8gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNDBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS01eGxfX194anVDTCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTZ4bF9fX0MwV3ZrID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQ0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTZ4bF9fXzg0enAtID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDRweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTZ4bF9fX2l1ZUJGID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTQ0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNnhsX19fVU5RLUIgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS03eGxfX19oUGNsYyA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00OHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS03eGxfX181Ulp3USA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQ4cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS03eGxfX19ISXA2QiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00OHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTd4bF9fX0ZpT0VJID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDhweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tOHhsX19fZ3Q0ZnUgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tOHhsX19fZlBFT0QgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tOHhsX19fLXRUZlAgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTJweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS04eGxfX19kVVhSaCA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDUycHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTl4bF9fX2tSTkE2ID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTU2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTl4bF9fX2piSGFCID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTZweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTl4bF9fX1NGZ1BsID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTU2cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOXhsX19fVEppZUggPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1NnB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMHhsX19fLXV0T24gPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTB4bF9fX2E1OXdUID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNjBweCk7XFxufVxcbi5vZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTEweGxfX19LY2V6ZSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02MHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTEweGxfX19Ob21ZdSA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTExeGxfX19TWXRnbiA+ICoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMXhsX19fUDYydTQgPiAqIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2NHB4KTtcXG59XFxuLm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTF4bF9fX2cwb29lID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTY0cHgpO1xcbn1cXG4ub2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tMTF4bF9fX0VPV0wtID4gKiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjRweCk7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wib2Zmc2V0LWNoaWxkcmVuX190b3AtLXplcm9cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS16ZXJvX19fOGx5R2lcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0temVyb19fX0RiSTNqXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXplcm9cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0temVyb19fX2loblNYXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS16ZXJvXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS16ZXJvX19fUTRMWE9cIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS00eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS00eHNfX19MZk0weFwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTR4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTR4c19fX1lleXc2XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTR4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eHNfX19UQWFES1wiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS00eHNfX182aVdVb1wiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4c19fX3Vya2lnXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hzX19feVhIM3pcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tM3hzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4c19fX2dBelZBXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4c19fX1dyNDhjXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhzXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0teHhzX19fZHFUVFNcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14eHNfX19FcDY2UlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHhzX19fOXZQWWRcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXh4c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhzX19fanV1S3BcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS14c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhzX19fbnc1YWFcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14c1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXhzX19fSmdDNmxcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teHNfX19jeHRWeFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHNcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhzX19fMmlQNWdcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS1zXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tc19fX0htMmlwXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXNfX19XYTM4TlwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1zXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXNfX19XV0JGaFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tc1wiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tc19fX3d6RlY5XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tbVwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLW1fX19aak9DTVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1tX19faXBEa1dcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tbVwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS1tX19fWThxRFdcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLW1cIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLW1fX180WEpmdlwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLWxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS1sX19fUXZUUm9cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tbF9fX0VHa0FSXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLWxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tbF9fX1VuVUh2XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1sXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS1sX19falZOTlhcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS14bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLXhsX19fRU5jY1hcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS14bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXhsX19fYm1yc2FcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0teGxfX19Lam8tY1wiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLXhsX19fREhSdXlcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS14eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS14eGxfX19vbmplQVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLXh4bF9fX3YtMVRsXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLXh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS14eGxfX19pLWMyaFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0teHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS14eGxfX19xRzA4NVwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTN4bF9fX0w5bXNRXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tM3hsX19fd01NYm1cIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tM3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTN4bF9fX2JTU09yXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0zeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTN4bF9fX2U5Vzd2XCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tNHhsX19fVkFrLXhcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS00eGxfX19EeXk1WFwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS00eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tNHhsX19fWDB4NWFcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTR4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNHhsX19fUXVsLWpcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS01eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS01eGxfX19lVzVRa1wiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTV4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTV4bF9fX3BpYS1aXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTV4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS01eGxfX19pQUFob1wiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tNXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS01eGxfX194anVDTFwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTZ4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTZ4bF9fX0MwV3ZrXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNnhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tNnhsX19fODR6cC1cIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tNnhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTZ4bF9fX2l1ZUJGXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS02eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTZ4bF9fX1VOUS1CXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tN3hsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3RvcC0tN3hsX19faFBjbGNcIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS03eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS03eGxfX181Ulp3UVwiLFwib2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS03eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tN3hsX19fSElwNkJcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTd4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tN3hsX19fRmlPRUlcIixcIm9mZnNldC1jaGlsZHJlbl9fdG9wLS04eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS04eGxfX19ndDRmdVwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTh4bF9fX2ZQRU9EXCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTh4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS04eGxfX18tdFRmUFwiLFwib2Zmc2V0LWNoaWxkcmVuX19yaWdodC0tOHhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS04eGxfX19kVVhSaFwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTl4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTl4bF9fX2tSTkE2XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tOXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tOXhsX19famJIYUJcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tOXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTl4bF9fX1NGZ1BsXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS05eGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTl4bF9fX1RKaWVIXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3RvcC0tMTB4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX190b3AtLTEweGxfX18tdXRPblwiLFwib2Zmc2V0LWNoaWxkcmVuX19ib3R0b20tLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMHhsX19fYTU5d1RcIixcIm9mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTB4bFwiOlwib2Zmc2V0LWNoaWxkcmVuLW1vZHVsZV9fb2Zmc2V0LWNoaWxkcmVuX19sZWZ0LS0xMHhsX19fS2NlemVcIixcIm9mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTEweGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fcmlnaHQtLTEweGxfX19Ob21ZdVwiLFwib2Zmc2V0LWNoaWxkcmVuX190b3AtLTExeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fdG9wLS0xMXhsX19fU1l0Z25cIixcIm9mZnNldC1jaGlsZHJlbl9fYm90dG9tLS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX2JvdHRvbS0tMTF4bF9fX1A2MnU0XCIsXCJvZmZzZXQtY2hpbGRyZW5fX2xlZnQtLTExeGxcIjpcIm9mZnNldC1jaGlsZHJlbi1tb2R1bGVfX29mZnNldC1jaGlsZHJlbl9fbGVmdC0tMTF4bF9fX2cwb29lXCIsXCJvZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMXhsXCI6XCJvZmZzZXQtY2hpbGRyZW4tbW9kdWxlX19vZmZzZXQtY2hpbGRyZW5fX3JpZ2h0LS0xMXhsX19fRU9XTC1cIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvb2Zmc2V0L29mZnNldC5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS16ZXJvX19fYXByT3Ige1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXplcm9fX19iRk55NCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0temVyb19fXzVLZE14IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXplcm9fX19EcmowdSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS00eHNfX19GYTh6ZSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNHhzX19fSmM3Wncge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4c19fX3Q3akd6IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTR4c19fXzJtY0xaIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTN4c19fX2hIeEFLIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0zeHNfX19xUDNMdiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hzX19fTm1EN2kge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0ycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tM3hzX19fOVlsdWUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHhzX19fWkFLeG8ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXh4c19fX2s5RjR4IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14eHNfX19FRWY0RCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14eHNfX18tSjc1SyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14c19fX2lycG5hIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14c19fXzNHWG9IIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14c19fXzdXWUpJIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXhzX19fcVktbE8ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDhweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tc19fX05kUktxIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tc19fX1lLZjllIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tc19fX21peHBBIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTJweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1zX19fbTZqZjUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLW1fX19FWGtxaSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLW1fX19PdmxZciB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTZweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLW1fX19YUy1QRyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tbV9fX28welotIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1sX19fMGJHYVAge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1sX19fUzEtTFcge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1sX19faFMxYjMge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLWxfX192UTRZeiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teGxfX182TWZLViB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXhsX19fZGdiV1cge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDI0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS14bF9fXzBhV0I1IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14bF9fX3lQejhPIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14eGxfX19pdkpSZCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXh4bF9fX1p0RTZaIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHhsX19fNGxLLUUge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXh4bF9fX0VNOHJCIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyOHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0zeGxfX19BOUJrbiB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTN4bF9fX3pDOC1hIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tM3hsX19fV3JMLVQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTN4bF9fX25lV2FwIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS00eGxfX19CV1E5aSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTM2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTR4bF9fXzhYNGtFIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNHhsX19fSGM0MFQge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTR4bF9fX3NSakdRIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzNnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS01eGxfX182dVJYWSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTV4bF9fX25XYzZuIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNXhsX19fVmtXekoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTV4bF9fX2NuZ0tFIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS02eGxfX190cjdoSCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQ0cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTZ4bF9fX0NZVTFNIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNnhsX19fMEl1TWIge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTZ4bF9fXy0xc3dvIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS03eGxfX19ONy1YZCB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQ4cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTd4bF9fXy1wQWh5IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0OHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tN3hsX19fbXhWcmsge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC00OHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTd4bF9fX256dWxQIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0OHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS04eGxfX19lTS03VyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUycHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTh4bF9fX2VucEVtIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tOHhsX19famlGWW4ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTh4bF9fX0ZOcU5zIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS05eGxfX18tQ21oOSB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTU2cHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTl4bF9fX3R3RTN0IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1NnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tOXhsX19fNzVtdWIge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01NnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTl4bF9fX2tDU3NDIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1NnB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0xMHhsX19famxiaFoge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS0xMHhsX19fcmV5VHEge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDYwcHgpO1xcbn1cXG4ub2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0xMHhsX19fOXAzY24ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02MHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTEweGxfX190LXZvNyB7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNjBweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTF4bF9fXzBuclphIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tMTF4bF9fX3djZldnIHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2NHB4KTtcXG59XFxuLm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tMTF4bF9fX3NJdGc1IHtcXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjRweCk7XFxufVxcbi5vZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0xMXhsX19fTlVwLW4ge1xcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDY0cHgpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm9mZnNldF9fdG9wLS16ZXJvXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0temVyb19fX2Fwck9yXCIsXCJvZmZzZXRfX2JvdHRvbS0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLXplcm9fX19iRk55NFwiLFwib2Zmc2V0X19sZWZ0LS16ZXJvXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXplcm9fX181S2RNeFwiLFwib2Zmc2V0X19yaWdodC0temVyb1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0temVyb19fX0RyajB1XCIsXCJvZmZzZXRfX3RvcC0tNHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNHhzX19fRmE4emVcIixcIm9mZnNldF9fYm90dG9tLS00eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS00eHNfX19KYzdad1wiLFwib2Zmc2V0X19sZWZ0LS00eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNHhzX19fdDdqR3pcIixcIm9mZnNldF9fcmlnaHQtLTR4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNHhzX19fMm1jTFpcIixcIm9mZnNldF9fdG9wLS0zeHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0zeHNfX19oSHhBS1wiLFwib2Zmc2V0X19ib3R0b20tLTN4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTN4c19fX3FQM0x2XCIsXCJvZmZzZXRfX2xlZnQtLTN4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0zeHNfX19ObUQ3aVwiLFwib2Zmc2V0X19yaWdodC0tM3hzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0zeHNfX185WWx1ZVwiLFwib2Zmc2V0X190b3AtLXh4c1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXh4c19fX1pBS3hvXCIsXCJvZmZzZXRfX2JvdHRvbS0teHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0teHhzX19fazlGNHhcIixcIm9mZnNldF9fbGVmdC0teHhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXh4c19fX0VFZjREXCIsXCJvZmZzZXRfX3JpZ2h0LS14eHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXh4c19fXy1KNzVLXCIsXCJvZmZzZXRfX3RvcC0teHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14c19fX2lycG5hXCIsXCJvZmZzZXRfX2JvdHRvbS0teHNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14c19fXzNHWG9IXCIsXCJvZmZzZXRfX2xlZnQtLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXhzX19fN1dZSklcIixcIm9mZnNldF9fcmlnaHQtLXhzXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14c19fX3FZLWxPXCIsXCJvZmZzZXRfX3RvcC0tc1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLXNfX19OZFJLcVwiLFwib2Zmc2V0X19ib3R0b20tLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS1zX19fWUtmOWVcIixcIm9mZnNldF9fbGVmdC0tc1wiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS1zX19fbWl4cEFcIixcIm9mZnNldF9fcmlnaHQtLXNcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLXNfX19tNmpmNVwiLFwib2Zmc2V0X190b3AtLW1cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS1tX19fRVhrcWlcIixcIm9mZnNldF9fYm90dG9tLS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tbV9fX092bFlyXCIsXCJvZmZzZXRfX2xlZnQtLW1cIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tbV9fX1hTLVBHXCIsXCJvZmZzZXRfX3JpZ2h0LS1tXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS1tX19fbzB6Wi1cIixcIm9mZnNldF9fdG9wLS1sXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tbF9fXzBiR2FQXCIsXCJvZmZzZXRfX2JvdHRvbS0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLWxfX19TMS1MV1wiLFwib2Zmc2V0X19sZWZ0LS1sXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLWxfX19oUzFiM1wiLFwib2Zmc2V0X19yaWdodC0tbFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tbF9fX3ZRNFl6XCIsXCJvZmZzZXRfX3RvcC0teGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS14bF9fXzZNZktWXCIsXCJvZmZzZXRfX2JvdHRvbS0teGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14bF9fX2RnYldXXCIsXCJvZmZzZXRfX2xlZnQtLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLXhsX19fMGFXQjVcIixcIm9mZnNldF9fcmlnaHQtLXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS14bF9fX3lQejhPXCIsXCJvZmZzZXRfX3RvcC0teHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0teHhsX19faXZKUmRcIixcIm9mZnNldF9fYm90dG9tLS14eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS14eGxfX19adEU2WlwiLFwib2Zmc2V0X19sZWZ0LS14eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0teHhsX19fNGxLLUVcIixcIm9mZnNldF9fcmlnaHQtLXh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0teHhsX19fRU04ckJcIixcIm9mZnNldF9fdG9wLS0zeGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0zeGxfX19BOUJrblwiLFwib2Zmc2V0X19ib3R0b20tLTN4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTN4bF9fX3pDOC1hXCIsXCJvZmZzZXRfX2xlZnQtLTN4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS0zeGxfX19XckwtVFwiLFwib2Zmc2V0X19yaWdodC0tM3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0zeGxfX19uZVdhcFwiLFwib2Zmc2V0X190b3AtLTR4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTR4bF9fX0JXUTlpXCIsXCJvZmZzZXRfX2JvdHRvbS0tNHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tNHhsX19fOFg0a0VcIixcIm9mZnNldF9fbGVmdC0tNHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTR4bF9fX0hjNDBUXCIsXCJvZmZzZXRfX3JpZ2h0LS00eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTR4bF9fX3NSakdRXCIsXCJvZmZzZXRfX3RvcC0tNXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tNXhsX19fNnVSWFlcIixcIm9mZnNldF9fYm90dG9tLS01eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS01eGxfX19uV2M2blwiLFwib2Zmc2V0X19sZWZ0LS01eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tNXhsX19fVmtXekpcIixcIm9mZnNldF9fcmlnaHQtLTV4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tNXhsX19fY25nS0VcIixcIm9mZnNldF9fdG9wLS02eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS02eGxfX190cjdoSFwiLFwib2Zmc2V0X19ib3R0b20tLTZ4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTZ4bF9fX0NZVTFNXCIsXCJvZmZzZXRfX2xlZnQtLTZ4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS02eGxfX18wSXVNYlwiLFwib2Zmc2V0X19yaWdodC0tNnhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS02eGxfX18tMXN3b1wiLFwib2Zmc2V0X190b3AtLTd4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X190b3AtLTd4bF9fX043LVhkXCIsXCJvZmZzZXRfX2JvdHRvbS0tN3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tN3hsX19fLXBBaHlcIixcIm9mZnNldF9fbGVmdC0tN3hsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTd4bF9fX214VnJrXCIsXCJvZmZzZXRfX3JpZ2h0LS03eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fcmlnaHQtLTd4bF9fX256dWxQXCIsXCJvZmZzZXRfX3RvcC0tOHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tOHhsX19fZU0tN1dcIixcIm9mZnNldF9fYm90dG9tLS04eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fYm90dG9tLS04eGxfX19lbnBFbVwiLFwib2Zmc2V0X19sZWZ0LS04eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tOHhsX19famlGWW5cIixcIm9mZnNldF9fcmlnaHQtLTh4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tOHhsX19fRk5xTnNcIixcIm9mZnNldF9fdG9wLS05eGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS05eGxfX18tQ21oOVwiLFwib2Zmc2V0X19ib3R0b20tLTl4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTl4bF9fX3R3RTN0XCIsXCJvZmZzZXRfX2xlZnQtLTl4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19sZWZ0LS05eGxfX183NW11YlwiLFwib2Zmc2V0X19yaWdodC0tOXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS05eGxfX19rQ1NzQ1wiLFwib2Zmc2V0X190b3AtLTEweGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fdG9wLS0xMHhsX19famxiaFpcIixcIm9mZnNldF9fYm90dG9tLS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2JvdHRvbS0tMTB4bF9fX3JleVRxXCIsXCJvZmZzZXRfX2xlZnQtLTEweGxcIjpcIm9mZnNldC1tb2R1bGVfX29mZnNldF9fbGVmdC0tMTB4bF9fXzlwM2NuXCIsXCJvZmZzZXRfX3JpZ2h0LS0xMHhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3JpZ2h0LS0xMHhsX19fdC12bzdcIixcIm9mZnNldF9fdG9wLS0xMXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX3RvcC0tMTF4bF9fXzBuclphXCIsXCJvZmZzZXRfX2JvdHRvbS0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19ib3R0b20tLTExeGxfX193Y2ZXZ1wiLFwib2Zmc2V0X19sZWZ0LS0xMXhsXCI6XCJvZmZzZXQtbW9kdWxlX19vZmZzZXRfX2xlZnQtLTExeGxfX19zSXRnNVwiLFwib2Zmc2V0X19yaWdodC0tMTF4bFwiOlwib2Zmc2V0LW1vZHVsZV9fb2Zmc2V0X19yaWdodC0tMTF4bF9fX05VcC1uXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL291dGxpbmUvb3V0bGluZS5tb2R1bGUuc2Nzc1wiLCBjc3M6IFwiLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1pbmhlcml0X19fMFdQMHIge1xcbiAgb3V0bGluZS1jb2xvcjogaW5oZXJpdDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS13aGl0ZV9fX1VxLWdkIHtcXG4gIG91dGxpbmUtY29sb3I6IHdoaXRlO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fVE5vTXYge1xcbiAgb3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTEwMF9fX1ZNRjdZIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkxMDApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXk4MF9fX0tkOGZNIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXk4MCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTYwX19fWkdqT3Qge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTYwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NDBfX191YUZuRyB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5NDApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkzMF9fXzdRQlZWIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkzMCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTI1X19fci1iYkoge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTI1KTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MjBfX19pd3plTCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ncmV5MjApO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkxMF9fX2hKdHRTIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWdyZXkxMCk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTcwX19fME9HbFUge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTcwKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5ODBBbHBoYTg1X19falJ3SG4ge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tZ3JleTgwQWxwaGE4NSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX19jb2xvci0tcHJpbWFyeV9fX1B4Y214IHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXByaW1hcnkpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWFjY2VudF9fX2pNaElOIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWJ1dHRvbkFjY2VudEJhY2tncm91bmQpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NfX194akpMbiB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ub3RpY2VfX19DUmlZYiB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1ub3RpY2UpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLXdhcm5pbmdfX18xT2U3VyB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS13YXJuaW5nKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbF9fX3lReC1MIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWNyaXRpY2FsKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1zdWNjZXNzVGludF9fX0dIYXEtIHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXN1Y2Nlc3NUaW50LCByZ2JhKDc2LCAxNzUsIDgwLCAwLjEpKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX1lBbnR1IHtcXG4gIG91dGxpbmUtY29sb3I6IHZhcigtLXdhcm5pbmdUaW50LCByZ2JhKDI1NSwgMTUyLCAwLCAwLjEpKTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jcml0aWNhbFRpbnRfX19RMW1kaCB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jcml0aWNhbFRpbnQsIHJnYmEoMjA2LCA1NywgNTEsIDAuMSkpO1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fY29sb3ItLWxpbmtfX191SWszbyB7XFxuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX2NvbG9yLS1jb2RlX19feWJud2kge1xcbiAgb3V0bGluZS1jb2xvcjogdmFyKC0tY29kZSk7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0temVyb19fX0VrZnpOIHtcXG4gIG91dGxpbmUtd2lkdGg6IDBweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS14eHNfX19iR3lUciB7XFxuICBvdXRsaW5lLXdpZHRoOiAxcHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0teHNfX19aWlIyQiB7XFxuICBvdXRsaW5lLXdpZHRoOiAycHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tc19fXzhkREV6IHtcXG4gIG91dGxpbmUtd2lkdGg6IDNweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS1tX19fZzJ1RzUge1xcbiAgb3V0bGluZS13aWR0aDogNHB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLWxfX19XaDBiQyB7XFxuICBvdXRsaW5lLXdpZHRoOiA2cHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0teGxfX184ZE9NaiB7XFxuICBvdXRsaW5lLXdpZHRoOiA4cHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0teHhsX19fQkVzVW0ge1xcbiAgb3V0bGluZS13aWR0aDogMTBweDtcXG59XFxuLm91dGxpbmUtbW9kdWxlX19vdXRsaW5lX19fQW9CdEYub3V0bGluZS1tb2R1bGVfX2ZvY3VzVmlzaWJsZV9fX0pBclBKOmZvY3VzLXZpc2libGUub3V0bGluZS1tb2R1bGVfX3dpZHRoLS0zeGxfX19FczBTWSB7XFxuICBvdXRsaW5lLXdpZHRoOiAxMnB4O1xcbn1cXG4ub3V0bGluZS1tb2R1bGVfX291dGxpbmVfX19Bb0J0Ri5vdXRsaW5lLW1vZHVsZV9fZm9jdXNWaXNpYmxlX19fSkFyUEo6Zm9jdXMtdmlzaWJsZS5vdXRsaW5lLW1vZHVsZV9fd2lkdGgtLTR4bF9fX1llb3Y4IHtcXG4gIG91dGxpbmUtd2lkdGg6IDE0cHg7XFxufVxcbi5vdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGLm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSjpmb2N1cy12aXNpYmxlLm91dGxpbmUtbW9kdWxlX193aWR0aC0tNXhsX19fTnNWOFAge1xcbiAgb3V0bGluZS13aWR0aDogMTZweDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJvdXRsaW5lXCI6XCJvdXRsaW5lLW1vZHVsZV9fb3V0bGluZV9fX0FvQnRGXCIsXCJmb2N1c1Zpc2libGVcIjpcIm91dGxpbmUtbW9kdWxlX19mb2N1c1Zpc2libGVfX19KQXJQSlwiLFwiY29sb3ItLWluaGVyaXRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0taW5oZXJpdF9fXzBXUDByXCIsXCJjb2xvci0td2hpdGVcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0td2hpdGVfX19VcS1nZFwiLFwiY29sb3ItLXRyYW5zcGFyZW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXRyYW5zcGFyZW50X19fVE5vTXZcIixcImNvbG9yLS1ncmV5MTAwXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWdyZXkxMDBfX19WTUY3WVwiLFwiY29sb3ItLWdyZXk4MFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5ODBfX19LZDhmTVwiLFwiY29sb3ItLWdyZXk2MFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NjBfX19aR2pPdFwiLFwiY29sb3ItLWdyZXk0MFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NDBfX191YUZuR1wiLFwiY29sb3ItLWdyZXkzMFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MzBfX183UUJWVlwiLFwiY29sb3ItLWdyZXkyNVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MjVfX19yLWJiSlwiLFwiY29sb3ItLWdyZXkyMFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MjBfX19pd3plTFwiLFwiY29sb3ItLWdyZXkxMFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5MTBfX19oSnR0U1wiLFwiY29sb3ItLWdyZXk3MFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ncmV5NzBfX18wT0dsVVwiLFwiY29sb3ItLWdyZXk4MEFscGhhODVcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tZ3JleTgwQWxwaGE4NV9fX2pSd0huXCIsXCJjb2xvci0tcHJpbWFyeVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1wcmltYXJ5X19fUHhjbXhcIixcImNvbG9yLS1hY2NlbnRcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tYWNjZW50X19fak1oSU5cIixcImNvbG9yLS1zdWNjZXNzXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NfX194akpMblwiLFwiY29sb3ItLW5vdGljZVwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1ub3RpY2VfX19DUmlZYlwiLFwiY29sb3ItLXdhcm5pbmdcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0td2FybmluZ19fXzFPZTdXXCIsXCJjb2xvci0tY3JpdGljYWxcIjpcIm91dGxpbmUtbW9kdWxlX19jb2xvci0tY3JpdGljYWxfX195UXgtTFwiLFwiY29sb3ItLXN1Y2Nlc3NUaW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLXN1Y2Nlc3NUaW50X19fR0hhcS1cIixcImNvbG9yLS13YXJuaW5nVGludFwiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS13YXJuaW5nVGludF9fX1lBbnR1XCIsXCJjb2xvci0tY3JpdGljYWxUaW50XCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNyaXRpY2FsVGludF9fX1ExbWRoXCIsXCJjb2xvci0tbGlua1wiOlwib3V0bGluZS1tb2R1bGVfX2NvbG9yLS1saW5rX19fdUlrM29cIixcImNvbG9yLS1jb2RlXCI6XCJvdXRsaW5lLW1vZHVsZV9fY29sb3ItLWNvZGVfX195Ym53aVwiLFwid2lkdGgtLXplcm9cIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0temVyb19fX0VrZnpOXCIsXCJ3aWR0aC0teHhzXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXh4c19fX2JHeVRyXCIsXCJ3aWR0aC0teHNcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0teHNfX19aWlIyQlwiLFwid2lkdGgtLXNcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tc19fXzhkREV6XCIsXCJ3aWR0aC0tbVwiOlwib3V0bGluZS1tb2R1bGVfX3dpZHRoLS1tX19fZzJ1RzVcIixcIndpZHRoLS1sXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLWxfX19XaDBiQ1wiLFwid2lkdGgtLXhsXCI6XCJvdXRsaW5lLW1vZHVsZV9fd2lkdGgtLXhsX19fOGRPTWpcIixcIndpZHRoLS14eGxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0teHhsX19fQkVzVW1cIixcIndpZHRoLS0zeGxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tM3hsX19fRXMwU1lcIixcIndpZHRoLS00eGxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tNHhsX19fWWVvdjhcIixcIndpZHRoLS01eGxcIjpcIm91dGxpbmUtbW9kdWxlX193aWR0aC0tNXhsX19fTnNWOFBcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvb3ZlcmZsb3cvb3ZlcmZsb3cubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93LS1oaWRlLXNjcm9sbGJhcl9fX3djNmpQIHtcXG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLWhpZGRlbl9fX1VCSVhRIHtcXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLXZpc2libGVfX19zZk9iVSB7XFxuICBvdmVyZmxvdy15OiB2aXNpYmxlO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tc2Nyb2xsX19feWtaMjEge1xcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xcbn1cXG4ub3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tYXV0b19fXzFPTkhLIHtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1oaWRkZW5fX19MSzNVaCB7XFxuICBvdmVyZmxvdy14OiBoaWRkZW47XFxufVxcbi5vdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS12aXNpYmxlX19fdS0tNkYge1xcbiAgb3ZlcmZsb3cteDogdmlzaWJsZTtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLXNjcm9sbF9fX2FpSUg2IHtcXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcXG59XFxuLm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLWF1dG9fX19TNm9WTCB7XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcIm92ZXJmbG93LS1oaWRlLXNjcm9sbGJhclwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJfX193YzZqUFwiLFwib3ZlcmZsb3dfX3ktLWhpZGRlblwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0taGlkZGVuX19fVUJJWFFcIixcIm92ZXJmbG93X195LS12aXNpYmxlXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X195LS12aXNpYmxlX19fc2ZPYlVcIixcIm92ZXJmbG93X195LS1zY3JvbGxcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3ktLXNjcm9sbF9fX3lrWjIxXCIsXCJvdmVyZmxvd19feS0tYXV0b1wiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feS0tYXV0b19fXzFPTkhLXCIsXCJvdmVyZmxvd19feC0taGlkZGVuXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1oaWRkZW5fX19MSzNVaFwiLFwib3ZlcmZsb3dfX3gtLXZpc2libGVcIjpcIm92ZXJmbG93LW1vZHVsZV9fb3ZlcmZsb3dfX3gtLXZpc2libGVfX191LS02RlwiLFwib3ZlcmZsb3dfX3gtLXNjcm9sbFwiOlwib3ZlcmZsb3ctbW9kdWxlX19vdmVyZmxvd19feC0tc2Nyb2xsX19fYWlJSDZcIixcIm92ZXJmbG93X194LS1hdXRvXCI6XCJvdmVyZmxvdy1tb2R1bGVfX292ZXJmbG93X194LS1hdXRvX19fUzZvVkxcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZS5zY3NzXCIsIGNzczogXCIucG9wb3Zlci1tb2R1bGVfX3BvcG92ZXJfX292ZXJsYXlfX19UY0t2LSB7XFxuICBpbnNldDogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgei1pbmRleDogOTk5O1xcbn1cXG4ucG9wb3Zlci1tb2R1bGVfX3BvcG92ZXJfX2NvbnRlbnRfX19VQ1VaNiB7XFxuICB6LWluZGV4OiAxMDAwO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcInBvcG92ZXJfX292ZXJsYXlcIjpcInBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19vdmVybGF5X19fVGNLdi1cIixcInBvcG92ZXJfX2NvbnRlbnRcIjpcInBvcG92ZXItbW9kdWxlX19wb3BvdmVyX19jb250ZW50X19fVUNVWjZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGV4dC1hbGlnbi90ZXh0LWFsaWduLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLWNlbnRlcl9fX2JEclIyIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1yaWdodF9fX0pWUk1QIHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4udGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLWxlZnRfX19MTExrNiB7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcInRleHQtYWxpZ24tLWNlbnRlclwiOlwidGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLWNlbnRlcl9fX2JEclIyXCIsXCJ0ZXh0LWFsaWduLS1yaWdodFwiOlwidGV4dC1hbGlnbi1tb2R1bGVfX3RleHQtYWxpZ24tLXJpZ2h0X19fSlZSTVBcIixcInRleHQtYWxpZ24tLWxlZnRcIjpcInRleHQtYWxpZ24tbW9kdWxlX190ZXh0LWFsaWduLS1sZWZ0X19fTExMazZcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzXCIsIGNzczogXCIudGludC1tb2R1bGVfX3RpbnRfX19nQ3pHNywgLnRpbnQtbW9kdWxlX190aW50X19fZ0N6RzcgKiB7XFxuICBmaWxsOiB2YXIoLS1lbGVtZW50LXRpbnQpO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcInRpbnRcIjpcInRpbnQtbW9kdWxlX190aW50X19fZ0N6RzdcIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvdHJhbnNpdGlvbi90cmFuc2l0aW9uLm1vZHVsZS5zY3NzXCIsIGNzczogXCIudHJhbnNpdGlvbi1tb2R1bGVfX3RyYW5zaXRpb25fX19Td3dPRSB7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcXG59XCIgfSk7XG5leHBvcnQgZGVmYXVsdCB7XCJ0cmFuc2l0aW9uXCI6XCJ0cmFuc2l0aW9uLW1vZHVsZV9fdHJhbnNpdGlvbl9fX1N3d09FXCJ9OyIsICJpbXBvcnQgeyBhc1N0eWxlc2hlZXQgfSBmcm9tIFwiQGs4c2xlbnMvc3R5bGVzaGVldC1jb250cmFjdHNcIjtcbmV4cG9ydCBjb25zdCBzdHlsZXNoZWV0ID0gYXNTdHlsZXNoZWV0KHsgaWQ6IFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRzL3NyYy9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW4ubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi52aXN1YWxseS1oaWRkZW4tbW9kdWxlX192aXN1YWxseS1oaWRkZW5fX19EUHVsTSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cIiB9KTtcbmV4cG9ydCBkZWZhdWx0IHtcInZpc3VhbGx5LWhpZGRlblwiOlwidmlzdWFsbHktaGlkZGVuLW1vZHVsZV9fdmlzdWFsbHktaGlkZGVuX19fRFB1bE1cIn07IiwgImltcG9ydCB7IGFzU3R5bGVzaGVldCB9IGZyb20gXCJAazhzbGVucy9zdHlsZXNoZWV0LWNvbnRyYWN0c1wiO1xuZXhwb3J0IGNvbnN0IHN0eWxlc2hlZXQgPSBhc1N0eWxlc2hlZXQoeyBpZDogXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudHMvc3JjL3BsdWdpbnMvd2lkdGgvd2lkdGgubW9kdWxlLnNjc3NcIiwgY3NzOiBcIi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tZnVsbF9fX25vSWtUIHtcXG4gIG1heC13aWR0aDogMTAwJTtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1jb250ZW50X19feWtzVXIge1xcbiAgbWF4LXdpZHRoOiA5MDBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS16ZXJvX19fOE5VRjEge1xcbiAgbWF4LXdpZHRoOiAwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNHhzX19fZ0hsTEkge1xcbiAgbWF4LXdpZHRoOiAxcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tM3hzX19fcmRvUDgge1xcbiAgbWF4LXdpZHRoOiAycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHhzX19famxwOHYge1xcbiAgbWF4LXdpZHRoOiA0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0teHNfX19rUXNXeCB7XFxuICBtYXgtd2lkdGg6IDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1zX19fTWdHYXoge1xcbiAgbWF4LXdpZHRoOiAxMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLW1fX19hRnpTYyB7XFxuICBtYXgtd2lkdGg6IDE2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tbF9fX2lLbGFIIHtcXG4gIG1heC13aWR0aDogMjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14bF9fXzR6VWRDIHtcXG4gIG1heC13aWR0aDogMjRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14eGxfX181OHozUCB7XFxuICBtYXgtd2lkdGg6IDI4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tM3hsX19fMllYbkgge1xcbiAgbWF4LXdpZHRoOiAzMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTR4bF9fX2pGSjlWIHtcXG4gIG1heC13aWR0aDogMzZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS01eGxfX183LVZRRyB7XFxuICBtYXgtd2lkdGg6IDQwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tNnhsX19fUFMzN0oge1xcbiAgbWF4LXdpZHRoOiA0NHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTd4bF9fX3NTQndrIHtcXG4gIG1heC13aWR0aDogNDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS04eGxfX19WM0lIeSB7XFxuICBtYXgtd2lkdGg6IDUycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tOXhsX19fNFZXRU0ge1xcbiAgbWF4LXdpZHRoOiA1NnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTEweGxfX196OTdUUSB7XFxuICBtYXgtd2lkdGg6IDYwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21heC13aWR0aC0tMTF4bF9fX2p4ZW5YIHtcXG4gIG1heC13aWR0aDogNjRweDtcXG59XFxuXFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoX19fcW5sWUMge1xcbiAgLyogQXMgd2lkZSBhcyB0aGUgY29udGVudCB3YW50cyB0byBiZSwgc28gaXQgbmV2ZXIgaGFzIHRvIHdyYXAgdG8gZml0IGl0cyBzdXJyb3VuZGluZ3MuICovXFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tZml0X19fMlctVEQge1xcbiAgbWluLXdpZHRoOiBtYXgtY29udGVudDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS16ZXJvX19fOTQyOVMge1xcbiAgbWluLXdpZHRoOiAwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNHhzX19fM1RHTS0ge1xcbiAgbWluLXdpZHRoOiAxcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tM3hzX19fUjZqMzIge1xcbiAgbWluLXdpZHRoOiAycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhzX19fdmpLZEMge1xcbiAgbWluLXdpZHRoOiA0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHNfX19WLUwxcyB7XFxuICBtaW4td2lkdGg6IDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1zX19fZElmWm0ge1xcbiAgbWluLXdpZHRoOiAxMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLW1fX19KSDVJUCB7XFxuICBtaW4td2lkdGg6IDE2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tbF9fX0dna0U4IHtcXG4gIG1pbi13aWR0aDogMjBweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14bF9fX2FHTHVpIHtcXG4gIG1pbi13aWR0aDogMjRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14eGxfX196UU90VCB7XFxuICBtaW4td2lkdGg6IDI4cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tM3hsX19fSmV2RFoge1xcbiAgbWluLXdpZHRoOiAzMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTR4bF9fXzFlNk4xIHtcXG4gIG1pbi13aWR0aDogMzZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS01eGxfX19LdW10byB7XFxuICBtaW4td2lkdGg6IDQwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNnhsX19fWUVrbTgge1xcbiAgbWluLXdpZHRoOiA0NHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTd4bF9fX3ZYMUZZIHtcXG4gIG1pbi13aWR0aDogNDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS04eGxfX19WYlFoayB7XFxuICBtaW4td2lkdGg6IDUycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tOXhsX19fZVVLUWkge1xcbiAgbWluLXdpZHRoOiA1NnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX19taW4td2lkdGgtLTEweGxfX19ab04zTiB7XFxuICBtaW4td2lkdGg6IDYwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tMTF4bF9fX0JORmpBIHtcXG4gIG1pbi13aWR0aDogNjRweDtcXG59XFxuXFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLWZ1bGxfX18xbXBpeiB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXN0cmV0Y2hfX19ScXcwMCB7XFxuICB3aWR0aDogc3RyZXRjaDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXplcm9fX19JTmRWdiB7XFxuICB3aWR0aDogMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tNHhzX19fZFJVaFcge1xcbiAgd2lkdGg6IDFweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTN4c19fX29SSjB6IHtcXG4gIHdpZHRoOiAycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS14eHNfX19IeWw5UiB7XFxuICB3aWR0aDogNHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0teHNfX19HM2pReiB7XFxuICB3aWR0aDogOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tc19fXy1tenFtIHtcXG4gIHdpZHRoOiAxMnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tbV9fX21FWjc3IHtcXG4gIHdpZHRoOiAxNnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tbF9fX3F5SU43IHtcXG4gIHdpZHRoOiAyMHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0teGxfX19tTzI1SSB7XFxuICB3aWR0aDogMjRweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLXh4bF9fX0VHUU1wIHtcXG4gIHdpZHRoOiAyOHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tM3hsX19fSHVsNy0ge1xcbiAgd2lkdGg6IDMycHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS00eGxfX196T1BiUyB7XFxuICB3aWR0aDogMzZweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTV4bF9fX3hicW5pIHtcXG4gIHdpZHRoOiA0MHB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tNnhsX19fTm1iZjkge1xcbiAgd2lkdGg6IDQ0cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS03eGxfX19CMG52dyB7XFxuICB3aWR0aDogNDhweDtcXG59XFxuLndpZHRoLW1vZHVsZV9fd2lkdGgtLTh4bF9fX1cxSERQIHtcXG4gIHdpZHRoOiA1MnB4O1xcbn1cXG4ud2lkdGgtbW9kdWxlX193aWR0aC0tOXhsX19fS0pMOFUge1xcbiAgd2lkdGg6IDU2cHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS0xMHhsX19fOTR6MTkge1xcbiAgd2lkdGg6IDYwcHg7XFxufVxcbi53aWR0aC1tb2R1bGVfX3dpZHRoLS0xMXhsX19fakItTG4ge1xcbiAgd2lkdGg6IDY0cHg7XFxufVwiIH0pO1xuZXhwb3J0IGRlZmF1bHQge1wibWF4LXdpZHRoLS1mdWxsXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tZnVsbF9fX25vSWtUXCIsXCJtYXgtd2lkdGgtLWNvbnRlbnRcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1jb250ZW50X19feWtzVXJcIixcIm1heC13aWR0aC0temVyb1wiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXplcm9fX184TlVGMVwiLFwibWF4LXdpZHRoLS00eHNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS00eHNfX19nSGxMSVwiLFwibWF4LXdpZHRoLS0zeHNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0zeHNfX19yZG9QOFwiLFwibWF4LXdpZHRoLS14eHNcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14eHNfX19qbHA4dlwiLFwibWF4LXdpZHRoLS14c1wiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXhzX19fa1FzV3hcIixcIm1heC13aWR0aC0tc1wiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXNfX19NZ0dhelwiLFwibWF4LXdpZHRoLS1tXCI6XCJ3aWR0aC1tb2R1bGVfX21heC13aWR0aC0tbV9fX2FGelNjXCIsXCJtYXgtd2lkdGgtLWxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS1sX19faUtsYUhcIixcIm1heC13aWR0aC0teGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS14bF9fXzR6VWRDXCIsXCJtYXgtd2lkdGgtLXh4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLXh4bF9fXzU4ejNQXCIsXCJtYXgtd2lkdGgtLTN4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTN4bF9fXzJZWG5IXCIsXCJtYXgtd2lkdGgtLTR4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTR4bF9fX2pGSjlWXCIsXCJtYXgtd2lkdGgtLTV4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTV4bF9fXzctVlFHXCIsXCJtYXgtd2lkdGgtLTZ4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTZ4bF9fX1BTMzdKXCIsXCJtYXgtd2lkdGgtLTd4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTd4bF9fX3NTQndrXCIsXCJtYXgtd2lkdGgtLTh4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTh4bF9fX1YzSUh5XCIsXCJtYXgtd2lkdGgtLTl4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTl4bF9fXzRWV0VNXCIsXCJtYXgtd2lkdGgtLTEweGxcIjpcIndpZHRoLW1vZHVsZV9fbWF4LXdpZHRoLS0xMHhsX19fejk3VFFcIixcIm1heC13aWR0aC0tMTF4bFwiOlwid2lkdGgtbW9kdWxlX19tYXgtd2lkdGgtLTExeGxfX19qeGVuWFwiLFwibWluLXdpZHRoXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aF9fX3FubFlDXCIsXCJtaW4td2lkdGgtLWZpdFwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLWZpdF9fXzJXLVREXCIsXCJtaW4td2lkdGgtLXplcm9cIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS16ZXJvX19fOTQyOVNcIixcIm1pbi13aWR0aC0tNHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tNHhzX19fM1RHTS1cIixcIm1pbi13aWR0aC0tM3hzXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tM3hzX19fUjZqMzJcIixcIm1pbi13aWR0aC0teHhzXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teHhzX19fdmpLZENcIixcIm1pbi13aWR0aC0teHNcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14c19fX1YtTDFzXCIsXCJtaW4td2lkdGgtLXNcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS1zX19fZElmWm1cIixcIm1pbi13aWR0aC0tbVwiOlwid2lkdGgtbW9kdWxlX19taW4td2lkdGgtLW1fX19KSDVJUFwiLFwibWluLXdpZHRoLS1sXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tbF9fX0dna0U4XCIsXCJtaW4td2lkdGgtLXhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0teGxfX19hR0x1aVwiLFwibWluLXdpZHRoLS14eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS14eGxfX196UU90VFwiLFwibWluLXdpZHRoLS0zeGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0zeGxfX19KZXZEWlwiLFwibWluLXdpZHRoLS00eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS00eGxfX18xZTZOMVwiLFwibWluLXdpZHRoLS01eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS01eGxfX19LdW10b1wiLFwibWluLXdpZHRoLS02eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS02eGxfX19ZRWttOFwiLFwibWluLXdpZHRoLS03eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS03eGxfX192WDFGWVwiLFwibWluLXdpZHRoLS04eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS04eGxfX19WYlFoa1wiLFwibWluLXdpZHRoLS05eGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS05eGxfX19lVUtRaVwiLFwibWluLXdpZHRoLS0xMHhsXCI6XCJ3aWR0aC1tb2R1bGVfX21pbi13aWR0aC0tMTB4bF9fX1pvTjNOXCIsXCJtaW4td2lkdGgtLTExeGxcIjpcIndpZHRoLW1vZHVsZV9fbWluLXdpZHRoLS0xMXhsX19fQk5GakFcIixcIndpZHRoLS1mdWxsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1mdWxsX19fMW1waXpcIixcIndpZHRoLS1zdHJldGNoXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS1zdHJldGNoX19fUnF3MDBcIixcIndpZHRoLS16ZXJvXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS16ZXJvX19fSU5kVnZcIixcIndpZHRoLS00eHNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTR4c19fX2RSVWhXXCIsXCJ3aWR0aC0tM3hzXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS0zeHNfX19vUkowelwiLFwid2lkdGgtLXh4c1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teHhzX19fSHlsOVJcIixcIndpZHRoLS14c1wiOlwid2lkdGgtbW9kdWxlX193aWR0aC0teHNfX19HM2pRelwiLFwid2lkdGgtLXNcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLXNfX18tbXpxbVwiLFwid2lkdGgtLW1cIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLW1fX19tRVo3N1wiLFwid2lkdGgtLWxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLWxfX19xeUlON1wiLFwid2lkdGgtLXhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS14bF9fX21PMjVJXCIsXCJ3aWR0aC0teHhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS14eGxfX19FR1FNcFwiLFwid2lkdGgtLTN4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tM3hsX19fSHVsNy1cIixcIndpZHRoLS00eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTR4bF9fX3pPUGJTXCIsXCJ3aWR0aC0tNXhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS01eGxfX194YnFuaVwiLFwid2lkdGgtLTZ4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tNnhsX19fTm1iZjlcIixcIndpZHRoLS03eGxcIjpcIndpZHRoLW1vZHVsZV9fd2lkdGgtLTd4bF9fX0IwbnZ3XCIsXCJ3aWR0aC0tOHhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS04eGxfX19XMUhEUFwiLFwid2lkdGgtLTl4bFwiOlwid2lkdGgtbW9kdWxlX193aWR0aC0tOXhsX19fS0pMOFVcIixcIndpZHRoLS0xMHhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS0xMHhsX19fOTR6MTlcIixcIndpZHRoLS0xMXhsXCI6XCJ3aWR0aC1tb2R1bGVfX3dpZHRoLS0xMXhsX19fakItTG5cIn07IiwgImltcG9ydCAqIGFzIG1vZHVsZTAgZnJvbSAnLi9wbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxIGZyb20gJy4vcGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyIGZyb20gJy4vcGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTMgZnJvbSAnLi9wbHVnaW5zL2Jsb2NrL2Jsb2NrLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU0IGZyb20gJy4vcGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU1IGZyb20gJy4vcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTYgZnJvbSAnLi9wbHVnaW5zL2NvbG9yL2NvbG9yLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU3IGZyb20gJy4vcGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGU4IGZyb20gJy4vcGx1Z2lucy9kaXNwbGF5LWNvbnRlbnRzL2Rpc3BsYXktY29udGVudHMubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTkgZnJvbSAnLi9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTAgZnJvbSAnLi9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTEgZnJvbSAnLi9wbHVnaW5zL2ZhZGVkL2ZhZGVkLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxMiBmcm9tICcuL3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxMyBmcm9tICcuL3BsdWdpbnMvZmxleC9mbGV4Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxNCBmcm9tICcuL3BsdWdpbnMvZm9udC9mb250Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxNSBmcm9tICcuL3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTE2IGZyb20gJy4vcGx1Z2lucy9ncmF5c2NhbGUvZ3JheXNjYWxlLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxNyBmcm9tICcuL3BsdWdpbnMvZ3JpZC9ncmlkLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUxOCBmcm9tICcuL3BsdWdpbnMvaGVpZ2h0L2hlaWdodC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMTkgZnJvbSAnLi9wbHVnaW5zL2hpZGRlbi9oaWRkZW4ubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTIwIGZyb20gJy4vcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjEgZnJvbSAnLi9wbHVnaW5zL2ludmlzaWJsZS1iYWNrZHJvcC9pbnZpc2libGUtYmFja2Ryb3AubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTIyIGZyb20gJy4vcGx1Z2lucy9tYXJnaW4vbWFyZ2luLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyMyBmcm9tICcuL3BsdWdpbnMvbm8tcG9pbnRlci1ldmVudHMvbm8tcG9pbnRlci1ldmVudHMubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTI0IGZyb20gJy4vcGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyNSBmcm9tICcuL3BsdWdpbnMvb2Zmc2V0L29mZnNldC5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjYgZnJvbSAnLi9wbHVnaW5zL291dGxpbmUvb3V0bGluZS5tb2R1bGUuc2Nzcyc7aW1wb3J0ICogYXMgbW9kdWxlMjcgZnJvbSAnLi9wbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyOCBmcm9tICcuL3BsdWdpbnMvcGFkZGluZy9wYWRkaW5nLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUyOSBmcm9tICcuL3BsdWdpbnMvcG9wb3Zlci9wb3BvdmVyLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzMCBmcm9tICcuL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTMxIGZyb20gJy4vcGx1Z2lucy90ZXh0LWFsaWduL3RleHQtYWxpZ24ubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTMyIGZyb20gJy4vcGx1Z2lucy90aW50L3RpbnQubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTMzIGZyb20gJy4vcGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTM0IGZyb20gJy4vcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb24ubW9kdWxlLnNjc3MnO2ltcG9ydCAqIGFzIG1vZHVsZTM1IGZyb20gJy4vcGx1Z2lucy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLm1vZHVsZS5zY3NzJztpbXBvcnQgKiBhcyBtb2R1bGUzNiBmcm9tICcuL3BsdWdpbnMvd2lkdGgvd2lkdGgubW9kdWxlLnNjc3MnXG5cbmNvbnN0IG1vZHVsZXMgPSBbbW9kdWxlMCxtb2R1bGUxLG1vZHVsZTIsbW9kdWxlMyxtb2R1bGU0LG1vZHVsZTUsbW9kdWxlNixtb2R1bGU3LG1vZHVsZTgsbW9kdWxlOSxtb2R1bGUxMCxtb2R1bGUxMSxtb2R1bGUxMixtb2R1bGUxMyxtb2R1bGUxNCxtb2R1bGUxNSxtb2R1bGUxNixtb2R1bGUxNyxtb2R1bGUxOCxtb2R1bGUxOSxtb2R1bGUyMCxtb2R1bGUyMSxtb2R1bGUyMixtb2R1bGUyMyxtb2R1bGUyNCxtb2R1bGUyNSxtb2R1bGUyNixtb2R1bGUyNyxtb2R1bGUyOCxtb2R1bGUyOSxtb2R1bGUzMCxtb2R1bGUzMSxtb2R1bGUzMixtb2R1bGUzMyxtb2R1bGUzNCxtb2R1bGUzNSxtb2R1bGUzNl07XG5cbmV4cG9ydCBkZWZhdWx0IG1vZHVsZXM7XG5leHBvcnQgY29uc3QgZmlsZW5hbWVzID0gWydwbHVnaW5zL2Fic29sdXRlL2Fic29sdXRlLm1vZHVsZS5zY3NzJywncGx1Z2lucy9hbmNob3IvYW5jaG9yLm1vZHVsZS5zY3NzJywncGx1Z2lucy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3IubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2Jsb2NrL2Jsb2NrLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ib3JkZXIvYm9yZGVyLm1vZHVsZS5zY3NzJywncGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3cubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2NvbG9yL2NvbG9yLm1vZHVsZS5zY3NzJywncGx1Z2lucy9jdXJzb3IvY3Vyc29yLm1vZHVsZS5zY3NzJywncGx1Z2lucy9kaXNwbGF5LWNvbnRlbnRzL2Rpc3BsYXktY29udGVudHMubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2RyYWdnYWJsZS5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZW5hYmxlZC9lbmFibGVkLm1vZHVsZS5zY3NzJywncGx1Z2lucy9mYWRlZC9mYWRlZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZmxleC1jaGlsZC9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzJywncGx1Z2lucy9mbGV4L2ZsZXgubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ZvbnQvZm9udC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvZ3JhZGllbnQvZ3JhZGllbnQubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2dyYXlzY2FsZS9ncmF5c2NhbGUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2dyaWQvZ3JpZC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvaGVpZ2h0L2hlaWdodC5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvaGlkZGVuL2hpZGRlbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvaW50ZXJhY3RpdmUvaW50ZXJhY3RpdmUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL2ludmlzaWJsZS1iYWNrZHJvcC9pbnZpc2libGUtYmFja2Ryb3AubW9kdWxlLnNjc3MnLCdwbHVnaW5zL21hcmdpbi9tYXJnaW4ubW9kdWxlLnNjc3MnLCdwbHVnaW5zL25vLXBvaW50ZXItZXZlbnRzL25vLXBvaW50ZXItZXZlbnRzLm1vZHVsZS5zY3NzJywncGx1Z2lucy9vZmZzZXQtY2hpbGRyZW4vb2Zmc2V0LWNoaWxkcmVuLm1vZHVsZS5zY3NzJywncGx1Z2lucy9vZmZzZXQvb2Zmc2V0Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9vdXRsaW5lL291dGxpbmUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL292ZXJmbG93L292ZXJmbG93Lm1vZHVsZS5zY3NzJywncGx1Z2lucy9wYWRkaW5nL3BhZGRpbmcubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmUubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvdGludC90aW50Lm1vZHVsZS5zY3NzJywncGx1Z2lucy90b29sdGlwL3Rvb2x0aXAubW9kdWxlLnNjc3MnLCdwbHVnaW5zL3RyYW5zaXRpb24vdHJhbnNpdGlvbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5tb2R1bGUuc2NzcycsJ3BsdWdpbnMvd2lkdGgvd2lkdGgubW9kdWxlLnNjc3MnXVxuIiwgImltcG9ydCB0eXBlIHsgVHVwbGUgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuXG4vKiBjOCBpZ25vcmUgc3RhcnQgKi9cbmV4cG9ydCB0eXBlIFRTaGlydFNpemUgPVxuICB8IFwiemVyb1wiXG4gIHwgYCR7UmFuZ2U8MywgND59eHNgXG4gIHwgXCJ4eHNcIlxuICB8IFwieHNcIlxuICB8IFwic1wiXG4gIHwgXCJtXCJcbiAgfCBcImxcIlxuICB8IFwieGxcIlxuICB8IFwieHhsXCJcbiAgfCBgJHtSYW5nZTwzLCAxMT59eGxgO1xuXG5leHBvcnQgdHlwZSBSYW5nZTxTdGFydCBleHRlbmRzIG51bWJlciwgRW5kIGV4dGVuZHMgbnVtYmVyPiA9IFJhbmdlSW1wbDxTdGFydCwgRW5kPjtcbnR5cGUgUmFuZ2VJbXBsPFxuICBTdGFydCBleHRlbmRzIG51bWJlcixcbiAgRW5kIGV4dGVuZHMgbnVtYmVyLFxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vQ29uZnVzaW5nVm9pZFR5cGU6IHJlcXVpcmVkIGZvciB0aGUgYnVpbGQgdG8gcGFzc1xuICBUIGV4dGVuZHMgdm9pZFtdID0gVHVwbGU8dm9pZCwgU3RhcnQ+LFxuPiA9IEVuZCBleHRlbmRzIFRbXCJsZW5ndGhcIl0gPyBFbmQgOiBUW1wibGVuZ3RoXCJdIHwgUmFuZ2VJbXBsPFN0YXJ0LCBFbmQsIFt1bmRlZmluZWQsIC4uLlRdPjtcblxuLyogYzggaWdub3JlIGVuZCAqL1xuXG4vKiogVGhlIGJhc2UgdW5pdCAoaW4gcGl4ZWxzKSB0aGUgdC1zaGlydCBzY2FsZSBpcyBidWlsdCBvbi4gTWlycm9ycyBgJHVuaXRgIGluIGBzaXplcy5zY3NzYC4gKi9cbmV4cG9ydCBjb25zdCBzaXplVW5pdEluUGl4ZWxzID0gNDtcblxuLy8gTXVsdGlwbGllciBwZXIgc2l6ZSwgbWlycm9yaW5nIHRoZSBgJHNpemVzYCBtYXAgaW4gYHNpemVzLnNjc3NgLiBLZWVwIHRoZSB0d28gaW4gc3luYy5cbmNvbnN0IHNpemVNdWx0aXBsaWVyczogUmVjb3JkPFRTaGlydFNpemUsIG51bWJlcj4gPSB7XG4gIHplcm86IDAsXG4gIFwiNHhzXCI6IDEgLyA0LFxuICBcIjN4c1wiOiAxIC8gMixcbiAgeHhzOiAxLFxuICB4czogMixcbiAgczogMyxcbiAgbTogNCxcbiAgbDogNSxcbiAgeGw6IDYsXG4gIHh4bDogNyxcbiAgXCIzeGxcIjogOCxcbiAgXCI0eGxcIjogOSxcbiAgXCI1eGxcIjogMTAsXG4gIFwiNnhsXCI6IDExLFxuICBcIjd4bFwiOiAxMixcbiAgXCI4eGxcIjogMTMsXG4gIFwiOXhsXCI6IDE0LFxuICBcIjEweGxcIjogMTUsXG4gIFwiMTF4bFwiOiAxNixcbn07XG5cbi8qKlxuICogVGhlIHBpeGVsIGxlbmd0aCBvZiBhIHQtc2hpcnQgc2l6ZSBcdTIwMTQgdGhlIHNhbWUgdmFsdWUgdGhlIGAkc2l6ZWAvYCR3aWR0aGAvYCRoZWlnaHRgXG4gKiBjbGFzc2VzIHJlc29sdmUgdG8gaW4gQ1NTLiBVc2Ugd2hlbiBhIGxlbmd0aCBpcyBuZWVkZWQgcmF0aGVyIHRoYW4gYSBzaXppbmcgY2xhc3MsXG4gKiBlLmcuIHRvIGRyaXZlIGFuIGljb24gZm9udCdzIGBmb250LXNpemVgLlxuICovXG5leHBvcnQgY29uc3QgdFNoaXJ0U2l6ZUluUGl4ZWxzID0gKHNpemU6IFRTaGlydFNpemUpOiBudW1iZXIgPT4gc2l6ZVVuaXRJblBpeGVscyAqIHNpemVNdWx0aXBsaWVyc1tzaXplXTtcbiIsICIvKiBjOCBpZ25vcmUgc3RhcnQgKi9cbmltcG9ydCB7IGdldEVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IGZsZXhQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ZsZXgvZmxleFwiO1xuaW1wb3J0IHsgZ3JpZFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZ3JpZC9ncmlkXCI7XG5pbXBvcnQgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgd2lkdGhQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3dpZHRoL3dpZHRoXCI7XG5pbXBvcnQgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9wYWRkaW5nL3BhZGRpbmdcIjtcbmltcG9ydCB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgaGVpZ2h0UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9oZWlnaHQvaGVpZ2h0XCI7XG5pbXBvcnQgeyBib3JkZXJQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2JvcmRlci9ib3JkZXJcIjtcbmltcG9ydCB7IGZvbnRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2ZvbnQvZm9udFwiO1xuaW1wb3J0IHsgY29sb3JQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2NvbG9yL2NvbG9yXCI7XG5pbXBvcnQgeyBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvclwiO1xuaW1wb3J0IHsgZ3JhZGllbnRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2dyYWRpZW50L2dyYWRpZW50XCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGRyYWdnYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZHJhZ2dhYmxlLWFuZC1kcm9wcGFibGUvZHJhZ2dhYmxlXCI7XG5pbXBvcnQgeyBkcm9wcGFibGVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2RyYWdnYWJsZS1hbmQtZHJvcHBhYmxlL2Ryb3BwYWJsZVwiO1xuaW1wb3J0IHsgb2JzZXJ2ZXIgfSBmcm9tIFwibW9ieC1yZWFjdFwiO1xuaW1wb3J0IHsgdG9vbHRpcFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvdG9vbHRpcC90b29sdGlwXCI7XG5pbXBvcnQgeyB0cmFuc2l0aW9uUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy90cmFuc2l0aW9uL3RyYW5zaXRpb25cIjtcbmltcG9ydCB7IG9mZnNldFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb2Zmc2V0L29mZnNldFwiO1xuaW1wb3J0IHsgb2Zmc2V0Q2hpbGRyZW5QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL29mZnNldC1jaGlsZHJlbi9vZmZzZXQtY2hpbGRyZW5cIjtcbmltcG9ydCB7IGhpZGRlblBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaGlkZGVuL2hpZGRlblwiO1xuaW1wb3J0IHsgbm9Qb2ludGVyRXZlbnRzUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9uby1wb2ludGVyLWV2ZW50cy9uby1wb2ludGVyLWV2ZW50c1wiO1xuaW1wb3J0IHsgbWFyZ2luUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9tYXJnaW4vbWFyZ2luXCI7XG5pbXBvcnQgeyByZWxhdGl2ZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvcmVsYXRpdmUvcmVsYXRpdmVcIjtcbmltcG9ydCB7IGFic29sdXRlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9hYnNvbHV0ZS9hYnNvbHV0ZVwiO1xuaW1wb3J0IHsgdmlzdWFsbHlIaWRkZW5QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3Zpc3VhbGx5LWhpZGRlbi92aXN1YWxseS1oaWRkZW5cIjtcbmltcG9ydCB7IGhvdmVyYWJsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZVwiO1xuaW1wb3J0IHsgaG92ZXJhYmxlQnlEcmFnZ2luZ1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvaG92ZXJhYmxlL2hvdmVyYWJsZS1ieS1kcmFnZ2luZ1wiO1xuaW1wb3J0IHsgYm94U2hhZG93UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9ib3gtc2hhZG93L2JveC1zaGFkb3dcIjtcbmltcG9ydCB7IG92ZXJmbG93UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuaW1wb3J0IHsgZmxleENoaWxkUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mbGV4LWNoaWxkL2ZsZXgtY2hpbGRcIjtcbmltcG9ydCB7IGdyYXlzY2FsZVBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZ3JheXNjYWxlL2dyYXlzY2FsZVwiO1xuaW1wb3J0IHsgdGludFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvdGludC90aW50XCI7XG5pbXBvcnQgeyBmYWRlZFBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZmFkZWQvZmFkZWRcIjtcbmltcG9ydCB7IGVuYWJsZWRQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2VuYWJsZWQvZW5hYmxlZFwiO1xuaW1wb3J0IHsgZm9jdXNhYmxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9mb2N1c2FibGUvZm9jdXNhYmxlXCI7XG5pbXBvcnQgeyBhcmVhUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9hcmVhL2FyZWFcIjtcbmltcG9ydCB7IGFyZWFDb250ZW50UGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9hcmVhLWNvbnRlbnQvYXJlYS1jb250ZW50XCI7XG5pbXBvcnQgeyBzaXplUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9zaXplL3NpemVcIjtcbmltcG9ydCB7IGN1cnNvclBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvY3Vyc29yL2N1cnNvclwiO1xuaW1wb3J0IHsgY2xpY2thYmxlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgeyByZWZQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3JlZi9yZWZcIjtcbmltcG9ydCB7IGRpc3BsYXlDb250ZW50c1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZGlzcGxheS1jb250ZW50cy9kaXNwbGF5LWNvbnRlbnRzXCI7XG5pbXBvcnQgeyB0ZXh0QWxpZ25QbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL3RleHQtYWxpZ24vdGV4dC1hbGlnblwiO1xuaW1wb3J0IHsgYmxvY2tQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Jsb2NrL2Jsb2NrXCI7XG5pbXBvcnQgeyBvdXRsaW5lUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9vdXRsaW5lL291dGxpbmVcIjtcbmltcG9ydCB7IGludGVyYWN0aXZlUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9pbnRlcmFjdGl2ZS9pbnRlcmFjdGl2ZVwiO1xuaW1wb3J0IHsgcG9wb3ZlclBsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvcG9wb3Zlci9wb3BvdmVyXCI7XG5pbXBvcnQgeyBmbG9hdGluZ1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvZmxvYXRpbmcvZmxvYXRpbmdcIjtcbmltcG9ydCB7IGludmlzaWJsZUJhY2tkcm9wUGx1Z2luIH0gZnJvbSBcIi4vcGx1Z2lucy9pbnZpc2libGUtYmFja2Ryb3AvaW52aXNpYmxlLWJhY2tkcm9wXCI7XG5pbXBvcnQgeyBvbk91dHNpZGVDbGlja1BsdWdpbiB9IGZyb20gXCIuL3BsdWdpbnMvb24tb3V0c2lkZS1jbGljay9vbi1vdXRzaWRlLWNsaWNrXCI7XG5pbXBvcnQgeyBkcm9wRG93bk1lbnVQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2Ryb3AtZG93bi1tZW51L2Ryb3AtZG93bi1tZW51XCI7XG5pbXBvcnQgeyBhbmNob3JQbHVnaW4gfSBmcm9tIFwiLi9wbHVnaW5zL2FuY2hvci9hbmNob3JcIjtcblxuZXhwb3J0IGNvbnN0IHNoYXJlZFBsdWdpbnMgPSBbXG4gIC8vIENvbnRyaWJ1dGVzIHByb3BzIG9mIGl0cyBvd24sIHNvIGl0IGhhcyB0byBydW4gYmVmb3JlIHRoZSBwbHVnaW5zIHRoYXQgcmVzb2x2ZSB0aGVtLlxuICBhbmNob3JQbHVnaW4sXG4gIHNpemVQbHVnaW4sXG4gIGRyYWdnYWJsZVBsdWdpbixcbiAgdGV4dEFsaWduUGx1Z2luLFxuICBkcm9wcGFibGVQbHVnaW4sXG4gIGFyZWFQbHVnaW4sXG4gIGFyZWFDb250ZW50UGx1Z2luLFxuICBmbGV4UGx1Z2luLFxuICBncmlkUGx1Z2luLFxuICB3aWR0aFBsdWdpbixcbiAgaGVpZ2h0UGx1Z2luLFxuICBmbGV4Q2hpbGRQbHVnaW4sXG4gIG92ZXJmbG93UGx1Z2luLFxuICBwYWRkaW5nUGx1Z2luLFxuICBtYXJnaW5QbHVnaW4sXG4gIGJsb2NrUGx1Z2luLFxuICBib3hTaGFkb3dQbHVnaW4sXG4gIGJvcmRlclBsdWdpbixcbiAgb3V0bGluZVBsdWdpbixcbiAgaW50ZXJhY3RpdmVQbHVnaW4sXG4gIGZvbnRQbHVnaW4sXG4gIGNvbG9yUGx1Z2luLFxuICBiYWNrZ3JvdW5kQ29sb3JQbHVnaW4sXG4gIGdyYWRpZW50UGx1Z2luLFxuICBncmF5c2NhbGVQbHVnaW4sXG4gIHRpbnRQbHVnaW4sXG4gIGZhZGVkUGx1Z2luLFxuICBzdHlsZVBsdWdpbixcbiAgdHJhbnNpdGlvblBsdWdpbixcbiAgb2Zmc2V0UGx1Z2luLFxuICBvZmZzZXRDaGlsZHJlblBsdWdpbixcbiAgaGlkZGVuUGx1Z2luLFxuICBub1BvaW50ZXJFdmVudHNQbHVnaW4sXG4gIGludmlzaWJsZUJhY2tkcm9wUGx1Z2luLFxuICB2aXN1YWxseUhpZGRlblBsdWdpbixcbiAgcmVsYXRpdmVQbHVnaW4sXG4gIGFic29sdXRlUGx1Z2luLFxuICBjdXJzb3JQbHVnaW4sXG4gIGRpc3BsYXlDb250ZW50c1BsdWdpbixcbiAgb25PdXRzaWRlQ2xpY2tQbHVnaW4sXG4gIGNsYXNzTmFtZVBsdWdpbixcbl07XG5cbmNvbnN0IHNoYXJlZENsaWNrYWJsZVBsdWdpbnMgPSBbZHJvcERvd25NZW51UGx1Z2luLCBwb3BvdmVyUGx1Z2luLCBlbmFibGVkUGx1Z2luLCBjbGlja2FibGVQbHVnaW5dO1xuXG5leHBvcnQgY29uc3QgZ2V0U2hhcmVkVHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbXG4gIC4uLmdldFNoYXJlZENoaWxkcmVuQWRkaW5nVHlwZWRQbHVnaW5zPFQ+KCksXG4gIC4uLmdldFNoYXJlZE5vbkNoaWxkcmVuQWRkaW5nVHlwZWRQbHVnaW5zPFQ+KCksXG5dO1xuXG5jb25zdCBnZXRTaGFyZWRDaGlsZHJlbkFkZGluZ1R5cGVkUGx1Z2lucyA9IDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4gW3Rvb2x0aXBQbHVnaW48VD4oKSwgZmxvYXRpbmdQbHVnaW48VD4oKV07XG5cbmNvbnN0IGdldFNoYXJlZE5vbkNoaWxkcmVuQWRkaW5nVHlwZWRQbHVnaW5zID0gPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oKSA9PiBbXG4gIGhvdmVyYWJsZVBsdWdpbjxUPigpLFxuICBob3ZlcmFibGVCeURyYWdnaW5nUGx1Z2luPFQ+KCksXG4gIGZvY3VzYWJsZVBsdWdpbjxUPigpLFxuICByZWZQbHVnaW48VD4oKSxcbl07XG5cbmV4cG9ydCBjb25zdCBEaXYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBEaXZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBEaXY+O1xuXG4vLyBVc2UgZGl2IGFzIG5ldXRyYWwgdGVtcGxhdGUgZm9yIHdoYXQgY29tbW9uIHByb3BzIHNob3VsZCBsb29rIGxpa2VcbmV4cG9ydCBjb25zdCBDb21tb24gPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxhbnk+KCkpKTtcbmV4cG9ydCB0eXBlIENvbW1vblByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENvbW1vbj47XG5cbmV4cG9ydCBjb25zdCBTdmcgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwic3ZnXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRWxlbWVudD4oKSkpO1xuXG5leHBvcnQgdHlwZSBTdmdQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBTdmc+O1xuXG5leHBvcnQgY29uc3QgSW5wdXQgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcbiAgICBcImlucHV0XCIsXG4gICAgZW5hYmxlZFBsdWdpbixcbiAgICAuLi5zaGFyZWRQbHVnaW5zLFxuICAgIC4uLmdldFNoYXJlZE5vbkNoaWxkcmVuQWRkaW5nVHlwZWRQbHVnaW5zPEhUTUxJbnB1dEVsZW1lbnQ+KCksXG4gICksXG4pO1xuZXhwb3J0IHR5cGUgSW5wdXRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBJbnB1dD47XG5cbmV4cG9ydCBjb25zdCBUZXh0QXJlYSA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidGV4dGFyZWFcIiwgZW5hYmxlZFBsdWdpbiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIFRleHRBcmVhUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVGV4dEFyZWE+O1xuXG5leHBvcnQgY29uc3QgRm9ybSA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwiZm9ybVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEZvcm1FbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBGb3JtUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgRm9ybT47XG5cbmV4cG9ydCBjb25zdCBTcGFuID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJzcGFuXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MU3BhbkVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIFNwYW5Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBTcGFuPjtcblxuZXhwb3J0IGNvbnN0IENsaWNrYWJsZURpdiA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwiZGl2XCIsIC4uLnNoYXJlZENsaWNrYWJsZVBsdWdpbnMsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRGl2RWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgQ2xpY2thYmxlRGl2UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQ2xpY2thYmxlRGl2PjtcblxuZXhwb3J0IGNvbnN0IEkgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIElQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBJPjtcblxuZXhwb3J0IGNvbnN0IEEgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiYVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEFuY2hvckVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEFQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBBPjtcblxuZXhwb3J0IGNvbnN0IEJ1dHRvbiA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFxuICAgIFwiYnV0dG9uXCIsXG4gICAgLi4uc2hhcmVkQ2xpY2thYmxlUGx1Z2lucyxcbiAgICAuLi5zaGFyZWRQbHVnaW5zLFxuICAgIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MQnV0dG9uRWxlbWVudD4oKSxcbiAgKSxcbik7XG5leHBvcnQgdHlwZSBCdXR0b25Qcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBCdXR0b24+O1xuXG5leHBvcnQgY29uc3QgQ29kZSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJjb2RlXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgQ29kZVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENvZGU+O1xuXG5leHBvcnQgY29uc3QgTGFiZWwgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwibGFiZWxcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBMYWJlbFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIExhYmVsPjtcblxuZXhwb3J0IGNvbnN0IFByZSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJwcmVcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxQcmVFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBQcmVQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBQcmU+O1xuXG5leHBvcnQgY29uc3QgTmF2ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcIm5hdlwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEVsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIE5hdlByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIE5hdj47XG5cbmV4cG9ydCBjb25zdCBIMSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoMVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBIMVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEgxPjtcblxuZXhwb3J0IGNvbnN0IEgyID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImgyXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEgyUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDI+O1xuXG5leHBvcnQgY29uc3QgSDMgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDNcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDNQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBIMz47XG5cbmV4cG9ydCBjb25zdCBINCA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJoNFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTEhlYWRpbmdFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBINFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEg0PjtcblxuZXhwb3J0IGNvbnN0IEg1ID0gb2JzZXJ2ZXIoZ2V0RWxlbWVudENvbXBvbmVudChcImg1XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSGVhZGluZ0VsZW1lbnQ+KCkpKTtcbmV4cG9ydCB0eXBlIEg1UHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgSDU+O1xuXG5leHBvcnQgY29uc3QgSDYgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaDZcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxIZWFkaW5nRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgSDZQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBINj47XG5cbmV4cG9ydCBjb25zdCBPbCA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJvbFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTE9MaXN0RWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgT2xQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBPbD47XG5cbmV4cG9ydCBjb25zdCBVbCA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJ1bFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFVMaXN0RWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgVWxQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBVbD47XG5cbmV4cG9ydCBjb25zdCBMaSA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJsaVwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTExJRWxlbWVudD4oKSkpO1xuXG5leHBvcnQgY29uc3QgQ2xpY2thYmxlTGkgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImxpXCIsIC4uLnNoYXJlZENsaWNrYWJsZVBsdWdpbnMsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MTElFbGVtZW50PigpKSxcbik7XG5leHBvcnQgdHlwZSBDbGlja2FibGVMaVByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENsaWNrYWJsZUxpPjtcbmV4cG9ydCB0eXBlIExpUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgTGk+O1xuXG5leHBvcnQgY29uc3QgUCA9IG9ic2VydmVyKGdldEVsZW1lbnRDb21wb25lbnQoXCJwXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MUGFyYWdyYXBoRWxlbWVudD4oKSkpO1xuZXhwb3J0IHR5cGUgUFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFA+O1xuXG5leHBvcnQgY29uc3QgVGggPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRoXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVDZWxsRWxlbWVudD4oKSksXG4pO1xuXG5leHBvcnQgdHlwZSBUaFByb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIFRoPjtcblxuZXhwb3J0IGNvbnN0IFRkID0gb2JzZXJ2ZXIoXG4gIGdldEVsZW1lbnRDb21wb25lbnQoXCJ0ZFwiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTFRhYmxlQ2VsbEVsZW1lbnQ+KCkpLFxuKTtcblxuZXhwb3J0IHR5cGUgVGRQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUZD47XG5cbmV4cG9ydCBjb25zdCBUciA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidHJcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUYWJsZVJvd0VsZW1lbnQ+KCkpLFxuKTtcblxuZXhwb3J0IHR5cGUgVHJQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUcj47XG5cbmV4cG9ydCBjb25zdCBUYWJsZSA9IG9ic2VydmVyKFxuICBnZXRFbGVtZW50Q29tcG9uZW50KFwidGFibGVcIiwgLi4uc2hhcmVkUGx1Z2lucywgLi4uZ2V0U2hhcmVkVHlwZWRQbHVnaW5zPEhUTUxUYWJsZUVsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIFRhYmxlUHJvcHMgPSBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgVGFibGU+O1xuXG5leHBvcnQgY29uc3QgVEJvZHkgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcInRib2R5XCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MVGFibGVTZWN0aW9uRWxlbWVudD4oKSksXG4pO1xuZXhwb3J0IHR5cGUgVEJvZHlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBUQm9keT47XG5cbmV4cG9ydCBjb25zdCBEaWFsb2cgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImRpYWxvZ1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTERpYWxvZ0VsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIERpYWxvZ1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIERpYWxvZz47XG5cbmV4cG9ydCBjb25zdCBDYW52YXMgPSBvYnNlcnZlcihcbiAgZ2V0RWxlbWVudENvbXBvbmVudChcImNhbnZhc1wiLCAuLi5zaGFyZWRQbHVnaW5zLCAuLi5nZXRTaGFyZWRUeXBlZFBsdWdpbnM8SFRNTENhbnZhc0VsZW1lbnQ+KCkpLFxuKTtcbmV4cG9ydCB0eXBlIENhbnZhc1Byb3BzID0gUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIENhbnZhcz47XG5cbmV4cG9ydCBjb25zdCBJbWcgPSBvYnNlcnZlcihnZXRFbGVtZW50Q29tcG9uZW50KFwiaW1nXCIsIC4uLnNoYXJlZFBsdWdpbnMsIC4uLmdldFNoYXJlZFR5cGVkUGx1Z2luczxIVE1MSW1hZ2VFbGVtZW50PigpKSk7XG5leHBvcnQgdHlwZSBJbWdQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBJbWc+O1xuXG4vKiBjOCBpZ25vcmUgZW5kICovXG4iLCAiaW1wb3J0IGZsZXhTdHlsZXMgZnJvbSBcIi4vZmxleC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbmV4cG9ydCB0eXBlIEhvcml6b250YWxGbGV4UHJvcHMgPSB7XG4gIGRpcmVjdGlvbj86IFwiaG9yaXpvbnRhbFwiIHwgXCJob3Jpem9udGFsLXJldmVyc2VkXCI7XG5cbiAgaG9yaXpvbnRhbEFsaWduPzogXCJjZW50ZXJcIiB8IFwic3BhY2UtYmV0d2VlblwiIHwgXCJzcGFjZS1hcm91bmRcIiB8IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuICB2ZXJ0aWNhbEFsaWduPzogXCJjZW50ZXJcIiB8IFwic3RyZXRjaFwiIHwgXCJ0b3BcIiB8IFwiYm90dG9tXCI7XG59O1xuXG5leHBvcnQgdHlwZSBWZXJ0aWNhbEZsZXhQcm9wcyA9IHtcbiAgZGlyZWN0aW9uPzogXCJ2ZXJ0aWNhbFwiIHwgXCJ2ZXJ0aWNhbC1yZXZlcnNlZFwiO1xuXG4gIGhvcml6b250YWxBbGlnbj86IFwiY2VudGVyXCIgfCBcInN0cmV0Y2hcIiB8IFwibGVmdFwiIHwgXCJyaWdodFwiO1xuICB2ZXJ0aWNhbEFsaWduPzogXCJjZW50ZXJcIiB8IFwic3BhY2UtYmV0d2VlblwiIHwgXCJzcGFjZS1hcm91bmRcIiB8IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxuZXhwb3J0IHR5cGUgTWF4aW1hbEZsZXhQcm9wcyA9IChIb3Jpem9udGFsRmxleFByb3BzIHwgVmVydGljYWxGbGV4UHJvcHMpICYge1xuICBnYXA/OiBUU2hpcnRTaXplIHwgeyByb3c/OiBUU2hpcnRTaXplOyBjb2x1bW4/OiBUU2hpcnRTaXplIH07XG4gIHdyYXA/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgU2ltcGxlRmxleFByb3AgPSBib29sZWFuO1xuXG5leHBvcnQgdHlwZSBGbGV4UGx1Z2luUHJvcHMgPSB7ICRmbGV4PzogU2ltcGxlRmxleFByb3AgfCBNYXhpbWFsRmxleFByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBmbGV4UGx1Z2luID0gZ2V0UGx1Z2luPEZsZXhQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZmxleCB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkZmxleCkge1xuICAgIHJldHVybiB7XG4gICAgICAkZmxleDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBjb25zdCB7XG4gICAgZGlyZWN0aW9uID0gXCJob3Jpem9udGFsXCIsXG4gICAgdmVydGljYWxBbGlnbiA9IFwiXCIsXG4gICAgaG9yaXpvbnRhbEFsaWduID0gXCJcIixcbiAgICBnYXAgPSB1bmRlZmluZWQsXG4gICAgd3JhcCxcbiAgfSA9ICRmbGV4ID09PSB0cnVlID8ge30gOiAkZmxleDtcblxuICBjb25zdCBob3Jpem9udGFsQWxpZ25Qcm9wcyA9IHtcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tc3RyZXRjaGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzdHJldGNoXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2FsaWduSXRlbXMtLWNlbnRlcmBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0YF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcInRvcFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kYF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcImJvdHRvbVwiLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUFyb3VuZGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInNwYWNlLWFyb3VuZFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3BhY2VCZXR3ZWVuYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwic3BhY2UtYmV0d2VlblwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tc3RyZXRjaGBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcInN0cmV0Y2hcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlcmBdXTogaG9yaXpvbnRhbEFsaWduID09PSBcImNlbnRlclwiLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4U3RhcnRgXV06XG4gICAgICAoZGlyZWN0aW9uID09PSBcImhvcml6b250YWxcIiAmJiBob3Jpem9udGFsQWxpZ24gPT09IFwibGVmdFwiKSB8fFxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsLXJldmVyc2VkXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcInJpZ2h0XCIpLFxuXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1mbGV4RW5kYF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJob3Jpem9udGFsXCIgJiYgaG9yaXpvbnRhbEFsaWduID09PSBcInJpZ2h0XCIpIHx8XG4gICAgICAoZGlyZWN0aW9uID09PSBcImhvcml6b250YWwtcmV2ZXJzZWRcIiAmJiBob3Jpem9udGFsQWxpZ24gPT09IFwibGVmdFwiKSxcbiAgfTtcblxuICBjb25zdCB2ZXJ0aWNhbEFsaWduUHJvcHMgPSB7XG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zcGFjZUFyb3VuZGBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzcGFjZS1hcm91bmRcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLXNwYWNlQmV0d2VlbmBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJzcGFjZS1iZXR3ZWVuXCIsXG4gICAgW2ZsZXhTdHlsZXNbYGZsZXhfX2p1c3RpZnlDb250ZW50LS1zdHJldGNoYF1dOiB2ZXJ0aWNhbEFsaWduID09PSBcInN0cmV0Y2hcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWNlbnRlcmBdXTogdmVydGljYWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19qdXN0aWZ5Q29udGVudC0tZmxleFN0YXJ0YF1dOlxuICAgICAgKGRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiICYmIHZlcnRpY2FsQWxpZ24gPT09IFwidG9wXCIpIHx8XG4gICAgICAoZGlyZWN0aW9uID09PSBcInZlcnRpY2FsLXJldmVyc2VkXCIgJiYgdmVydGljYWxBbGlnbiA9PT0gXCJib3R0b21cIiksXG5cbiAgICBbZmxleFN0eWxlc1tgZmxleF9fanVzdGlmeUNvbnRlbnQtLWZsZXhFbmRgXV06XG4gICAgICAoZGlyZWN0aW9uID09PSBcInZlcnRpY2FsXCIgJiYgdmVydGljYWxBbGlnbiA9PT0gXCJib3R0b21cIikgfHxcbiAgICAgIChkaXJlY3Rpb24gPT09IFwidmVydGljYWwtcmV2ZXJzZWRcIiAmJiB2ZXJ0aWNhbEFsaWduID09PSBcInRvcFwiKSxcblxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1zdHJldGNoYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwic3RyZXRjaFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1jZW50ZXJgXV06IGhvcml6b250YWxBbGlnbiA9PT0gXCJjZW50ZXJcIixcbiAgICBbZmxleFN0eWxlc1tgZmxleF9fYWxpZ25JdGVtcy0tZmxleFN0YXJ0YF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwibGVmdFwiLFxuICAgIFtmbGV4U3R5bGVzW2BmbGV4X19hbGlnbkl0ZW1zLS1mbGV4RW5kYF1dOiBob3Jpem9udGFsQWxpZ24gPT09IFwicmlnaHRcIixcbiAgfTtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIGZsZXhTdHlsZXMuZmxleCxcbiAgICAgIGZsZXhTdHlsZXNbYGZsZXhfX2RpcmVjdGlvbi0tJHtkaXJlY3Rpb259YF0sXG5cbiAgICAgIFtcImhvcml6b250YWxcIiwgXCJob3Jpem9udGFsLXJldmVyc2VkXCJdLmluY2x1ZGVzKGRpcmVjdGlvbikgPyBob3Jpem9udGFsQWxpZ25Qcm9wcyA6IHZlcnRpY2FsQWxpZ25Qcm9wcyxcblxuICAgICAgdHlwZW9mIGdhcCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGZsZXhTdHlsZXNbYGZsZXhfX2dhcC0tJHtnYXB9YF1cbiAgICAgICAgOiBnYXBcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgZ2FwLmNvbHVtbiA/IGZsZXhTdHlsZXNbYGZsZXhfX2dhcC0tY29sdW1uLS0ke2dhcC5jb2x1bW59YF0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGdhcC5yb3cgPyBmbGV4U3R5bGVzW2BmbGV4X19nYXAtLXJvdy0tJHtnYXAucm93fWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgd3JhcCAmJiBmbGV4U3R5bGVzW2BmbGV4X193cmFwLS13cmFwYF0sXG5cbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgXSxcblxuICAgICRmbGV4OiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgZ3JpZFN0eWxlcyBmcm9tIFwiLi9ncmlkLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgR3JpZENvbHVtbnMgPSAxIHwgMiB8IDMgfCA0IHwgNSB8IDY7XG5cbmV4cG9ydCB0eXBlIEdyaWRQcm9wcyA9IHtcbiAgY29sdW1uczogR3JpZENvbHVtbnM7XG4gIGdhcD86IFRTaGlydFNpemUgfCB7IHJvdz86IFRTaGlydFNpemU7IGNvbHVtbj86IFRTaGlydFNpemUgfTtcbiAgYWxpZ25JdGVtcz86IFwic3RyZXRjaFwiIHwgXCJjZW50ZXJcIiB8IFwic3RhcnRcIiB8IFwiZW5kXCI7XG59O1xuXG5leHBvcnQgdHlwZSBHcmlkUGx1Z2luUHJvcHMgPSB7ICRncmlkPzogR3JpZFByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBncmlkUGx1Z2luID0gZ2V0UGx1Z2luPEdyaWRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZ3JpZCB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkZ3JpZCkge1xuICAgIHJldHVybiB7ICRncmlkOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IHsgY29sdW1ucywgZ2FwLCBhbGlnbkl0ZW1zIH0gPSAkZ3JpZDtcblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtcbiAgICAgIGdyaWRTdHlsZXMuZ3JpZCxcbiAgICAgIGdyaWRTdHlsZXNbYGdyaWRfX2NvbHVtbnMtLSR7Y29sdW1uc31gXSxcbiAgICAgIGFsaWduSXRlbXMgPyBncmlkU3R5bGVzW2BncmlkX19hbGlnbkl0ZW1zLS0ke2FsaWduSXRlbXN9YF0gOiB1bmRlZmluZWQsXG5cbiAgICAgIHR5cGVvZiBnYXAgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBncmlkU3R5bGVzW2BncmlkX19nYXAtLSR7Z2FwfWBdXG4gICAgICAgIDogZ2FwXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIGdhcC5jb2x1bW4gPyBncmlkU3R5bGVzW2BncmlkX19nYXAtLWNvbHVtbi0tJHtnYXAuY29sdW1ufWBdIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBnYXAucm93ID8gZ3JpZFN0eWxlc1tgZ3JpZF9fZ2FwLS1yb3ctLSR7Z2FwLnJvd31gXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcblxuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICBdLFxuXG4gICAgJGdyaWQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB3aWR0aFN0eWxlcyBmcm9tIFwiLi93aWR0aC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgVFNoaXJ0U2l6ZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5cbi8qKiBBIHNoYXJlIG9mIHRoZSBwYXJlbnQncyB3aWR0aCwgZS5nLiBgXCIzMCVcImAsIGZvciBsYXlvdXRzIHRoYXQgZGl2aWRlIGEgcm93IHJhdGhlciB0aGFuIHNpemUgYSBib3guICovXG5leHBvcnQgdHlwZSBQZXJjZW50YWdlID0gYCR7bnVtYmVyfSVgO1xuXG5leHBvcnQgdHlwZSAkV2lkdGhQcm9wcyA9IHtcbiAgd2lkdGg/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcInN0cmV0Y2hcIiB8IFBlcmNlbnRhZ2U7XG4gIG1pbj86IFRTaGlydFNpemUgfCBcImZpdFwiIHwgUGVyY2VudGFnZTtcbiAgbWF4PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJjb250ZW50XCIgfCBQZXJjZW50YWdlO1xufTtcblxuZXhwb3J0IHR5cGUgV2lkdGhQbHVnaW5Qcm9wcyA9IHsgJHdpZHRoPzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJzdHJldGNoXCIgfCBQZXJjZW50YWdlIHwgJFdpZHRoUHJvcHMgfTtcblxuY29uc3QgaXNQZXJjZW50YWdlID0gKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2YWx1ZSBpcyBQZXJjZW50YWdlID0+IHZhbHVlPy5lbmRzV2l0aChcIiVcIikgPT09IHRydWU7XG5cbmV4cG9ydCBjb25zdCB3aWR0aFBsdWdpbiA9IGdldFBsdWdpbjxXaWR0aFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbiwgdHlwZW9mIHN0eWxlUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHdpZHRoLCAkY2xhc3NOYW1lLCAkc3R5bGUgfSA9IHByb3BzO1xuICBjb25zdCB7IHdpZHRoLCBtaW4sIG1heCB9ID0gdHlwZW9mICR3aWR0aCA9PT0gXCJzdHJpbmdcIiA/IHsgd2lkdGg6ICR3aWR0aCB9IDogKCR3aWR0aCA/PyB7fSk7XG4gIGNvbnN0IHBlcmNlbnRhZ2VzID0ge1xuICAgIC4uLihpc1BlcmNlbnRhZ2Uod2lkdGgpID8geyB3aWR0aCB9IDoge30pLFxuICAgIC4uLihpc1BlcmNlbnRhZ2UobWluKSA/IHsgbWluV2lkdGg6IG1pbiB9IDoge30pLFxuICAgIC4uLihpc1BlcmNlbnRhZ2UobWF4KSA/IHsgbWF4V2lkdGg6IG1heCB9IDoge30pLFxuICB9O1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgd2lkdGggJiYgIWlzUGVyY2VudGFnZSh3aWR0aCkgPyB3aWR0aFN0eWxlc1tgd2lkdGgtLSR7d2lkdGh9YF0gOiB1bmRlZmluZWQsXG4gICAgICBtaW4gJiYgIWlzUGVyY2VudGFnZShtaW4pID8gd2lkdGhTdHlsZXNbYG1pbi13aWR0aC0tJHttaW59YF0gOiB1bmRlZmluZWQsXG4gICAgICBtYXggJiYgIWlzUGVyY2VudGFnZShtYXgpID8gd2lkdGhTdHlsZXNbYG1heC13aWR0aC0tJHttYXh9YF0gOiB1bmRlZmluZWQsXG4gICAgICAkY2xhc3NOYW1lLFxuICAgIF0sXG4gICAgJHN0eWxlOiBPYmplY3Qua2V5cyhwZXJjZW50YWdlcykubGVuZ3RoID4gMCA/IHsgLi4uJHN0eWxlLCAuLi5wZXJjZW50YWdlcyB9IDogJHN0eWxlLFxuICAgICR3aWR0aDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5cbmV4cG9ydCB0eXBlIFN0eWxlUGx1Z2luUHJvcHMgPSB7ICRzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7IHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcyB9O1xuXG5leHBvcnQgY29uc3Qgc3R5bGVQbHVnaW4gPSBnZXRQbHVnaW48U3R5bGVQbHVnaW5Qcm9wcz4oKHByb3BzKSA9PiB7XG4gIC8qIGM4IGlnbm9yZSBuZXh0ICovXG4gIGNvbnN0ICRzdHlsZSA9IHByb3BzLiRzdHlsZSB8fCB7fTtcblxuICBjb25zdCBzdHlsZSA9IHByb3BzLnN0eWxlIHx8IHt9O1xuXG4gIHJldHVybiB7XG4gICAgc3R5bGU6IHsgLi4uJHN0eWxlLCAuLi5zdHlsZSB9LFxuICAgICRzdHlsZTogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IGhlaWdodFN0eWxlcyBmcm9tIFwiLi9oZWlnaHQubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBzdHlsZVBsdWdpbiB9IGZyb20gXCIuLi9zdHlsZS9zdHlsZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuaW1wb3J0IHR5cGUgeyBQZXJjZW50YWdlIH0gZnJvbSBcIi4uL3dpZHRoL3dpZHRoXCI7XG5cbmV4cG9ydCB0eXBlICRIZWlnaHRQcm9wcyA9IHtcbiAgaGVpZ2h0PzogVFNoaXJ0U2l6ZSB8IFwiZnVsbFwiIHwgXCJzdHJldGNoXCIgfCBcImF1dG9cIiB8IFBlcmNlbnRhZ2U7XG4gIG1pbj86IFRTaGlydFNpemUgfCBQZXJjZW50YWdlO1xuICBtYXg/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBQZXJjZW50YWdlO1xufTtcblxuZXhwb3J0IHR5cGUgSGVpZ2h0UGx1Z2luUHJvcHMgPSB7ICRoZWlnaHQ/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCBcImF1dG9cIiB8IFwic3RyZXRjaFwiIHwgUGVyY2VudGFnZSB8ICRIZWlnaHRQcm9wcyB9O1xuXG5jb25zdCBpc1BlcmNlbnRhZ2UgPSAodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHZhbHVlIGlzIFBlcmNlbnRhZ2UgPT4gdmFsdWU/LmVuZHNXaXRoKFwiJVwiKSA9PT0gdHJ1ZTtcblxuZXhwb3J0IGNvbnN0IGhlaWdodFBsdWdpbiA9IGdldFBsdWdpbjxIZWlnaHRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRoZWlnaHQsICRzdHlsZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgaGVpZ2h0LCBtaW4sIG1heCB9ID0gdHlwZW9mICRoZWlnaHQgPT09IFwic3RyaW5nXCIgPyB7IGhlaWdodDogJGhlaWdodCB9IDogKCRoZWlnaHQgPz8ge30pO1xuICBjb25zdCBwZXJjZW50YWdlcyA9IHtcbiAgICAuLi4oaXNQZXJjZW50YWdlKGhlaWdodCkgPyB7IGhlaWdodCB9IDoge30pLFxuICAgIC4uLihpc1BlcmNlbnRhZ2UobWluKSA/IHsgbWluSGVpZ2h0OiBtaW4gfSA6IHt9KSxcbiAgICAuLi4oaXNQZXJjZW50YWdlKG1heCkgPyB7IG1heEhlaWdodDogbWF4IH0gOiB7fSksXG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAkY2xhc3NOYW1lOiBbXG4gICAgICBoZWlnaHQgJiYgIWlzUGVyY2VudGFnZShoZWlnaHQpID8gaGVpZ2h0U3R5bGVzW2BoZWlnaHQtLSR7aGVpZ2h0fWBdIDogdW5kZWZpbmVkLFxuICAgICAgbWluICYmICFpc1BlcmNlbnRhZ2UobWluKSA/IGhlaWdodFN0eWxlc1tgbWluLWhlaWdodC0tJHttaW59YF0gOiB1bmRlZmluZWQsXG4gICAgICBtYXggJiYgIWlzUGVyY2VudGFnZShtYXgpID8gaGVpZ2h0U3R5bGVzW2BtYXgtaGVpZ2h0LS0ke21heH1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgXSxcbiAgICAkc3R5bGU6IE9iamVjdC5rZXlzKHBlcmNlbnRhZ2VzKS5sZW5ndGggPiAwID8geyAuLi4kc3R5bGUsIC4uLnBlcmNlbnRhZ2VzIH0gOiAkc3R5bGUsXG4gICAgJGhlaWdodDogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBjb2xvclN0eWxlcyBmcm9tIFwiLi9jb2xvci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gXCIuLi9fc2hhcmVkL2NvbG9yc1wiO1xuXG5leHBvcnQgdHlwZSBUZXh0Q29sb3IgPSBDb2xvciB8IFRleHRDb2xvckFsaWFzO1xuXG5leHBvcnQgdHlwZSAkQ29sb3JQcm9wcyA9IHtcbiAgcmVhZG9ubHkgbm9ybWFsPzogVGV4dENvbG9yO1xuICByZWFkb25seSBob3Zlcj86IFRleHRDb2xvcjtcbiAgcmVhZG9ubHkgZm9jdXM/OiBUZXh0Q29sb3I7XG4gIHJlYWRvbmx5IGRpc2FibGVkPzogVGV4dENvbG9yO1xufTtcblxuZXhwb3J0IHR5cGUgQ29sb3JQbHVnaW5Qcm9wcyA9IHsgcmVhZG9ubHkgJGNvbG9yPzogVGV4dENvbG9yIHwgJENvbG9yUHJvcHMgfTtcbmV4cG9ydCB0eXBlIFRleHRDb2xvckFsaWFzID0ga2V5b2YgdHlwZW9mIGFsaWFzVG9Ob21pbmFsO1xuXG5jb25zdCBhbGlhc1RvTm9taW5hbCA9IHtcbiAgdGV4dE11dGVkOiBcImdyZXkyNVwiLFxuICB0ZXh0RGVmYXVsdDogXCJncmV5MjBcIixcbiAgdGV4dEhpZ2hsaWdodDogXCJncmV5MTBcIixcbn0gYXMgY29uc3Q7XG5cbmNvbnN0IGlzVGV4dENvbG9yQWxpYXMgPSAoY29sb3I6IFRleHRDb2xvcik6IGNvbG9yIGlzIFRleHRDb2xvckFsaWFzID0+IGNvbG9yIGluIGFsaWFzVG9Ob21pbmFsO1xuXG5leHBvcnQgY29uc3QgY29sb3JQbHVnaW4gPSBnZXRQbHVnaW48Q29sb3JQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkY2xhc3NOYW1lLCAkY29sb3IgfSA9IHByb3BzO1xuICBjb25zdCB7IG5vcm1hbCwgaG92ZXIsIGZvY3VzLCBkaXNhYmxlZCB9ID0gdHlwZW9mICRjb2xvciA9PT0gXCJzdHJpbmdcIiA/IHsgbm9ybWFsOiAkY29sb3IgfSA6ICgkY29sb3IgPz8ge30pO1xuXG4gIGNvbnN0IG5vcm1hbENvbG9yID0gbm9ybWFsID8gKGlzVGV4dENvbG9yQWxpYXMobm9ybWFsKSA/IGFsaWFzVG9Ob21pbmFsW25vcm1hbF0gOiBub3JtYWwpIDogdW5kZWZpbmVkO1xuICBjb25zdCBob3ZlckNvbG9yID0gaG92ZXIgPyAoaXNUZXh0Q29sb3JBbGlhcyhob3ZlcikgPyBhbGlhc1RvTm9taW5hbFtob3Zlcl0gOiBob3ZlcikgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGZvY3VzQ29sb3IgPSBmb2N1cyA/IChpc1RleHRDb2xvckFsaWFzKGZvY3VzKSA/IGFsaWFzVG9Ob21pbmFsW2ZvY3VzXSA6IGZvY3VzKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgZGlzYWJsZWRDb2xvciA9IGRpc2FibGVkID8gKGlzVGV4dENvbG9yQWxpYXMoZGlzYWJsZWQpID8gYWxpYXNUb05vbWluYWxbZGlzYWJsZWRdIDogZGlzYWJsZWQpIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgJGNsYXNzTmFtZSxcbiAgICAgIG5vcm1hbENvbG9yID8gY29sb3JTdHlsZXNbYGNvbG9yLS0ke25vcm1hbENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgICAgaG92ZXJDb2xvciA/IGNvbG9yU3R5bGVzW2Bjb2xvci1ob3Zlci0tJHtob3ZlckNvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgICAgZm9jdXNDb2xvciA/IGNvbG9yU3R5bGVzW2Bjb2xvci1mb2N1cy0tJHtmb2N1c0NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgICAgZGlzYWJsZWRDb2xvciA/IGNvbG9yU3R5bGVzW2Bjb2xvci1kaXNhYmxlZC0tJHtkaXNhYmxlZENvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIF0sXG4gICAgJGNvbG9yOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGdyYWRpZW50U3R5bGVzIGZyb20gXCIuL2dyYWRpZW50Lm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIEdyYWRpZW50UGx1Z2luUHJvcHMgPSB7ICRncmFkaWVudD86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IGdyYWRpZW50UGx1Z2luID0gZ2V0UGx1Z2luPEdyYWRpZW50UGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgcHJvcHMuJGdyYWRpZW50ID8gZ3JhZGllbnRTdHlsZXMuZ3JhZGllbnQgOiB1bmRlZmluZWRdLFxuICAkZ3JhZGllbnQ6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlUGx1Z2luUHJvcHMgfSBmcm9tIFwiLi9nZXQtZHJhZ2dhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB7IGFjdGlvbiB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgeyBkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSB9IGZyb20gXCIuL19zaGFyZWQvZHJhZ2dlZC1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2RyYWdnYWJsZS5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IGRyYWdnYWJsZVBsdWdpbiA9IGdldFBsdWdpbjxEcmFnZ2FibGVQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kZHJhZ2dhYmxlKSB7XG4gICAgcmV0dXJuIHsgJGRyYWdnYWJsZTogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCBbZHJhZ2dpbmcsIHNldERyYWdnaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCB7IGNvbnRleHQsIGl0ZW0gfSA9IHByb3BzLiRkcmFnZ2FibGU7XG5cbiAgY29uc3QgZHJhZ2dlZEl0ZW1TdGF0ZSA9IHVzZVN5bmNJbmplY3QoZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUsIGNvbnRleHQpO1xuXG4gIHJldHVybiB7XG4gICAgZHJhZ2dhYmxlOiB0cnVlLFxuXG4gICAgJHZpc3VhbGx5SGlkZGVuOiBkcmFnZ2luZyxcblxuICAgIG9uRHJhZ1N0YXJ0OiBhY3Rpb24oKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuZWZmZWN0QWxsb3dlZCA9IFwibW92ZVwiO1xuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyYWdTdGFydD8uKGV2ZW50KTtcblxuICAgICAgbWFrZUNocm9taXVtTm90R2xpdGNoV2hlbkRyYWdnaW5nKGV2ZW50KTtcblxuICAgICAgZHJhZ2dlZEl0ZW1TdGF0ZS5zZXQoaXRlbSk7XG5cbiAgICAgIC8vIERvbid0IHNldCBkcmFnZ2luZyB0b28gZWFybHksIGJlY2F1c2UgaXQgd291bGQgaGlkZSB0aGUgXCJkcmFnIHByZXZpZXdcIiBmb3IgZWxlbWVudCBiZWluZyBkcmFnZ2VkLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldERyYWdnaW5nKHRydWUpO1xuICAgICAgfSwgMCk7XG4gICAgfSksXG5cbiAgICBvbkRyYWdFbmQ6IGFjdGlvbigoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHByb3BzLm9uRHJhZ0VuZD8uKGV2ZW50KTtcblxuICAgICAgZHJhZ2dlZEl0ZW1TdGF0ZS5zZXQodW5kZWZpbmVkKTtcbiAgICAgIHNldERyYWdnaW5nKGZhbHNlKTtcbiAgICB9KSxcblxuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBzdHlsZXMuZHJhZ2dhYmxlXSxcblxuICAgICRkcmFnZ2FibGU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuXG5jb25zdCBtYWtlQ2hyb21pdW1Ob3RHbGl0Y2hXaGVuRHJhZ2dpbmcgPSAoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoXCJ0ZXh0L3BsYWluXCIsIFwic3R1Yi1kYXRhLXRvLWZpeC1jaHJvbWl1bVwiKTtcbn07XG4iLCAiaW1wb3J0IHsgZHJhZ2dlZEl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2RyYWdnZWQtaXRlbS1zdGF0ZS5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHsgbWFrZVN1cmVEcmFnQW5kRHJvcEV2ZW50c0hhdmVUaW1lVG9IYXBwZW5JbmplY3RhYmxlIH0gZnJvbSBcIi4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4vbWFrZS1zdXJlLWRyYWctYW5kLWRyb3AtZXZlbnRzLWhhdmUtdGltZS10by1oYXBwZW4uaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBEcm9wcGFibGVQbHVnaW5Qcm9wcyB9IGZyb20gXCIuL2dldC1kcmFnZ2FibGUtY29udGV4dFwiO1xuXG5leHBvcnQgY29uc3QgZHJvcHBhYmxlUGx1Z2luID0gZ2V0UGx1Z2luPERyb3BwYWJsZVBsdWdpblByb3BzPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kZHJvcHBhYmxlKSB7XG4gICAgcmV0dXJuIHsgJGRyb3BwYWJsZTogdW5kZWZpbmVkIH07XG4gIH1cblxuICBjb25zdCB7IGNvbnRleHQsIG9uRHJvcCB9ID0gcHJvcHMuJGRyb3BwYWJsZTtcblxuICBjb25zdCBkcmFnZ2VkSXRlbVN0YXRlID0gdXNlU3luY0luamVjdChkcmFnZ2VkSXRlbVN0YXRlSW5qZWN0YWJsZSwgY29udGV4dCk7XG4gIGNvbnN0IHNvbWUgPSB1c2VTeW5jSW5qZWN0KG1ha2VTdXJlRHJhZ0FuZERyb3BFdmVudHNIYXZlVGltZVRvSGFwcGVuSW5qZWN0YWJsZSk7XG5cbiAgY29uc3QgZHJhZ2dlZEl0ZW0gPSBkcmFnZ2VkSXRlbVN0YXRlLmdldCgpO1xuXG4gIHJldHVybiB7XG4gICAgb25EcmFnT3ZlcjogKGV2ZW50OiBSZWFjdC5EcmFnRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICBwcm9wcy5vbkRyYWdPdmVyPy4oZXZlbnQpO1xuXG4gICAgICBpZiAoZHJhZ2dlZEl0ZW0pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgb25Ecm9wOiAoZXZlbnQ6IFJlYWN0LkRyYWdFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHByb3BzLm9uRHJvcD8uKGV2ZW50KTtcblxuICAgICAgaWYgKGRyYWdnZWRJdGVtKSB7XG4gICAgICAgIHNvbWUoKCkgPT4ge1xuICAgICAgICAgIG9uRHJvcChkcmFnZ2VkSXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICAkZHJvcHBhYmxlOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHRyYW5zaXRpb25TdHlsZXMgZnJvbSBcIi4vdHJhbnNpdGlvbi5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBUcmFuc2l0aW9uUGx1Z2luUHJvcHMgPSB7ICR0cmFuc2l0aW9uPzogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgdHJhbnNpdGlvblBsdWdpbiA9IGdldFBsdWdpbjxUcmFuc2l0aW9uUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgeyBbdHJhbnNpdGlvblN0eWxlcy50cmFuc2l0aW9uXTogISFwcm9wcy4kdHJhbnNpdGlvbiB9XSxcbiAgJHRyYW5zaXRpb246IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IG9mZnNldFN0eWxlcyBmcm9tIFwiLi9vZmZzZXQubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgRGlyZWN0aW9uIH0gZnJvbSBcIi4uL19zaGFyZWQvZGlyZWN0aW9uc1wiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgT2Zmc2V0UGx1Z2luUHJvcHMgPSB7ICRvZmZzZXQ/OiB7IGRpcmVjdGlvbjogRGlyZWN0aW9uOyBzaXplOiBUU2hpcnRTaXplIH0gfTtcblxuZXhwb3J0IGNvbnN0IG9mZnNldFBsdWdpbiA9IGdldFBsdWdpbjxPZmZzZXRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy4kb2Zmc2V0KSB7XG4gICAgcmV0dXJuIHsgJG9mZnNldDogdW5kZWZpbmVkIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBvZmZzZXRTdHlsZXNbYG9mZnNldF9fJHtwcm9wcy4kb2Zmc2V0LmRpcmVjdGlvbn0tLSR7cHJvcHMuJG9mZnNldC5zaXplfWBdXSxcblxuICAgICRvZmZzZXQ6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgb2Zmc2V0U3R5bGVzIGZyb20gXCIuL29mZnNldC1jaGlsZHJlbi5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3Rpb24gfSBmcm9tIFwiLi4vX3NoYXJlZC9kaXJlY3Rpb25zXCI7XG5pbXBvcnQgdHlwZSB7IFRTaGlydFNpemUgfSBmcm9tIFwiLi4vX3NoYXJlZC9zaXplc1wiO1xuXG5leHBvcnQgdHlwZSBPZmZzZXRDaGlsZHJlblBsdWdpblByb3BzID0geyAkb2Zmc2V0Q2hpbGRyZW4/OiB7IGRpcmVjdGlvbjogRGlyZWN0aW9uOyBzaXplOiBUU2hpcnRTaXplIH0gfTtcblxuZXhwb3J0IGNvbnN0IG9mZnNldENoaWxkcmVuUGx1Z2luID0gZ2V0UGx1Z2luPE9mZnNldENoaWxkcmVuUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuJG9mZnNldENoaWxkcmVuKSB7XG4gICAgcmV0dXJuIHsgJG9mZnNldENoaWxkcmVuOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIG9mZnNldFN0eWxlc1tgb2Zmc2V0LWNoaWxkcmVuX18ke3Byb3BzLiRvZmZzZXRDaGlsZHJlbi5kaXJlY3Rpb259LS0ke3Byb3BzLiRvZmZzZXRDaGlsZHJlbi5zaXplfWBdLFxuICAgIF0sXG5cbiAgICAkb2Zmc2V0Q2hpbGRyZW46IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgaGlkZGVuU3R5bGVzIGZyb20gXCIuL2hpZGRlbi5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBIaWRkZW5QbHVnaW5Qcm9wcyA9IHsgJGhpZGRlbj86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IGhpZGRlblBsdWdpbiA9IGdldFBsdWdpbjxIaWRkZW5QbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+ICh7XG4gICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCB7IFtoaWRkZW5TdHlsZXMuaGlkZGVuXTogISFwcm9wcy4kaGlkZGVuIH1dLFxuXG4gICRoaWRkZW46IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IG1hcmdpblN0eWxlcyBmcm9tIFwiLi9tYXJnaW4ubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcImxvZGFzaC9mcFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcblxuZXhwb3J0IHR5cGUgRGlyZWN0aW9uYWxNYXJnaW4gPSB7XG4gIHRvcD86IFRTaGlydFNpemU7XG4gIGJvdHRvbT86IFRTaGlydFNpemU7XG4gIGxlZnQ/OiBUU2hpcnRTaXplO1xuICByaWdodD86IFRTaGlydFNpemU7XG4gIGhvcml6b250YWw/OiBUU2hpcnRTaXplO1xuICB2ZXJ0aWNhbD86IFRTaGlydFNpemU7XG59O1xuXG5leHBvcnQgdHlwZSBNYXJnaW5QbHVnaW5Qcm9wcyA9IHsgJG1hcmdpbj86IGJvb2xlYW4gfCBEaXJlY3Rpb25hbE1hcmdpbiB8IFRTaGlydFNpemUgfCBcImF1dG9cIiB9O1xuXG5leHBvcnQgY29uc3QgbWFyZ2luUGx1Z2luID0gZ2V0UGx1Z2luPE1hcmdpblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBpZiAoIXByb3BzLiRtYXJnaW4pIHtcbiAgICByZXR1cm4geyAkbWFyZ2luOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IG1hcmdpbiA9IHByb3BzLiRtYXJnaW4gPT09IHRydWUgPyBcInhzXCIgOiBwcm9wcy4kbWFyZ2luO1xuXG4gIGlmIChpc1N0cmluZyhtYXJnaW4pKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICRjbGFzc05hbWU6IFtwcm9wcy4kY2xhc3NOYW1lLCBtYXJnaW5TdHlsZXNbYG1hcmdpbi0tJHttYXJnaW59YF1dLFxuICAgICAgJG1hcmdpbjogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBjb25zdCB0b3BTaXplID0gbWFyZ2luLnRvcCB8fCBtYXJnaW4udmVydGljYWw7XG4gIGNvbnN0IGJvdHRvbVNpemUgPSBtYXJnaW4uYm90dG9tIHx8IG1hcmdpbi52ZXJ0aWNhbDtcbiAgY29uc3QgcmlnaHRTaXplID0gbWFyZ2luLnJpZ2h0IHx8IG1hcmdpbi5ob3Jpem9udGFsO1xuICBjb25zdCBsZWZ0U2l6ZSA9IG1hcmdpbi5sZWZ0IHx8IG1hcmdpbi5ob3Jpem9udGFsO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcbiAgICAgIHRvcFNpemUgPyBtYXJnaW5TdHlsZXNbYG1hcmdpbl9fdG9wLS0ke3RvcFNpemV9YF0gOiB1bmRlZmluZWQsXG4gICAgICByaWdodFNpemUgPyBtYXJnaW5TdHlsZXNbYG1hcmdpbl9fcmlnaHQtLSR7cmlnaHRTaXplfWBdIDogdW5kZWZpbmVkLFxuICAgICAgYm90dG9tU2l6ZSA/IG1hcmdpblN0eWxlc1tgbWFyZ2luX19ib3R0b20tLSR7Ym90dG9tU2l6ZX1gXSA6IHVuZGVmaW5lZCxcbiAgICAgIGxlZnRTaXplID8gbWFyZ2luU3R5bGVzW2BtYXJnaW5fX2xlZnQtLSR7bGVmdFNpemV9YF0gOiB1bmRlZmluZWQsXG4gICAgXSxcbiAgICAkbWFyZ2luOiB1bmRlZmluZWQsXG4gIH07XG59KTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHZpc3VhbGx5SGlkZGVuU3R5bGVzIGZyb20gXCIuL3Zpc3VhbGx5LWhpZGRlbi5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBWaXN1YWxseUhpZGRlblBsdWdpblByb3BzID0geyAkdmlzdWFsbHlIaWRkZW4/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCB2aXN1YWxseUhpZGRlblBsdWdpbiA9IGdldFBsdWdpbjxWaXN1YWxseUhpZGRlblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHsgW3Zpc3VhbGx5SGlkZGVuU3R5bGVzW1widmlzdWFsbHktaGlkZGVuXCJdXTogISFwcm9wcy4kdmlzdWFsbHlIaWRkZW4gfV0sXG5cbiAgJHZpc3VhbGx5SGlkZGVuOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBvdmVyZmxvd1N0eWxlcyBmcm9tIFwiLi9vdmVyZmxvdy5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBPdmVyZmxvdyA9IFwiaGlkZGVuXCIgfCBcInNjcm9sbFwiIHwgXCJhdXRvXCIgfCBcInZpc2libGVcIjtcblxuZXhwb3J0IHR5cGUgT3ZlcmZsb3dQbHVnaW5Qcm9wcyA9IHsgJG92ZXJmbG93PzogT3ZlcmZsb3cgfCB7IHg/OiBPdmVyZmxvdzsgeT86IE92ZXJmbG93OyBoaWRlU2Nyb2xsYmFyPzogYm9vbGVhbiB9IH07XG5cbmV4cG9ydCBjb25zdCBvdmVyZmxvd1BsdWdpbiA9IGdldFBsdWdpbjxPdmVyZmxvd1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCAkb3ZlcmZsb3cgPSBwcm9wcy4kb3ZlcmZsb3c7XG5cbiAgaWYgKCEkb3ZlcmZsb3cpIHtcbiAgICByZXR1cm4geyAkb3ZlcmZsb3c6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgeCA9IHR5cGVvZiAkb3ZlcmZsb3cgPT09IFwic3RyaW5nXCIgPyAkb3ZlcmZsb3cgOiAkb3ZlcmZsb3cueDtcbiAgY29uc3QgeSA9IHR5cGVvZiAkb3ZlcmZsb3cgPT09IFwic3RyaW5nXCIgPyAkb3ZlcmZsb3cgOiAkb3ZlcmZsb3cueTtcbiAgY29uc3QgaGlkZVNjcm9sbGJhciA9IHR5cGVvZiAkb3ZlcmZsb3cgPT09IFwic3RyaW5nXCIgPyBmYWxzZSA6ICRvdmVyZmxvdy5oaWRlU2Nyb2xsYmFyO1xuXG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW1xuICAgICAgcHJvcHMuJGNsYXNzTmFtZSxcblxuICAgICAgeCA/IG92ZXJmbG93U3R5bGVzW2BvdmVyZmxvd19feC0tJHt4fWBdIDogdW5kZWZpbmVkLFxuICAgICAgeSA/IG92ZXJmbG93U3R5bGVzW2BvdmVyZmxvd19feS0tJHt5fWBdIDogdW5kZWZpbmVkLFxuICAgICAgeyBbb3ZlcmZsb3dTdHlsZXNbXCJvdmVyZmxvdy0taGlkZS1zY3JvbGxiYXJcIl1dOiBoaWRlU2Nyb2xsYmFyIH0sXG4gICAgXSxcblxuICAgICRvdmVyZmxvdzogdW5kZWZpbmVkLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IGZsZXhDaGlsZFN0eWxlcyBmcm9tIFwiLi9mbGV4LWNoaWxkLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgc3R5bGVQbHVnaW4gfSBmcm9tIFwiLi4vc3R5bGUvc3R5bGVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG4vKipcbiAqIC0gYHRydWVgOiBzaGFyZSB0aGUgcGFyZW50J3MgcmVtYWluaW5nIHNwYWNlIGVxdWFsbHkgKGBmbGV4OiAxIDEgMGApLlxuICogLSBgXCJzaHJpbmthYmxlXCJgOiBhZGRpdGlvbmFsbHkgcmVtb3ZlIHRoZSBpdGVtJ3MgaW1wbGljaXQgY29udGVudC1zaXplZFxuICogICBtaW5pbXVtIChgbWluLWhlaWdodDogYXV0b2AgLyBgbWluLXdpZHRoOiBhdXRvYCksIHNvIGl0IGNhbiBhY3R1YWxseSBiZVxuICogICBzaXplZCB0byB0aGUgcmVtYWluaW5nIHNwYWNlIGluIGEgY29uc3RyYWluZWQgbGF5b3V0IFx1MjAxNCByZXF1aXJlZCBmb3IgYVxuICogICBkZXNjZW5kYW50IHRvIHNjcm9sbCBpbnRlcm5hbGx5IGluc3RlYWQgb2YgaW5mbGF0aW5nIGV2ZXJ5IGFuY2VzdG9yLlxuICogLSBhIG51bWJlcjogbGlrZSBgXCJzaHJpbmthYmxlXCJgLCBidXQgdGFraW5nIHRoYXQgbWFueSBzaGFyZXMgb2YgdGhlXG4gKiAgIHJlbWFpbmluZyBzcGFjZSBpbnN0ZWFkIG9mIG9uZSAoYGZsZXgtZ3Jvd2ApLCBmb3Igd2VpZ2h0ZWQgc3BsaXRzIGJldHdlZW5cbiAqICAgc2libGluZ3MuXG4gKiAtIGBcImZpeGVkXCJgOiB0aGUgb3Bwb3NpdGUgXHUyMDE0IGtlZXAgdGhlIGl0ZW0ncyBvd24gc2l6ZSAoYGZsZXgtc2hyaW5rOiAwYCksXG4gKiAgIG9wdGluZyBvdXQgb2YgdGhlIHNocmluayBuZWdvdGlhdGlvbiBlbnRpcmVseSAoZS5nLiBhIGNvbnRlbnQtaHVnZ2luZ1xuICogICBwYW5lbCBuZXh0IHRvIGEgZmlsbGluZyBvbmUpLlxuICovXG5leHBvcnQgdHlwZSBGbGV4Q2hpbGRQbHVnaW5Qcm9wcyA9IHsgJGZsZXhDaGlsZD86IGJvb2xlYW4gfCBudW1iZXIgfCBcInNocmlua2FibGVcIiB8IFwiZml4ZWRcIiB9O1xuXG5leHBvcnQgY29uc3QgZmxleENoaWxkUGx1Z2luID0gZ2V0UGx1Z2luPEZsZXhDaGlsZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbiwgdHlwZW9mIHN0eWxlUGx1Z2luXT4oXG4gIChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHdlaWdodCA9IHR5cGVvZiBwcm9wcy4kZmxleENoaWxkID09PSBcIm51bWJlclwiID8gcHJvcHMuJGZsZXhDaGlsZCA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBzaHJpbmthYmxlID0gcHJvcHMuJGZsZXhDaGlsZCA9PT0gXCJzaHJpbmthYmxlXCIgfHwgd2VpZ2h0ICE9PSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGNsYXNzTmFtZTogW1xuICAgICAgICBwcm9wcy4kZmxleENoaWxkID09PSB0cnVlIHx8IHNocmlua2FibGUgPyBmbGV4Q2hpbGRTdHlsZXNbXCJmbGV4LWNoaWxkXCJdIDogdW5kZWZpbmVkLFxuICAgICAgICBzaHJpbmthYmxlID8gZmxleENoaWxkU3R5bGVzW1wiZmxleC1jaGlsZC0tc2hyaW5rYWJsZVwiXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJvcHMuJGZsZXhDaGlsZCA9PT0gXCJmaXhlZFwiID8gZmxleENoaWxkU3R5bGVzW1wiZmxleC1jaGlsZC0tZml4ZWRcIl0gOiB1bmRlZmluZWQsXG4gICAgICAgIHByb3BzLiRjbGFzc05hbWUsXG4gICAgICBdLFxuICAgICAgJHN0eWxlOiB3ZWlnaHQgPT09IHVuZGVmaW5lZCA/IHByb3BzLiRzdHlsZSA6IHsgLi4ucHJvcHMuJHN0eWxlLCBmbGV4R3Jvdzogd2VpZ2h0IH0sXG4gICAgICAkZmxleENoaWxkOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSxcbik7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCBncmF5c2NhbGVTdHlsZXMgZnJvbSBcIi4vZ3JheXNjYWxlLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIEdyYXlzY2FsZVBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogRnVsbHkgZGVzYXR1cmF0ZXMgdGhlIGVsZW1lbnQgKGBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKWApIHdoZW4gYHRydWVgIFx1MjAxNCBzb1xuICAgKiBldmVuIGZpeGVkLWNvbG91ciBjb250ZW50IChlLmcuIGJyYW5kIGxvZ29zKSBncmV5cyBvdXQsIG5vdCBqdXN0IHRoZW1lZFxuICAgKiBjb2xvdXJzLiBDb21iaW5lIHdpdGggYCRmYWRlZGAgdG8gZGUtZW1waGFzaXNlIGFuIHVuYXZhaWxhYmxlIGl0ZW0uXG4gICAqL1xuICAkZ3JheXNjYWxlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBncmF5c2NhbGVQbHVnaW4gPSBnZXRQbHVnaW48R3JheXNjYWxlUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiAoe1xuICAkY2xhc3NOYW1lOiBbcHJvcHMuJGNsYXNzTmFtZSwgcHJvcHMuJGdyYXlzY2FsZSA/IGdyYXlzY2FsZVN0eWxlcy5ncmF5c2NhbGUgOiB1bmRlZmluZWRdLFxuICAkZ3JheXNjYWxlOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgdHlwZSB7IHN0eWxlUGx1Z2luIH0gZnJvbSBcIi4uL3N0eWxlL3N0eWxlXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHRpbnRTdHlsZXMgZnJvbSBcIi4vdGludC5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBUaW50UGx1Z2luUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIGVsZW1lbnQncyAoYW5kIGl0cyBkZXNjZW5kYW50cycpIFNWRyBgZmlsbGAgdG8gdGhpcyBjb2xvdXIsIHZpYSBhIENTUyBjdXN0b21cbiAgICogcHJvcGVydHkgXHUyMDE0IGBzdHJva2VgIGlzIGxlZnQgdW50b3VjaGVkLCBzbyBzdHJva2VkIGRldGFpbHMgc3Vydml2ZS4gVW5saWtlIGAkZ3JheXNjYWxlYCAod2hpY2ggb25seVxuICAgKiBkZXNhdHVyYXRlcykgdGhpcyBwYWludHMgdGhlIHNoYXBlIGFuIGV4YWN0IGZsYXQgY29sb3VyIHdoaWxlIHJlc3BlY3RpbmcgdHJhbnNwYXJlbmN5LCBzbyBhXG4gICAqIGZpeGVkLWNvbG91ciBicmFuZCBtYXJrIGNhbiBiZSB0aW50ZWQgKGUuZy4gYW4gQUktdG9vbCBsb2dvIHRpbnRlZCB0byB0aGUgY2x1c3RlciBjb2xvdXIpLiBMZWF2ZVxuICAgKiB1bnNldCB0byByZW5kZXIgdGhlIGVsZW1lbnQncyBuYXR1cmFsIGNvbG91cnMuXG4gICAqL1xuICAkdGludD86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCB0aW50UGx1Z2luID0gZ2V0UGx1Z2luPFRpbnRQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW4sIHR5cGVvZiBzdHlsZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiR0aW50ID8gdGludFN0eWxlcy50aW50IDogdW5kZWZpbmVkXSxcbiAgLy8gVGhlIHRpbnQgY29sb3VyIGlzIGV4cG9zZWQgYXMgYSBjdXN0b20gcHJvcGVydHkgdGhlIGAudGludGAgY2xhc3MgcmVhZHMgKGBmaWxsOiB2YXIoLS1lbGVtZW50LXRpbnQpYCkuXG4gICRzdHlsZTogcHJvcHMuJHRpbnQgPyAoeyAuLi5wcm9wcy4kc3R5bGUsIFwiLS1lbGVtZW50LXRpbnRcIjogcHJvcHMuJHRpbnQgfSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzKSA6IHByb3BzLiRzdHlsZSxcbiAgJHRpbnQ6IHVuZGVmaW5lZCxcbn0pKTtcbiIsICJpbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IGZhZGVkU3R5bGVzIGZyb20gXCIuL2ZhZGVkLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIEZhZGVkUGx1Z2luUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBGYWRlcyB0aGUgZWxlbWVudCAoYG9wYWNpdHk6IDUwJWApIHdoZW4gYHRydWVgLiBDb21iaW5lIHdpdGggYCRncmF5c2NhbGVgXG4gICAqIHRvIGRlLWVtcGhhc2lzZSBhbiB1bmF2YWlsYWJsZSBpdGVtLlxuICAgKi9cbiAgJGZhZGVkPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBmYWRlZFBsdWdpbiA9IGdldFBsdWdpbjxGYWRlZFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIHByb3BzLiRmYWRlZCA/IGZhZGVkU3R5bGVzLmZhZGVkIDogdW5kZWZpbmVkXSxcbiAgJGZhZGVkOiB1bmRlZmluZWQsXG59KSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luLCB0eXBlIENvbnRyaWJ1dGVQcm9wcywgdHlwZSBDb250cmlidXRlUmVmIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1pdGVtLXN0YXRlLmluamVjdGFibGVcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgeyBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHVzZVVwZGF0ZVdoZW5Qcm9wc0NoYW5nZSB9IGZyb20gXCIuL19wcml2YXRlL3VzZS11cGRhdGUtd2hlbi1wcm9wcy1jaGFuZ2VcIjtcbmltcG9ydCB7IHVzZUNsZWFudXBPblVubW91bnQgfSBmcm9tIFwiLi9fcHJpdmF0ZS91c2UtY2xlYW51cC1vbi11bm1vdW50XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB7IHVzZUtleWJvYXJkTmF2aWdhdGlvbiB9IGZyb20gXCIuL19wcml2YXRlL3VzZS1rZXlib2FyZC1uYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBoYW5kbGVGb2N1c0ZvciB9IGZyb20gXCIuL19wcml2YXRlL2hhbmRsZS1mb2N1c1wiO1xuaW1wb3J0IHsgaGFuZGxlQmx1ckZvciB9IGZyb20gXCIuL19wcml2YXRlL2hhbmRsZS1ibHVyXCI7XG5pbXBvcnQgeyB1c2VQcm9ncmFtbWF0aWNGb2N1c2luZyB9IGZyb20gXCIuL19wcml2YXRlL3VzZS1wcm9ncmFtbWF0aWMtZm9jdXNpbmdcIjtcbmltcG9ydCB0eXBlIHsgcmVmUGx1Z2luIH0gZnJvbSBcIi4uL3JlZi9yZWZcIjtcblxuZXhwb3J0IHR5cGUgRm9jdXNhYmxlUGx1Z2luUHJvcHM8VCwgRm9jdXNlZEl0ZW0gPSBhbnk+ID0ge1xuICAkZm9jdXNhYmxlPzoge1xuICAgIGNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0+O1xuICAgIGl0ZW06IEZvY3VzZWRJdGVtO1xuICAgIG9yZGVyTnVtYmVyPzogbnVtYmVyO1xuICB9O1xuXG4gIG9uRm9jdXM/OiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxUPjtcbiAgb25CbHVyPzogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8VD47XG4gIG9uS2V5RG93bj86IFJlYWN0LktleWJvYXJkRXZlbnRIYW5kbGVyPFQ+O1xuICB0YWJJbmRleD86IEhUTUxFbGVtZW50W1widGFiSW5kZXhcIl07XG59O1xuXG50eXBlIEZvY3VzYWJsZVdyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgZm9jdXNhYmxlOiB7XG4gICAgY29udGV4dDogQW55Rm9jdXNhYmxlQ29udGV4dDxhbnk+O1xuICAgIGl0ZW06IGFueTtcbiAgICBvcmRlck51bWJlcj86IG51bWJlcjtcbiAgfTtcbiAgcmVhZG9ubHkgdGFiSW5kZXg6IG51bWJlcjtcbiAgcmVhZG9ubHkgb25Gb2N1cz86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPGFueT47XG4gIHJlYWRvbmx5IG9uQmx1cj86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPGFueT47XG4gIHJlYWRvbmx5IG9uS2V5RG93bj86IFJlYWN0LktleWJvYXJkRXZlbnRIYW5kbGVyPGFueT47XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRm9jdXNhYmxlV3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGZvY3VzYWJsZSxcbiAgdGFiSW5kZXgsXG4gIG9uRm9jdXMsXG4gIG9uQmx1cixcbiAgb25LZXlEb3duLFxuICBjb250cmlidXRlUmVmLFxuICBjb250cmlidXRlUHJvcHMsXG4gIGNoaWxkcmVuLFxufTogRm9jdXNhYmxlV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgY29udGV4dDogZm9jdXNhYmxlQ29udGV4dCwgaXRlbTogZm9jdXNhYmxlSXRlbSwgb3JkZXJOdW1iZXIgfSA9IGZvY3VzYWJsZTtcblxuICBjb25zdCBbZWxlbWVudCwgc2V0RWxlbWVudF0gPSB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb250cmlidXRlUmVmKHNldEVsZW1lbnQpO1xuXG4gIGNvbnN0IGh0bWxFbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50Pih1bmRlZmluZWQpO1xuICBodG1sRWxlbWVudFJlZi5jdXJyZW50ID0gKGVsZW1lbnQgPz8gdW5kZWZpbmVkKSBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICBjb25zdCBodG1sRWxlbWVudElzRm9jdXNlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gIGNvbnN0IG9sZFN0YXRlUmVmID0gdXNlUmVmPElPYnNlcnZhYmxlVmFsdWU8dW5rbm93bj4+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3Qgc3RhdGUgPSB1c2VTeW5jSW5qZWN0KGZvY3VzYWJsZUl0ZW1TdGF0ZUluamVjdGFibGUsIGZvY3VzYWJsZUNvbnRleHQpO1xuXG4gIHVzZVVwZGF0ZVdoZW5Qcm9wc0NoYW5nZShodG1sRWxlbWVudElzRm9jdXNlZFJlZiwgb2xkU3RhdGVSZWYsIHN0YXRlLCBmb2N1c2FibGVJdGVtKTtcbiAgdXNlQ2xlYW51cE9uVW5tb3VudChodG1sRWxlbWVudElzRm9jdXNlZFJlZiwgb2xkU3RhdGVSZWYpO1xuICB1c2VQcm9ncmFtbWF0aWNGb2N1c2luZyhmb2N1c2FibGVDb250ZXh0LCBmb2N1c2FibGVJdGVtLCBodG1sRWxlbWVudFJlZik7XG5cbiAgY29uc3QgaGFuZGxlRm9jdXMgPSBoYW5kbGVGb2N1c0ZvcihzdGF0ZSwgZm9jdXNhYmxlSXRlbSwgZm9jdXNhYmxlQ29udGV4dCwgaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYpO1xuICBjb25zdCBoYW5kbGVCbHVyID0gaGFuZGxlQmx1ckZvcihmb2N1c2FibGVDb250ZXh0LCBzdGF0ZSwgaHRtbEVsZW1lbnRJc0ZvY3VzZWRSZWYpO1xuXG4gIGNvbnN0IGtleWJvYXJkTmF2aWdhdGlvbiA9IHVzZUtleWJvYXJkTmF2aWdhdGlvbihcbiAgICBmb2N1c2FibGVDb250ZXh0LmlzS2V5Ym9hcmROYXZpZ2FibGUgPyBmb2N1c2FibGVDb250ZXh0IDogdW5kZWZpbmVkLFxuICAgIGZvY3VzYWJsZUl0ZW0sXG4gICAgb3JkZXJOdW1iZXIsXG4gICAgZWxlbWVudCxcbiAgKTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIHRhYkluZGV4LFxuXG4gICAgb25Gb2N1czogKGU6IFJlYWN0LkZvY3VzRXZlbnQ8YW55PikgPT4ge1xuICAgICAgaGFuZGxlRm9jdXMoZSk7XG4gICAgICBrZXlib2FyZE5hdmlnYXRpb24ub25Gb2N1cygpO1xuICAgICAgb25Gb2N1cz8uKGUpO1xuICAgIH0sXG5cbiAgICBvbkJsdXI6IChlOiBSZWFjdC5Gb2N1c0V2ZW50PGFueT4pID0+IHtcbiAgICAgIGlmICghaHRtbEVsZW1lbnRSZWYuY3VycmVudD8uY29udGFpbnMoZS5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICBoYW5kbGVCbHVyKGUpO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZSk7XG4gICAgfSxcblxuICAgIG9uS2V5RG93bjogKGU6IFJlYWN0LktleWJvYXJkRXZlbnQ8YW55PikgPT4ge1xuICAgICAgb25LZXlEb3duPy4oZSk7XG4gICAgICBrZXlib2FyZE5hdmlnYXRpb24ub25LZXlEb3duKGUpO1xuICAgIH0sXG5cbiAgICBvbk1vdXNlRW50ZXI6IGtleWJvYXJkTmF2aWdhdGlvbi5mb2N1c1doYXRUaGVQb2ludGVySXNPbixcbiAgICBvbk1vdXNlTW92ZToga2V5Ym9hcmROYXZpZ2F0aW9uLmZvY3VzV2hhdFRoZVBvaW50ZXJJc09uLFxuICB9KTtcblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvY3VzYWJsZVBsdWdpbjxUPigpIHtcbiAgcmV0dXJuIGdldFBsdWdpbjxGb2N1c2FibGVQbHVnaW5Qcm9wczxUPiwgW1JldHVyblR5cGU8dHlwZW9mIHJlZlBsdWdpbjxUPj5dPigocHJvcHMpID0+IHtcbiAgICBjb25zdCB7ICRmb2N1c2FibGUsIHRhYkluZGV4LCBvbkJsdXIsIG9uRm9jdXMsIG9uS2V5RG93biB9ID0gcHJvcHM7XG5cbiAgICBpZiAoISRmb2N1c2FibGUpIHtcbiAgICAgIHJldHVybiB7ICRmb2N1c2FibGU6IHVuZGVmaW5lZCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAkZm9jdXNhYmxlOiB1bmRlZmluZWQsXG4gICAgICAkd3JhcHBlcjoge1xuICAgICAgICBDb21wb25lbnQ6IEZvY3VzYWJsZVdyYXBwZXJDb21wb25lbnQsXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgZm9jdXNhYmxlOiAkZm9jdXNhYmxlLFxuICAgICAgICAgIHRhYkluZGV4OiB0YWJJbmRleCA/PyAtMSxcbiAgICAgICAgICBvbkZvY3VzLFxuICAgICAgICAgIG9uQmx1cixcbiAgICAgICAgICBvbktleURvd24sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xufVxuIiwgImltcG9ydCB7IGFzc2VydERlZmluZWQgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgeyBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHJ1bkluQWN0aW9uIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdHlwZSBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCB1c2VVcGRhdGVXaGVuUHJvcHNDaGFuZ2UgPSAoXG4gIGZvY3VzZWRSZWY6IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4sXG4gIG9sZFN0YXRlUmVmOiBNdXRhYmxlUmVmT2JqZWN0PElPYnNlcnZhYmxlVmFsdWU8dW5rbm93bj4gfCB1bmRlZmluZWQ+LFxuICBzdGF0ZTogSU9ic2VydmFibGVWYWx1ZTx1bmtub3duPixcbiAgZm9jdXNhYmxlSXRlbTogdW5rbm93bixcbikgPT4ge1xuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb3JyZWN0bmVzcy91c2VFeGhhdXN0aXZlRGVwZW5kZW5jaWVzOiByZW1vdmUgd2hlbiBwb3NzaWJsZVxuICB1c2VFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgaWYgKGZvY3VzZWRSZWYuY3VycmVudCkge1xuICAgICAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICAgICAgc3RhdGUuc2V0KGZvY3VzYWJsZUl0ZW0pO1xuXG4gICAgICAgICAgY29uc3QgY29udGV4dEhhc0NoYW5nZWQgPSBvbGRTdGF0ZVJlZi5jdXJyZW50ICE9PSBzdGF0ZTtcblxuICAgICAgICAgIGlmIChjb250ZXh0SGFzQ2hhbmdlZCAmJiBvbGRTdGF0ZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBhc3NlcnREZWZpbmVkKG9sZFN0YXRlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgb2xkU3RhdGVSZWYuY3VycmVudC5zZXQodW5kZWZpbmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBvbGRTdGF0ZVJlZi5jdXJyZW50ID0gc3RhdGU7XG4gICAgfSxcbiAgICAvLyBOb3RlOiBmb2N1c2VkUmVmIGFuZCBvbGRTdGF0ZVJlZiBuZXZlciBjaGFuZ2UuXG4gICAgW2ZvY3VzYWJsZUl0ZW0sIHN0YXRlXSxcbiAgKTtcbn07XG4iLCAiaW1wb3J0IHsgYXNzZXJ0RGVmaW5lZCB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgdHlwZSB7IElPYnNlcnZhYmxlVmFsdWUgfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgcnVuSW5BY3Rpb24gfSBmcm9tIFwibW9ieFwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB0eXBlIE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGNvbnN0IHVzZUNsZWFudXBPblVubW91bnQgPSAoXG4gIGZvY3VzZWRSZWY6IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4sXG4gIG9sZFN0YXRlUmVmOiBNdXRhYmxlUmVmT2JqZWN0PElPYnNlcnZhYmxlVmFsdWU8dW5rbm93bj4gfCB1bmRlZmluZWQ+LFxuKSA9PiB7XG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IHJlbW92ZSB3aGVuIHBvc3NpYmxlXG4gIHVzZUVmZmVjdChcbiAgICAoKSA9PiAoKSA9PiB7XG4gICAgICBpZiAoZm9jdXNlZFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHJ1bkluQWN0aW9uKCgpID0+IHtcbiAgICAgICAgICBhc3NlcnREZWZpbmVkKG9sZFN0YXRlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgIG9sZFN0YXRlUmVmLmN1cnJlbnQuc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG5cbiAgICAvLyBOb3RlOiBmb2N1c2VkUmVmIGFuZCBvbGRTdGF0ZVJlZiBuZXZlciBjaGFuZ2UuXG4gICAgW10sXG4gICk7XG59O1xuIiwgImltcG9ydCB7IHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlU3luY0luamVjdCB9IGZyb20gXCJAazhzbGVucy91c2UtaW5qZWN0XCI7XG5pbXBvcnQge1xuICBrZXlib2FyZE5hdmlnYXRpb25TdGF0ZUluamVjdGFibGUsXG4gIHR5cGUgTmF2aWdhYmxlRW50cnksXG59IGZyb20gXCIuLi9fc2hhcmVkL2tleWJvYXJkLW5hdmlnYXRpb24tc3RhdGUuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHQsIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uIH0gZnJvbSBcIi4uL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuXG50eXBlIEtleWJvYXJkTmF2aWdhdGlvbiA9IHtcbiAgcmVhZG9ubHkgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uRm9jdXM6ICgpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IGZvY3VzV2hhdFRoZVBvaW50ZXJJc09uOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBub0tleWJvYXJkTmF2aWdhdGlvbjogS2V5Ym9hcmROYXZpZ2F0aW9uID0ge1xuICBvbktleURvd246ICgpID0+IHt9LFxuICBvbkZvY3VzOiAoKSA9PiB7fSxcbiAgZm9jdXNXaGF0VGhlUG9pbnRlcklzT246ICgpID0+IHt9LFxufTtcblxuZXhwb3J0IGNvbnN0IHVzZUtleWJvYXJkTmF2aWdhdGlvbiA9IChcbiAgY29udGV4dDogS2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0PGFueT4gfCB1bmRlZmluZWQsXG4gIGl0ZW06IHVua25vd24sXG4gIG9yZGVyTnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQsXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbik6IEtleWJvYXJkTmF2aWdhdGlvbiA9PiB7XG4gIGNvbnN0IG5hdmlnYXRpb24gPSB1c2VTeW5jSW5qZWN0KGtleWJvYXJkTmF2aWdhdGlvblN0YXRlSW5qZWN0YWJsZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWNvbnRleHQgfHwgIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyeTogTmF2aWdhYmxlRW50cnkgPSB7IGl0ZW0sIG9yZGVyTnVtYmVyOiBvcmRlck51bWJlciA/PyAwLCBlbGVtZW50IH07XG5cbiAgICBuYXZpZ2F0aW9uLnJlZ2lzdGVyKGNvbnRleHQsIGVudHJ5KTtcblxuICAgIGNvbnN0IGZvY3VzV2hhdFNob3VsZEhhdmVGb2N1cyA9ICgpID0+IHtcbiAgICAgIC8vIE9ubHkgd2l0aGluIHRoZSB3aW5kb3cgdGhlIHVzZXIgaXMgYWN0dWFsbHkgaW4uIExlbnMgRGVza3RvcCBpcyBtb3JlIHRoYW4gb25lIHdpbmRvdyxcbiAgICAgIC8vIGFuZCBmb2N1c2luZyBhbiBlbGVtZW50IG9mIGEgd2luZG93IHRoYXQgZG9lcyBub3QgaGF2ZSBmb2N1cyBpcyBob3cgYSBicm93c2VyIGlzIGFza2VkXG4gICAgICAvLyB0byBicmluZyB0aGF0IHdpbmRvdyB0byB0aGUgZnJvbnQ6IGEgbGlzdCB1cGRhdGluZyBpbiB0aGUgYXBwbGljYXRpb24gd2luZG93IHdoaWxlIHRoZVxuICAgICAgLy8gdXNlciByZWFkcyBhIHN1Yi13aW5kb3cgd291bGQga2VlcCBzbmF0Y2hpbmcgdGhlIHN1Yi13aW5kb3cncyBmb2N1cyBhd2F5LiBXaGljaCBtZW1iZXJcbiAgICAgIC8vIHRoaXMgd2luZG93IGlzIG9uIGlzIHN0aWxsIHJlbWVtYmVyZWQsIHNvIGl0IGxhbmRzIHRoZXJlIHdoZW4gdGhlIHVzZXIgY29tZXMgYmFjay5cbiAgICAgIGlmICghZG9jdW1lbnQuaGFzRm9jdXMoKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRleHRJbkZvY3VzID0gbmF2aWdhdGlvbi5jb250ZXh0SW5Gb2N1cygpO1xuXG4gICAgICBpZiAoIWNvbnRleHRJbkZvY3VzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZW50cmllcyA9IG5hdmlnYXRpb24uc29ydGVkRW50cmllc09mKGNvbnRleHRJbkZvY3VzKTtcblxuICAgICAgLy8gVGhlIG1lbWJlciB0aGF0IGNvbnRleHQgd2FzIGxlZnQgb24sIHNvIHN0ZXBwaW5nIGludG8gc29tZXRoaW5nIGFuZCBiYWNrIG91dCBvZiBpdCBsYW5kc1xuICAgICAgLy8gd2hlcmUgaXQgc3RhcnRlZC4gT25seSB0aGUgbG93ZXN0IG9yZGVyIG51bWJlciB3aGVuIGl0IHdhcyBuZXZlciBsZWZ0IGFueXdoZXJlOiB0aGF0IGlzIGFcbiAgICAgIC8vIHNldCBvZiBtZW1iZXJzIGFwcGVhcmluZyByYXRoZXIgdGhhbiBvbmUgYmVpbmcgcmV0dXJuZWQgdG8gXHUyMDE0IGFuZCBhIHNldCB0aGF0IGxlYXZlcyBmb2N1c1xuICAgICAgLy8gd2hlcmUgaXQgaXMgYXMgaXQgYXBwZWFycyBoYXMgbm90aGluZyB0byBvZmZlciB1bnRpbCBvbmUgb2YgaXRzIG1lbWJlcnMgaGFzIGhhZCBmb2N1cy5cbiAgICAgIGNvbnN0IGl0ZW1JbkZvY3VzID0gbmF2aWdhdGlvbi5pdGVtSW5Gb2N1c09mKGNvbnRleHRJbkZvY3VzKTtcbiAgICAgIGNvbnN0IHRvRm9jdXMgPVxuICAgICAgICBlbnRyaWVzLmZpbmQoKGNhbmRpZGF0ZSkgPT4gY2FuZGlkYXRlLml0ZW0gPT09IGl0ZW1JbkZvY3VzKSA/P1xuICAgICAgICAoY29udGV4dEluRm9jdXMudGFrZXNGb2N1c0FzSXRBcHBlYXJzID8gZW50cmllc1swXSA6IHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmICh0b0ZvY3VzPy5lbGVtZW50LmlzQ29ubmVjdGVkICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHRvRm9jdXMuZWxlbWVudCkge1xuICAgICAgICB0b0ZvY3VzLmVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gRGVmZXJyZWQgc28gdGhhdCBldmVyeXRoaW5nIGFwcGVhcmluZyB0b2dldGhlciBoYXMgcmVnaXN0ZXJlZCwgYW5kIHRoZSBsb3dlc3Qgb3JkZXIgbnVtYmVyIG9mXG4gICAgLy8gdGhlIHdob2xlIHNldCB3aW5zIHJhdGhlciB0aGFuIHdoaWNoZXZlciBhcHBlYXJlZCBmaXJzdC5cbiAgICB2b2lkIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZm9jdXNXaGF0U2hvdWxkSGF2ZUZvY3VzKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBuYXZpZ2F0aW9uLmRlcmVnaXN0ZXIoY29udGV4dCwgZW50cnkpO1xuXG4gICAgICB2b2lkIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oZm9jdXNXaGF0U2hvdWxkSGF2ZUZvY3VzKTtcbiAgICB9O1xuICB9LCBbbmF2aWdhdGlvbiwgY29udGV4dCwgaXRlbSwgb3JkZXJOdW1iZXIsIGVsZW1lbnRdKTtcblxuICBpZiAoIWNvbnRleHQpIHtcbiAgICByZXR1cm4gbm9LZXlib2FyZE5hdmlnYXRpb247XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC8vIFdoaWNoIG1lbWJlciB0aGUgY29udGV4dCBpcyBvbiwgcmVtZW1iZXJlZCBmb3IgYXMgbG9uZyBhcyBpdHMgbWVtYmVycyBhcmUgdGhlcmU6IGl0IGlzIHdoYXRcbiAgICAvLyBmb2N1cyByZXR1cm5zIHRvIHdoZW4gc29tZXRoaW5nIHRoYXQgdG9vayBmb2N1cyBvdmVyIGdvZXMgYXdheSBhZ2Fpbi5cbiAgICBvbkZvY3VzOiAoKSA9PiBuYXZpZ2F0aW9uLm5vdGVJdGVtSW5Gb2N1cyhjb250ZXh0LCBpdGVtKSxcblxuICAgIC8vIFdoZXJlIHRoZSBwb2ludGVyIGdvZXMsIGZvY3VzIGdvZXM6IHRoZSBtZW1iZXIgdW5kZXIgaXQgYmVjb21lcyB0aGUgZm9jdXNlZCBvbmUsIHNvIGFycm93aW5nXG4gICAgLy8gb24gZnJvbSB0aGVyZSBjb250aW51ZXMgZnJvbSB3aGF0IHRoZSB1c2VyIGlzIGxvb2tpbmcgYXQgcmF0aGVyIHRoYW4gZnJvbSB3aGVyZXZlciB0aGVcbiAgICAvLyBrZXlib2FyZCB3YXMgbGVmdC4gV2hpY2hldmVyIG9mIHRoZSB0d28gbW92ZWQgbGFzdCBkZWNpZGVzLCB3aGljaCBpcyB3aHkgdGhpcyBhbnN3ZXJzIHRvIHRoZVxuICAgIC8vIHBvaW50ZXIgbW92aW5nIGFzIHdlbGwgYXMgdG8gaXQgYXJyaXZpbmcgXHUyMDE0IHRoZSBrZXlib2FyZCBtYXkgaGF2ZSB0YWtlbiBmb2N1cyBlbHNld2hlcmUgd2hpbGVcbiAgICAvLyB0aGUgcG9pbnRlciByZXN0ZWQgd2hlcmUgaXQgd2FzLCBhbmQgbW92aW5nIGl0IGF0IGFsbCBpcyB0aGUgdXNlciBwb2ludGluZyBhZ2Fpbi5cbiAgICAvL1xuICAgIC8vIFRoZSBlbGVtZW50IGNvbWVzIGZyb20gdGhlIGV2ZW50IHJhdGhlciB0aGFuIGZyb20gdGhlIHJlbmRlciB0aGlzIGhhbmRsZXIgd2FzIGNyZWF0ZWQgaW46XG4gICAgLy8gdGhlIGhhbmRsZXIgdGhlIERPTSBlbmRzIHVwIHdpdGggaXMgdGhlIG9uZSBmcm9tIHRoZSBmaXJzdCByZW5kZXIsIHdoZW4gdGhlcmUgd2FzIG5vIGVsZW1lbnRcbiAgICAvLyB5ZXQgXHUyMDE0IFJlYWN0IGhhcyBubyByZWFzb24gdG8gcmVuZGVyIHRoZSBlbGVtZW50IGFnYWluIGZvciBhIHdyYXBwZXIncyBvd24gc3RhdGUuXG4gICAgZm9jdXNXaGF0VGhlUG9pbnRlcklzT246IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgY29uc3QgaG92ZXJlZCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBob3ZlcmVkKSB7XG4gICAgICAgIGhvdmVyZWQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHN0ZXAgPSBzdGVwT2YoZXZlbnQua2V5LCBjb250ZXh0Lm9yaWVudGF0aW9uKTtcblxuICAgICAgaWYgKHN0ZXAgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVudHJpZXMgPSBuYXZpZ2F0aW9uLnNvcnRlZEVudHJpZXNPZihjb250ZXh0KTtcblxuICAgICAgaWYgKGVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gZW50cmllcy5maW5kSW5kZXgoKGNhbmRpZGF0ZSkgPT4gY2FuZGlkYXRlLml0ZW0gPT09IGl0ZW0pO1xuXG4gICAgICBjb25zdCBuZXh0SW5kZXggPVxuICAgICAgICBzdGVwID09PSBcImZpcnN0XCJcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IHN0ZXAgPT09IFwibGFzdFwiXG4gICAgICAgICAgICA/IGVudHJpZXMubGVuZ3RoIC0gMVxuICAgICAgICAgICAgOiAoY3VycmVudEluZGV4ICsgc3RlcCArIGVudHJpZXMubGVuZ3RoKSAlIGVudHJpZXMubGVuZ3RoO1xuXG4gICAgICBjb25zdCBuZXh0ID0gZW50cmllc1tuZXh0SW5kZXhdO1xuXG4gICAgICBpZiAobmV4dCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBuZXh0LmVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufTtcblxuY29uc3Qgc3RlcE9mID0gKGtleTogc3RyaW5nLCBvcmllbnRhdGlvbjogS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb24pID0+IHtcbiAgc3dpdGNoIChrZXkpIHtcbiAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICByZXR1cm4gb3JpZW50YXRpb24gPT09IFwiaG9yaXpvbnRhbFwiID8gdW5kZWZpbmVkIDogMTtcbiAgICBjYXNlIFwiQXJyb3dSaWdodFwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcInZlcnRpY2FsXCIgPyB1bmRlZmluZWQgOiAxO1xuICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICByZXR1cm4gb3JpZW50YXRpb24gPT09IFwiaG9yaXpvbnRhbFwiID8gdW5kZWZpbmVkIDogLTE7XG4gICAgY2FzZSBcIkFycm93TGVmdFwiOlxuICAgICAgcmV0dXJuIG9yaWVudGF0aW9uID09PSBcInZlcnRpY2FsXCIgPyB1bmRlZmluZWQgOiAtMTtcbiAgICBjYXNlIFwiSG9tZVwiOlxuICAgICAgcmV0dXJuIFwiZmlyc3RcIiBhcyBjb25zdDtcbiAgICBjYXNlIFwiRW5kXCI6XG4gICAgICByZXR1cm4gXCJsYXN0XCIgYXMgY29uc3Q7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn07XG4iLCAiaW1wb3J0IHsgcnVuSW5BY3Rpb24sIHR5cGUgSU9ic2VydmFibGVWYWx1ZSB9IGZyb20gXCJtb2J4XCI7XG5pbXBvcnQgdHlwZSB7IEFueUZvY3VzYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vZ2V0LWZvY3VzYWJsZS1jb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IE11dGFibGVSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgRm9jdXNhYmxlRXZlbnQgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1ldmVudFwiO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlRm9jdXNGb3IgPVxuICA8Rm9jdXNhYmxlSXRlbT4oXG4gICAgc3RhdGU6IElPYnNlcnZhYmxlVmFsdWU8Rm9jdXNhYmxlSXRlbSB8IHVuZGVmaW5lZD4sXG4gICAgZm9jdXNhYmxlSXRlbTogRm9jdXNhYmxlSXRlbSxcbiAgICBmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PEZvY3VzYWJsZUl0ZW0+LFxuICAgIGZvY3VzZWRSZWY6IE11dGFibGVSZWZPYmplY3Q8Ym9vbGVhbj4sXG4gICkgPT5cbiAgPFQ+KGV2ZW50OiBGb2N1c2FibGVFdmVudDxUPikgPT4ge1xuICAgIGNvbnN0IG5hdGl2ZUV2ZW50ID0gZXZlbnQubmF0aXZlRXZlbnQ7XG5cbiAgICBuYXRpdmVFdmVudC5hbHJlYWR5UHJvY2Vzc2VkRm9jdXNhYmxlQ29udGV4dHMgPz89IG5ldyBTZXQoKTtcblxuICAgIGlmIChuYXRpdmVFdmVudC5hbHJlYWR5UHJvY2Vzc2VkRm9jdXNhYmxlQ29udGV4dHMuaGFzKGZvY3VzYWJsZUNvbnRleHQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbmF0aXZlRXZlbnQuYWxyZWFkeVByb2Nlc3NlZEZvY3VzYWJsZUNvbnRleHRzLmFkZChmb2N1c2FibGVDb250ZXh0KTtcblxuICAgIGZvY3VzZWRSZWYuY3VycmVudCA9IHRydWU7XG5cbiAgICBydW5JbkFjdGlvbigoKSA9PiB7XG4gICAgICBzdGF0ZS5zZXQoZm9jdXNhYmxlSXRlbSk7XG4gICAgfSk7XG4gIH07XG4iLCAiaW1wb3J0IHR5cGUgeyBJT2JzZXJ2YWJsZVZhbHVlIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB7IHJ1bkluQWN0aW9uIH0gZnJvbSBcIm1vYnhcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgRm9jdXNhYmxlRXZlbnQgfSBmcm9tIFwiLi9fc2hhcmVkL2ZvY3VzYWJsZS1ldmVudFwiO1xuaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVCbHVyRm9yID1cbiAgPFQ+KFxuICAgIGZvY3VzYWJsZUNvbnRleHQ6IEFueUZvY3VzYWJsZUNvbnRleHQ8VD4sXG4gICAgc3RhdGU6IElPYnNlcnZhYmxlVmFsdWU8VCB8IHVuZGVmaW5lZD4sXG4gICAgZm9jdXNlZFJlZjogTXV0YWJsZVJlZk9iamVjdDxib29sZWFuPixcbiAgKSA9PlxuICA8VD4oZXZlbnQ6IEZvY3VzYWJsZUV2ZW50PFQ+KSA9PiB7XG4gICAgY29uc3QgbmF0aXZlRXZlbnQgPSBldmVudC5uYXRpdmVFdmVudDtcblxuICAgIGlmIChuYXRpdmVFdmVudC5hbHJlYWR5UHJvY2Vzc2VkRm9jdXNhYmxlQ29udGV4dHM/Lmhhcyhmb2N1c2FibGVDb250ZXh0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvY3VzZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuXG4gICAgcnVuSW5BY3Rpb24oKCkgPT4ge1xuICAgICAgc3RhdGUuc2V0KHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH07XG4iLCAiaW1wb3J0IHR5cGUgeyBNdXRhYmxlUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSB9IGZyb20gXCIuLi9fc2hhcmVkL2ZvY3VzYWJsZS1odG1sLWVsZW1lbnQtcmVmLXNldC5pbmplY3RhYmxlXCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB0eXBlIHsgQW55Rm9jdXNhYmxlQ29udGV4dCB9IGZyb20gXCIuLi9nZXQtZm9jdXNhYmxlLWNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IHVzZVByb2dyYW1tYXRpY0ZvY3VzaW5nID0gPFQ+KFxuICBmb2N1c2FibGVDb250ZXh0OiBBbnlGb2N1c2FibGVDb250ZXh0PFQ+LFxuICBmb2N1c2FibGVJdGVtOiBULFxuICBodG1sRWxlbWVudFJlZjogTXV0YWJsZVJlZk9iamVjdDxIVE1MRWxlbWVudCB8IHVuZGVmaW5lZD4sXG4pID0+IHtcbiAgY29uc3QgaHRtbEVsZW1lbnRzQnlGb2N1c2FibGVNYXAgPSB1c2VTeW5jSW5qZWN0KFxuICAgIGZvY3VzYWJsZUh0bWxFbGVtZW50UmVmU2V0SW5qZWN0YWJsZSxcbiAgICBmb2N1c2FibGVDb250ZXh0LFxuICAgIGZvY3VzYWJsZUl0ZW0sXG4gICk7XG5cbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29ycmVjdG5lc3MvdXNlRXhoYXVzdGl2ZURlcGVuZGVuY2llczogcmVtb3ZlIHdoZW4gcG9zc2libGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBodG1sRWxlbWVudHNCeUZvY3VzYWJsZU1hcC5hZGQoaHRtbEVsZW1lbnRSZWYpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGh0bWxFbGVtZW50c0J5Rm9jdXNhYmxlTWFwLmRlbGV0ZShodG1sRWxlbWVudFJlZik7XG4gICAgfTtcbiAgfSwgW2h0bWxFbGVtZW50c0J5Rm9jdXNhYmxlTWFwLCBmb2N1c2FibGVJdGVtLCBodG1sRWxlbWVudFJlZl0pO1xufTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgZmxleFBsdWdpbiB9IGZyb20gXCIuLi9mbGV4L2ZsZXhcIjtcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIHsgb3ZlcmZsb3dQbHVnaW4gfSBmcm9tIFwiLi4vb3ZlcmZsb3cvb3ZlcmZsb3dcIjtcblxuZXhwb3J0IHR5cGUgQXJlYVBsdWdpblByb3BzID0geyAkYXJlYT86IGJvb2xlYW4gfTtcblxuZXhwb3J0IGNvbnN0IGFyZWFQbHVnaW4gPSBnZXRQbHVnaW48QXJlYVBsdWdpblByb3BzLCBbdHlwZW9mIGZsZXhQbHVnaW4sIHR5cGVvZiBvdmVyZmxvd1BsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCBleHBsaWNpdEZsZXhQcm9wcyA9IGlzT2JqZWN0KHByb3BzLiRmbGV4KSA/IHByb3BzLiRmbGV4IDoge307XG5cbiAgcmV0dXJuIHtcbiAgICAkYXJlYTogdW5kZWZpbmVkLFxuXG4gICAgJGZsZXg6IHByb3BzLiRhcmVhXG4gICAgICA/IHtcbiAgICAgICAgICB2ZXJ0aWNhbEFsaWduOiBcInN0cmV0Y2hcIixcbiAgICAgICAgICBob3Jpem9udGFsQWxpZ246IFwic3RyZXRjaFwiLFxuICAgICAgICAgIC4uLmV4cGxpY2l0RmxleFByb3BzLFxuICAgICAgICB9XG4gICAgICA6IHByb3BzLiRmbGV4LFxuXG4gICAgJG92ZXJmbG93OiBwcm9wcy4kb3ZlcmZsb3cgPz8gKHByb3BzLiRhcmVhID8gXCJoaWRkZW5cIiA6IHVuZGVmaW5lZCksXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgZmxleENoaWxkUGx1Z2luIH0gZnJvbSBcIi4uL2ZsZXgtY2hpbGQvZmxleC1jaGlsZFwiO1xuXG5leHBvcnQgdHlwZSBBcmVhQ29udGVudFBsdWdpblByb3BzID0geyAkYXJlYUNvbnRlbnQ/OiBib29sZWFuIH07XG5cbmV4cG9ydCBjb25zdCBhcmVhQ29udGVudFBsdWdpbiA9IGdldFBsdWdpbjxBcmVhQ29udGVudFBsdWdpblByb3BzLCBbdHlwZW9mIGZsZXhDaGlsZFBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGFyZWFDb250ZW50OiB1bmRlZmluZWQsXG4gICRmbGV4Q2hpbGQ6IHByb3BzLiRhcmVhQ29udGVudCA/IHRydWUgOiBwcm9wcy4kZmxleENoaWxkLFxufSkpO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgeyBUU2hpcnRTaXplIH0gZnJvbSBcIi4uL19zaGFyZWQvc2l6ZXNcIjtcbmltcG9ydCB0eXBlIHsgd2lkdGhQbHVnaW4gfSBmcm9tIFwiLi4vd2lkdGgvd2lkdGhcIjtcbmltcG9ydCB0eXBlIHsgaGVpZ2h0UGx1Z2luIH0gZnJvbSBcIi4uL2hlaWdodC9oZWlnaHRcIjtcblxuZXhwb3J0IHR5cGUgJFNpemVQcm9wcyA9IHtcbiAgc2l6ZT86IFRTaGlydFNpemUgfCBcImZ1bGxcIiB8IFwiYXV0b1wiO1xuICBtaW4/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCI7XG4gIG1heD86IFRTaGlydFNpemUgfCBcImZ1bGxcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFNpemVQbHVnaW5Qcm9wcyA9IHsgJHNpemU/OiBUU2hpcnRTaXplIHwgXCJmdWxsXCIgfCAkU2l6ZVByb3BzIH07XG5cbmV4cG9ydCBjb25zdCBzaXplUGx1Z2luID0gZ2V0UGx1Z2luPFNpemVQbHVnaW5Qcm9wcywgW3R5cGVvZiB3aWR0aFBsdWdpbiwgdHlwZW9mIGhlaWdodFBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRzaXplIH0gPSBwcm9wcztcblxuICBpZiAoISRzaXplKSB7XG4gICAgcmV0dXJuIHsgJHNpemU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3QgeyBzaXplLCBtaW4sIG1heCB9ID0gdHlwZW9mICRzaXplID09PSBcInN0cmluZ1wiID8geyBzaXplOiAkc2l6ZSB9IDogJHNpemU7XG5cbiAgcmV0dXJuIHtcbiAgICAkaGVpZ2h0OiB7IGhlaWdodDogc2l6ZSwgbWluLCBtYXggfSxcbiAgICAkd2lkdGg6IHsgd2lkdGg6IHNpemUsIG1pbiwgbWF4IH0sXG4gICAgJHNpemU6IHVuZGVmaW5lZCxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCByYXdTdHlsZXMgZnJvbSBcIi4vY3Vyc29yLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgc2FuaXRpemVTY3NzTW9kdWxlcyB9IGZyb20gXCJAazhzbGVucy90ZXN0LXV0aWxzXCI7XG5cbmNvbnN0IHN0eWxlcyA9IHNhbml0aXplU2Nzc01vZHVsZXMocmF3U3R5bGVzKTtcblxuZXhwb3J0IHR5cGUgJEN1cnNvclByb3BzID1cbiAgfCBcImFsaWFzXCJcbiAgfCBcImFsbC1zY3JvbGxcIlxuICB8IFwiY2VsbFwiXG4gIHwgXCJjb2x1bW4tcmVzaXplXCJcbiAgfCBcImNvbnRleHQtbWVudVwiXG4gIHwgXCJjb3B5XCJcbiAgfCBcImNyb3NzaGFpclwiXG4gIHwgXCJkZWZhdWx0XCJcbiAgfCBcImVhc3QtcmVzaXplXCJcbiAgfCBcImVhc3QtYW5kLXdlc3QtcmVzaXplXCJcbiAgfCBcImdyYWJcIlxuICB8IFwiZ3JhYmJpbmdcIlxuICB8IFwiaGVscFwiXG4gIHwgXCJtb3ZlXCJcbiAgfCBcIm5vcnRoLXJlc2l6ZVwiXG4gIHwgXCJub3J0aGVhc3QtcmVzaXplXCJcbiAgfCBcIm5vcnRoZWFzdC1hbmQtc291dGh3ZXN0LXJlc2l6ZVwiXG4gIHwgXCJuby1kcm9wXCJcbiAgfCBcIm5vbmVcIlxuICB8IFwibm90LWFsbG93ZWRcIlxuICB8IFwibm9ydGgtYW5kLXNvdXRoLXJlc2l6ZVwiXG4gIHwgXCJub3J0aHdlc3QtcmVzaXplXCJcbiAgfCBcIm5vcnRod2VzdC1hbmQtc291dGhlYXN0LXJlc2l6ZVwiXG4gIHwgXCJwb2ludGVyXCJcbiAgfCBcInByb2dyZXNzXCJcbiAgfCBcInJvdy1yZXNpemVcIlxuICB8IFwic291dGgtcmVzaXplXCJcbiAgfCBcInNvdXRoZWFzdC1yZXNpemVcIlxuICB8IFwic291dGh3ZXN0LXJlc2l6ZVwiXG4gIHwgXCJ0ZXh0XCJcbiAgfCBcInZlcnRpY2FsLXRleHRcIlxuICB8IFwid2VzdC1yZXNpemVcIlxuICB8IFwid2FpdFwiXG4gIHwgXCJ6b29tLWluXCJcbiAgfCBcInpvb20tb3V0XCI7XG5cbmV4cG9ydCB0eXBlIEN1cnNvclBsdWdpblByb3BzID0ge1xuICAkY3Vyc29yPzogJEN1cnNvclByb3BzO1xufTtcblxuZXhwb3J0IGNvbnN0IGN1cnNvclBsdWdpbiA9IGdldFBsdWdpbjxDdXJzb3JQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkY3Vyc29yLCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRjdXJzb3IpIHtcbiAgICByZXR1cm4geyAkY3Vyc29yOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGN1cnNvcjogdW5kZWZpbmVkLFxuICAgICRjbGFzc05hbWU6IFskY2xhc3NOYW1lLCBzdHlsZXNbJGN1cnNvcl1dLFxuICAgIFwiZGF0YS1jdXJzb3ItdGVzdFwiOiAkY3Vyc29yLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBvbk1pZGRsZUNsaWNrLCBvblRyaWdnZXIgfSBmcm9tIFwiQGs4c2xlbnMvcHVibGljLXV0aWxpdGllc1wiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IGVuYWJsZWRQbHVnaW4gfSBmcm9tIFwiLi4vZW5hYmxlZC9lbmFibGVkXCI7XG5pbXBvcnQgdHlwZSB7ICRDdXJzb3JQcm9wcywgY3Vyc29yUGx1Z2luIH0gZnJvbSBcIi4uL2N1cnNvci9jdXJzb3JcIjtcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IG9uUmlnaHRUcmlnZ2VySW5qZWN0YWJsZSB9IGZyb20gXCIuL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZVwiO1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvbjJkID0ge1xuICByZWFkb25seSB4OiBudW1iZXI7XG4gIHJlYWRvbmx5IHk6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIENsaWNrSGFuZGxlckRldGFpbHMgPSB7XG4gIHJlYWRvbmx5IGN1cnNvcjogUG9zaXRpb24yZDtcbiAgcmVhZG9ubHkgY2F1c2U6IFwiY2xpY2tcIiB8IFwia2V5Ym9hcmRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIENsaWNrSGFuZGxlciA9ICgoZGV0YWlsczogQ2xpY2tIYW5kbGVyRGV0YWlscykgPT4gdm9pZCkgfCAoKGRldGFpbHM6IENsaWNrSGFuZGxlckRldGFpbHMpID0+IFByb21pc2U8dm9pZD4pO1xuXG5leHBvcnQgdHlwZSBDbGlja1BsdWdpblByb3BzID0ge1xuICAkb25DbGljaz86IENsaWNrSGFuZGxlcjtcbiAgJG9uT25seU1vdXNlQ2xpY2s/OiBDbGlja0hhbmRsZXI7XG4gICRvbkRvdWJsZUNsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICAkb25SaWdodENsaWNrPzogQ2xpY2tIYW5kbGVyO1xuICAkb25NaWRkbGVDbGljaz86IENsaWNrSGFuZGxlcjtcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG59O1xuXG5jb25zdCBjbGlja1VzZWQgPSBTeW1ib2woKTtcblxuZXhwb3J0IGNvbnN0IGNsaWNrYWJsZVBsdWdpbiA9IGdldFBsdWdpbjxDbGlja1BsdWdpblByb3BzLCBbdHlwZW9mIGVuYWJsZWRQbHVnaW4sIHR5cGVvZiBjdXJzb3JQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgLy8gdHlwaW5nIHJlcXVpcmVkIGR1ZSB0byBsYWNrIG9mIGdvb2QgdHlwaW5nIG9mIHByZS1wcm9jZXNzZWQgZGVwZW5kZW50IHBsdWdpbnNcbiAgY29uc3Qge1xuICAgICRjdXJzb3IsXG4gICAgJG9uQ2xpY2ssXG4gICAgJG9uT25seU1vdXNlQ2xpY2ssXG4gICAgJG9uTWlkZGxlQ2xpY2ssXG4gICAgJG9uUmlnaHRDbGljayxcbiAgICAkb25Eb3VibGVDbGljayxcbiAgICBvbkRvdWJsZUNsaWNrLFxuICAgIG9uQXV4Q2xpY2ssXG4gICAgb25DbGljayxcbiAgICBvbkNvbnRleHRNZW51LFxuICAgIG9uS2V5RG93bixcbiAgICB0YWJJbmRleCxcbiAgICBkaXNhYmxlZCxcbiAgICByb2xlLFxuICB9ID0gcHJvcHMgYXMgdHlwZW9mIHByb3BzICYgUmVhY3QuSFRNTFByb3BzPEhUTUxFbGVtZW50PjtcbiAgY29uc3QgW3BlbmRpbmcsIHNldFBlbmRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBvblJpZ2h0VHJpZ2dlciA9IHVzZVN5bmNJbmplY3Qob25SaWdodFRyaWdnZXJJbmplY3RhYmxlKTtcbiAgY29uc3Qgb25Nb3VzZUNsaWNrID0gJG9uQ2xpY2sgPz8gJG9uT25seU1vdXNlQ2xpY2s7XG5cbiAgaWYgKCRvbkNsaWNrICYmICRvbk9ubHlNb3VzZUNsaWNrKSB7XG4gICAgY29uc29sZS53YXJuKFwiQ2Fubm90IGhhdmUgYm90aCAkb25DbGljayBhbmQgJG9uTW91c2VDbGlja09ubHkgb24gdGhlIHNhbWUgY29tcG9uZW50XCIpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkb25DbGljazogdW5kZWZpbmVkLFxuICAgICRvbk1pZGRsZUNsaWNrOiB1bmRlZmluZWQsXG4gICAgJG9uUmlnaHRDbGljazogdW5kZWZpbmVkLFxuICAgICRvbkRvdWJsZUNsaWNrOiB1bmRlZmluZWQsXG4gICAgJG9uT25seU1vdXNlQ2xpY2s6IHVuZGVmaW5lZCxcbiAgICB0YWJJbmRleDogdGFiSW5kZXggPz8gKG9uTW91c2VDbGljayB8fCAkb25SaWdodENsaWNrIHx8ICRvbkRvdWJsZUNsaWNrID8gMCA6IHVuZGVmaW5lZCksXG4gICAgJGN1cnNvcjogZ2V0Q3Vyc29yUHJvcHMoJGN1cnNvciwgZGlzYWJsZWQsIHBlbmRpbmcsIG9uTW91c2VDbGljaywgJG9uUmlnaHRDbGljayksXG4gICAgcm9sZTogcm9sZSA/PyAob25Nb3VzZUNsaWNrID8gXCJidXR0b25cIiA6IHJvbGUpLFxuICAgIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uQ2xpY2s/LihldmVudCk7XG5cbiAgICAgIGlmICghZGlzYWJsZWQgJiYgb25Nb3VzZUNsaWNrICYmICEoY2xpY2tVc2VkIGluIGV2ZW50KSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGV2ZW50LCB7IFtjbGlja1VzZWRdOiB0cnVlIH0pO1xuXG4gICAgICAgIGNvbnN0IG1heWJlUHJvbWlzZSA9IG9uTW91c2VDbGljayh0b0RldGFpbHMoZXZlbnQpKTtcblxuICAgICAgICBpZiAoaXNQcm9taXNlTGlrZShtYXliZVByb21pc2UpKSB7XG4gICAgICAgICAgc2V0UGVuZGluZyh0cnVlKTtcbiAgICAgICAgICBtYXliZVByb21pc2UudGhlbigoKSA9PiBzZXRQZW5kaW5nKGZhbHNlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIG9uRG91YmxlQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uRG91YmxlQ2xpY2s/LihldmVudCk7XG4gICAgICAkb25Eb3VibGVDbGljaz8uKHRvRGV0YWlscyhldmVudCkpO1xuICAgIH0sXG4gICAgb25Db250ZXh0TWVudTogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25Db250ZXh0TWVudT8uKGV2ZW50KTtcbiAgICAgICRvblJpZ2h0Q2xpY2s/Lih0b0RldGFpbHMoZXZlbnQpKTtcbiAgICB9LFxuICAgIG9uQXV4Q2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgIG9uQXV4Q2xpY2s/LihldmVudCk7XG4gICAgICBvbk1pZGRsZUNsaWNrKGV2ZW50LCAoKSA9PiAkb25NaWRkbGVDbGljaz8uKHRvRGV0YWlscyhldmVudCkpKTtcbiAgICB9LFxuICAgIG9uS2V5RG93bjogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgb25LZXlEb3duPy4oZXZlbnQpO1xuXG4gICAgICBpZiAoJG9uQ2xpY2spIHtcbiAgICAgICAgb25UcmlnZ2VyKGV2ZW50LCAoKSA9PiB7XG4gICAgICAgICAgaWYgKCFkaXNhYmxlZCAmJiAhKGNsaWNrVXNlZCBpbiBldmVudCkpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZXZlbnQsIHsgW2NsaWNrVXNlZF06IHRydWUgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1heWJlUHJvbWlzZSA9ICRvbkNsaWNrKHRvRGV0YWlscyhldmVudCkpO1xuXG4gICAgICAgICAgICBpZiAoaXNQcm9taXNlTGlrZShtYXliZVByb21pc2UpKSB7XG4gICAgICAgICAgICAgIHNldFBlbmRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgIG1heWJlUHJvbWlzZS50aGVuKCgpID0+IHNldFBlbmRpbmcoZmFsc2UpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoJG9uUmlnaHRDbGljaykge1xuICAgICAgICBvblJpZ2h0VHJpZ2dlcihldmVudCwgKCkgPT4ge1xuICAgICAgICAgICRvblJpZ2h0Q2xpY2sodG9EZXRhaWxzKGV2ZW50KSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59KTtcblxuY29uc3QgdG9NaWRkbGUgPSAocmVjdDogRE9NUmVjdCkgPT4gKHtcbiAgeDogcmVjdC5sZWZ0ICsgcmVjdC53aWR0aCAvIDIsXG4gIHk6IHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyLFxufSk7XG5cbmNvbnN0IHRvRGV0YWlscyA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MRWxlbWVudD4gfCBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxFbGVtZW50Pik6IENsaWNrSGFuZGxlckRldGFpbHMgPT4ge1xuICBjb25zdCBjdXJzb3IgPVxuICAgIFwiY2xpZW50WFwiIGluIGV2ZW50XG4gICAgICA/IHtcbiAgICAgICAgICB4OiBldmVudC5jbGllbnRYLFxuICAgICAgICAgIHk6IGV2ZW50LmNsaWVudFksXG4gICAgICAgIH1cbiAgICAgIDogdG9NaWRkbGUoZXZlbnQuY3VycmVudFRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG5cbiAgcmV0dXJuIHtcbiAgICBjdXJzb3IsXG4gICAgY2F1c2U6IGV2ZW50LmRldGFpbCA/IFwiY2xpY2tcIiA6IFwia2V5Ym9hcmRcIixcbiAgfTtcbn07XG5cbmNvbnN0IGlzUHJvbWlzZUxpa2UgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBQcm9taXNlPHVua25vd24+ID0+XG4gIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiAhIXZhbHVlICYmIFwidGhlblwiIGluIHZhbHVlO1xuXG5jb25zdCBnZXRDdXJzb3JQcm9wcyA9IChcbiAgJGN1cnNvcjogJEN1cnNvclByb3BzIHwgdW5kZWZpbmVkLFxuICBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgcGVuZGluZzogYm9vbGVhbixcbiAgJG9uQ2xpY2s6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkLFxuICAkb25SaWdodENsaWNrOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCxcbik6ICRDdXJzb3JQcm9wcyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICgkY3Vyc29yKSB7XG4gICAgcmV0dXJuICRjdXJzb3I7XG4gIH1cblxuICBpZiAocGVuZGluZykge1xuICAgIHJldHVybiBcInByb2dyZXNzXCI7XG4gIH1cblxuICBpZiAoISRvbkNsaWNrICYmICEkb25SaWdodENsaWNrKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmIChkaXNhYmxlZCkge1xuICAgIHJldHVybiBcIm5vdC1hbGxvd2VkXCI7XG4gIH1cblxuICBpZiAoJG9uQ2xpY2spIHtcbiAgICByZXR1cm4gXCJwb2ludGVyXCI7XG4gIH1cblxuICByZXR1cm4gXCJjb250ZXh0LW1lbnVcIjtcbn07XG4iLCAiaW1wb3J0IHJhd1N0eWxlcyBmcm9tIFwiLi9kaXNwbGF5LWNvbnRlbnRzLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHsgc2FuaXRpemVTY3NzTW9kdWxlcyB9IGZyb20gXCJAazhzbGVucy90ZXN0LXV0aWxzXCI7XG5cbmNvbnN0IHN0eWxlcyA9IHNhbml0aXplU2Nzc01vZHVsZXMocmF3U3R5bGVzKTtcblxuZXhwb3J0IHR5cGUgRGlzcGxheUNvbnRlbnRzUGx1Z2luUHJvcHMgPSB7XG4gICRkaXNwbGF5Q29udGVudHM/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGRpc3BsYXlDb250ZW50c1BsdWdpbiA9IGdldFBsdWdpbjxEaXNwbGF5Q29udGVudHNQbHVnaW5Qcm9wcywgW3R5cGVvZiBjbGFzc05hbWVQbHVnaW5dPigocHJvcHMpID0+IHtcbiAgY29uc3QgeyAkZGlzcGxheUNvbnRlbnRzLCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRkaXNwbGF5Q29udGVudHMpIHtcbiAgICByZXR1cm4geyAkZGlzcGxheUNvbnRlbnRzOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgJGRpc3BsYXlDb250ZW50czogdW5kZWZpbmVkLFxuICAgICRjbGFzc05hbWU6IFskY2xhc3NOYW1lLCBzdHlsZXMuY29udGVudHNdLFxuICB9O1xufSk7XG4iLCAiaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi90ZXh0LWFsaWduLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB7IGdldFBsdWdpbiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuXG5leHBvcnQgdHlwZSBUZXh0QWxpZ25QbHVnaW5Qcm9wcyA9IHsgJHRleHRBbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIiB8IFwicmlnaHRcIiB9O1xuXG5leHBvcnQgY29uc3QgdGV4dEFsaWduUGx1Z2luID0gZ2V0UGx1Z2luPFRleHRBbGlnblBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICR0ZXh0QWxpZ24gfSA9IHByb3BzO1xuXG4gIGlmICghJHRleHRBbGlnbikge1xuICAgIHJldHVybiB7ICR0ZXh0QWxpZ246IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHsgJGNsYXNzTmFtZTogW3N0eWxlc1tgdGV4dC1hbGlnbi0tJHskdGV4dEFsaWdufWBdLCBwcm9wcy4kY2xhc3NOYW1lXSwgJHRleHRBbGlnbjogdW5kZWZpbmVkIH07XG59KTtcbiIsICJpbXBvcnQgc3R5bGVzIGZyb20gXCIuL2Jsb2NrLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuXG5leHBvcnQgdHlwZSBCbG9ja1BsdWdpblByb3BzID0ge1xuICAkYmxvY2s/OiBib29sZWFuIHwgXCJpbmxpbmVcIjtcbn07XG5cbmV4cG9ydCBjb25zdCBibG9ja1BsdWdpbiA9IGdldFBsdWdpbjxCbG9ja1BsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRibG9jaywgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkYmxvY2spIHtcbiAgICByZXR1cm4geyAkYmxvY2s6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkYmxvY2s6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgJGJsb2NrID09PSBcImlubGluZVwiID8gc3R5bGVzW1wiYmxvY2stLWlubGluZVwiXSA6IHN0eWxlcy5ibG9ja10sXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgY2xhc3NOYW1lUGx1Z2luIH0gZnJvbSBcIi4uL2NsYXNzLW5hbWUvY2xhc3MtbmFtZVwiO1xuaW1wb3J0IHR5cGUgeyBDb2xvciB9IGZyb20gXCIuLi9fc2hhcmVkL2NvbG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBSYW5nZSB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5pbXBvcnQgb3V0bGluZVN0eWxlcyBmcm9tIFwiLi9vdXRsaW5lLm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZVNjc3NNb2R1bGVzIH0gZnJvbSBcIkBrOHNsZW5zL3Rlc3QtdXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSUNsYXNzTmFtZSB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5cbmNvbnN0IHN0eWxlcyA9IHNhbml0aXplU2Nzc01vZHVsZXMob3V0bGluZVN0eWxlcyk7XG5cbmV4cG9ydCB0eXBlIE91dGxpbmVXaWR0aCA9IFwiemVyb1wiIHwgXCJ4eHNcIiB8IFwieHNcIiB8IFwic1wiIHwgXCJtXCIgfCBcImxcIiB8IFwieGxcIiB8IFwieHhsXCIgfCBgJHtSYW5nZTwzLCA1Pn14bGA7XG5cbmV4cG9ydCB0eXBlICRPdXRsaW5lUHJvcHMgPSB7IGNvbG9yPzogQ29sb3I7IHdpZHRoPzogT3V0bGluZVdpZHRoIH07XG5cbmV4cG9ydCB0eXBlIE91dGxpbmVQbHVnaW5Qcm9wcyA9IHsgJG91dGxpbmU/OiB7IGZvY3VzVmlzaWJsZT86ICRPdXRsaW5lUHJvcHMgfSB9O1xuXG5leHBvcnQgY29uc3Qgb3V0bGluZVBsdWdpbiA9IGdldFBsdWdpbjxPdXRsaW5lUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xhc3NOYW1lUGx1Z2luXT4oKHByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGdldEZvY3VzVmlzaWJsZU91dGxpbmVTdHlsZXMocHJvcHMuJG91dGxpbmU/LmZvY3VzVmlzaWJsZSldLFxuICAgICRvdXRsaW5lOiB1bmRlZmluZWQsXG4gIH07XG59KTtcblxuY29uc3QgZ2V0Rm9jdXNWaXNpYmxlT3V0bGluZVN0eWxlcyA9IChwcm9wczogJE91dGxpbmVQcm9wcyB8IHVuZGVmaW5lZCk6IElDbGFzc05hbWUgPT4ge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHsgY29sb3IsIHdpZHRoIH0gPSBwcm9wcztcblxuICByZXR1cm4gW1xuICAgIGNvbG9yICE9PSB1bmRlZmluZWQgfHwgd2lkdGggIT09IHVuZGVmaW5lZCA/IFtzdHlsZXMub3V0bGluZSwgc3R5bGVzLmZvY3VzVmlzaWJsZV0gOiB1bmRlZmluZWQsXG4gICAgY29sb3IgPyBzdHlsZXNbYGNvbG9yLS0ke2NvbG9yfWBdIDogdW5kZWZpbmVkLFxuICAgIHdpZHRoID8gc3R5bGVzW2B3aWR0aC0tJHt3aWR0aH1gXSA6IHVuZGVmaW5lZCxcbiAgXTtcbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBnZXRQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IHR5cGUgSUNsYXNzTmFtZSwgc2FuaXRpemVTY3NzTW9kdWxlcyB9IGZyb20gXCJAazhzbGVucy9wdWJsaWMtdXRpbGl0aWVzXCI7XG5pbXBvcnQgaW50ZXJhY3RpdmVTdHlsZXMgZnJvbSBcIi4vaW50ZXJhY3RpdmUubW9kdWxlLnNjc3NcIjtcblxuY29uc3Qgc3R5bGVzID0gc2FuaXRpemVTY3NzTW9kdWxlcyhpbnRlcmFjdGl2ZVN0eWxlcyk7XG5cbmV4cG9ydCB0eXBlICRJbnRlcmFjdGl2ZVByb3BzID0ge1xuICAvKipcbiAgICogU2hvd3MgdGhlIGVsZW1lbnQgYXMgdGhlIGFjdGl2ZSBvbmUsIGUuZy4gdGhlIHRyaWdnZXIgb2YgYSBtZW51IHRoYXQgaXNcbiAgICogb3BlbjogdGhlIGhpZ2hsaWdodCBzdGF5cyBvbiB3aXRoIGEgcmluZyBhcm91bmQgaXQuXG4gICAqL1xuICBhY3RpdmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGtleWJvYXJkIGZvY3VzIGRyYXdzIHRoZSBmb2N1cyByaW5nLiBEZWZhdWx0cyB0byBgdHJ1ZWA7IG9wdCBvdXRcbiAgICogb25seSB3aGVyZSB0aGUgc3Vycm91bmRpbmcgY29udHJvbCBkcmF3cyBpdHMgb3duLlxuICAgKi9cbiAgZm9jdXNWaXNpYmxlT3V0bGluZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBJbnRlcmFjdGl2ZVBsdWdpblByb3BzID0ge1xuICAvKipcbiAgICogR2l2ZXMgdGhlIGVsZW1lbnQgdGhlIGFmZm9yZGFuY2Ugb2YgYW4gaWNvbiBidXR0b246IGEgaGlnaGxpZ2h0IG9uIGhvdmVyLFxuICAgKiBhIGZvY3VzIHJpbmcgZm9yIGtleWJvYXJkIHVzZXJzLCBhbmQgd2l0aCBgYWN0aXZlYCBhIHJpbmcgdGhhdCBtYXJrcyBpdFxuICAgKiBhcyB0aGUgYWN0aXZlIG9uZS5cbiAgICovXG4gICRpbnRlcmFjdGl2ZT86IGJvb2xlYW4gfCAkSW50ZXJhY3RpdmVQcm9wcztcbn07XG5cbmV4cG9ydCBjb25zdCBpbnRlcmFjdGl2ZVBsdWdpbiA9IGdldFBsdWdpbjxJbnRlcmFjdGl2ZVBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4gKHtcbiAgJGNsYXNzTmFtZTogW3Byb3BzLiRjbGFzc05hbWUsIGdldEludGVyYWN0aXZlQ2xhc3NOYW1lcyhwcm9wcy4kaW50ZXJhY3RpdmUpXSxcbiAgJGludGVyYWN0aXZlOiB1bmRlZmluZWQsXG59KSk7XG5cbmNvbnN0IGdldEludGVyYWN0aXZlQ2xhc3NOYW1lcyA9IChpbnRlcmFjdGl2ZTogYm9vbGVhbiB8ICRJbnRlcmFjdGl2ZVByb3BzIHwgdW5kZWZpbmVkKTogSUNsYXNzTmFtZSA9PiB7XG4gIGlmICghaW50ZXJhY3RpdmUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgeyBhY3RpdmUgPSBmYWxzZSwgZm9jdXNWaXNpYmxlT3V0bGluZSA9IHRydWUgfSA9IGludGVyYWN0aXZlID09PSB0cnVlID8ge30gOiBpbnRlcmFjdGl2ZTtcblxuICByZXR1cm4gW3N0eWxlcy5pbnRlcmFjdGl2ZSwgeyBbc3R5bGVzLmFjdGl2ZV06IGFjdGl2ZSwgW3N0eWxlcy5pZ25vcmVGb2N1c1Zpc2libGVdOiAhZm9jdXNWaXNpYmxlT3V0bGluZSB9XTtcbn07XG4iLCAiaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBjbGlja2FibGVQbHVnaW4sIENsaWNrSGFuZGxlckRldGFpbHMgfSBmcm9tIFwiLi4vY2xpY2thYmxlL2NsaWNrYWJsZVwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcgfSBmcm9tIFwiQGZsb2F0aW5nLXVpL3JlYWN0LWRvbVwiO1xuaW1wb3J0IHR5cGUgeyBSZWZQbHVnaW4gfSBmcm9tIFwiLi4vcmVmL3JlZlwiO1xuaW1wb3J0IHsgZXhwZWN0RGVmaW5lZCwgc3RvcFByb3BhZ2F0aW9uIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vcG9wb3Zlci5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgTWluaW1hbERpdiB9IGZyb20gXCIuLi8uLi9lbGVtZW50cy9taW5pbWFsLWRpdlwiO1xuXG5leHBvcnQgdHlwZSBQb3BvdmVyUGx1Z2luUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICAkcG9wb3Zlcj86ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb3BvdmVySXNPcGVuQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoZmFsc2UpO1xuXG5leHBvcnQgY29uc3QgdXNlUG9wb3ZlcklzT3BlbiA9ICgpID0+IHVzZUNvbnRleHQocG9wb3ZlcklzT3BlbkNvbnRleHQpO1xuXG5leHBvcnQgY29uc3QgcG9wb3ZlclBsdWdpbiA9IGdldFBsdWdpbjxQb3BvdmVyUGx1Z2luUHJvcHMsIFt0eXBlb2YgY2xpY2thYmxlUGx1Z2luLCBSZWZQbHVnaW48YW55Pl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRwb3BvdmVyLCAkb25DbGljaywgJHJlZiB9ID0gcHJvcHM7XG4gIGNvbnN0IFtwb3BvdmVyQ29udGVudElzU2hvd24sIHNldFBvcG92ZXJDb250ZW50SXNTaG93bl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtyZWZlcmVuY2UsIHNldEVsZW1lbnRdID0gdXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgY2xvc2VQb3BvdmVyID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0UG9wb3ZlckNvbnRlbnRJc1Nob3duKGZhbHNlKSwgW10pO1xuXG4gIGlmICghJHBvcG92ZXIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJHBvcG92ZXI6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkcG9wb3ZlcjogdW5kZWZpbmVkLFxuICAgICRyZWY6IFskcmVmLCBzZXRFbGVtZW50XSxcbiAgICAkb25DbGljazogKGRldGFpbHM6IENsaWNrSGFuZGxlckRldGFpbHMpID0+IHtcbiAgICAgIHNldFBvcG92ZXJDb250ZW50SXNTaG93bighcG9wb3ZlckNvbnRlbnRJc1Nob3duKTtcbiAgICAgICRvbkNsaWNrPy4oZGV0YWlscyk7XG4gICAgfSxcbiAgICBvbkNsaWNrOiBzdG9wUHJvcGFnYXRpb24sXG4gICAgJHdyYXBwZXI6IHtcbiAgICAgIENvbXBvbmVudDogUG9wb3ZlcldyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczoge1xuICAgICAgICBwb3BvdmVyOiB7XG4gICAgICAgICAgJHBvcG92ZXIsXG4gICAgICAgICAgaXNTaG93bjogcG9wb3ZlckNvbnRlbnRJc1Nob3duLFxuICAgICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgICBjbG9zZVBvcG92ZXIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59KTtcblxudHlwZSBQb3BvdmVyV3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBwb3BvdmVyOiB7XG4gICAgcmVhZG9ubHkgJHBvcG92ZXI6ICgpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgICByZWFkb25seSBpc1Nob3duOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IHJlZmVyZW5jZTogSFRNTERpdkVsZW1lbnQgfCBudWxsO1xuICAgIHJlYWRvbmx5IGNsb3NlUG9wb3ZlcjogVm9pZEZ1bmN0aW9uO1xuICB9O1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgUG9wb3ZlcldyYXBwZXJDb21wb25lbnQgPSAoeyBwb3BvdmVyLCBjaGlsZHJlbiB9OiBQb3BvdmVyV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnN0IHsgJHBvcG92ZXIsIGlzU2hvd24sIHJlZmVyZW5jZSwgY2xvc2VQb3BvdmVyIH0gPSBwb3BvdmVyO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtpc1Nob3duICYmXG4gICAgICAgIGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICA8UG9wb3Zlck92ZXJsYXlDb250ZW50XG4gICAgICAgICAgICB7Li4ue1xuICAgICAgICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgICAgICAgICRwb3BvdmVyLFxuICAgICAgICAgICAgICBjbG9zZVBvcG92ZXIsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+LFxuICAgICAgICAgIGRvY3VtZW50LmJvZHksXG4gICAgICAgICl9XG4gICAgICA8cG9wb3ZlcklzT3BlbkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2lzU2hvd259PntjaGlsZHJlbn08L3BvcG92ZXJJc09wZW5Db250ZXh0LlByb3ZpZGVyPlxuICAgIDwvPlxuICApO1xufTtcblxudHlwZSBQb3BvdmVyT3ZlcmxheUNvbnRlbnRQcm9wcyA9IHtcbiAgcmVmZXJlbmNlOiBIVE1MRGl2RWxlbWVudCB8IG51bGw7XG4gICRwb3BvdmVyOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGNsb3NlUG9wb3ZlcjogVm9pZEZ1bmN0aW9uO1xufTtcblxuY29uc3QgUG9wb3Zlck92ZXJsYXlDb250ZW50ID0gKHByb3BzOiBQb3BvdmVyT3ZlcmxheUNvbnRlbnRQcm9wcykgPT4ge1xuICBjb25zdCB7ICRwb3BvdmVyLCBjbG9zZVBvcG92ZXIsIHJlZmVyZW5jZSB9ID0gcHJvcHM7XG4gIGNvbnN0IFtmbG9hdGluZywgc2V0RmxvYXRpbmddID0gdXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgeyBmbG9hdGluZ1N0eWxlcyB9ID0gdXNlRmxvYXRpbmcoe1xuICAgIHBsYWNlbWVudDogXCJib3R0b21cIixcbiAgICBtaWRkbGV3YXJlOiBbZmxpcCgpLCBvZmZzZXQoOCksIHNoaWZ0KCldLFxuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgIGVsZW1lbnRzOiB7XG4gICAgICBmbG9hdGluZyxcbiAgICAgIHJlZmVyZW5jZSxcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBjbG9zZVBvcG92ZXJGcm9tT3ZlcmxheSA9IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIHN0b3BQcm9wYWdhdGlvbihldmVudCk7XG4gICAgY2xvc2VQb3BvdmVyKCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8TWluaW1hbERpdlxuICAgICAgZGF0YS1wb3BvdmVyLW92ZXJsYXktdGVzdFxuICAgICAgJGFic29sdXRlXG4gICAgICAkY2xhc3NOYW1lPXtzdHlsZXMucG9wb3Zlcl9fb3ZlcmxheX1cbiAgICAgIG9uQ2xpY2s9e2Nsb3NlUG9wb3ZlckZyb21PdmVybGF5fVxuICAgID5cbiAgICAgIDxNaW5pbWFsRGl2XG4gICAgICAgICRyZWY9e3NldEZsb2F0aW5nfVxuICAgICAgICBzdHlsZT17ZmxvYXRpbmdTdHlsZXN9XG4gICAgICAgIG9uQ2xpY2s9e3N0b3BQcm9wYWdhdGlvbn1cbiAgICAgICAgJGNsYXNzTmFtZT17c3R5bGVzLnBvcG92ZXJfX2NvbnRlbnR9XG4gICAgICA+XG4gICAgICAgIDxjb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIuUHJvdmlkZXIgdmFsdWU9e2Nsb3NlUG9wb3Zlcn0+eyRwb3BvdmVyKCl9PC9jb250ZXh0Rm9yQ2xvc2luZ1BvcG92ZXIuUHJvdmlkZXI+XG4gICAgICA8L01pbmltYWxEaXY+XG4gICAgPC9NaW5pbWFsRGl2PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciA9IGNyZWF0ZUNvbnRleHQ8Vm9pZEZ1bmN0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG5leHBvcnQgY29uc3QgdXNlQ2xvc2VQb3BvdmVyID0gKCkgPT5cbiAgZXhwZWN0RGVmaW5lZChcbiAgICB1c2VDb250ZXh0KGNvbnRleHRGb3JDbG9zaW5nUG9wb3ZlciksXG4gICAgXCJUcmllZCB0byB1c2UgY2xvc2UgcG9wb3ZlciB3aGlsZSBjb250ZW50IGlzIG5vdCBzaG93biBpbnNpZGUgdGhlIHBvcG92ZXIgY29udGVudC5cIixcbiAgKTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4sIHR5cGUgQ29udHJpYnV0ZVJlZiwgdHlwZSBQbHVnaW4gfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmUGx1Z2luIH0gZnJvbSBcIi4uL3JlZi9yZWZcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgYXV0b1VwZGF0ZSwgZmxpcCwgb2Zmc2V0LCBzaGlmdCwgdXNlRmxvYXRpbmcsIHR5cGUgUGxhY2VtZW50IH0gZnJvbSBcIkBmbG9hdGluZy11aS9yZWFjdC1kb21cIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nQ29udGVudEFyZ3MgPSB7XG4gIHJlYWRvbmx5IGZsb2F0aW5nU3R5bGVzOiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICByZWFkb25seSBjb250ZW50UmVmOiBOb25OdWxsYWJsZTxSZWFjdC5SZWY8SFRNTERpdkVsZW1lbnQ+Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEZsb2F0aW5nQ29udGVudEZhY3RvcnkgPSAoYXJnczogRmxvYXRpbmdDb250ZW50QXJncykgPT4gUmVhY3QuUmVhY3ROb2RlO1xuXG5leHBvcnQgdHlwZSAkRmxvYXRpbmdQcm9wcyA9IHtcbiAgcmVhZG9ubHkgcG9zaXRpb24/OiBQbGFjZW1lbnQ7XG4gIHJlYWRvbmx5IGNvbnRlbnQ6IEZsb2F0aW5nQ29udGVudEZhY3Rvcnk7XG59O1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ1BsdWdpblByb3BzID0ge1xuICByZWFkb25seSBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgcmVhZG9ubHkgJGZsb2F0aW5nPzogJEZsb2F0aW5nUHJvcHM7XG59O1xuXG5leHBvcnQgdHlwZSBGbG9hdGluZ1BsdWdpbiA9IFBsdWdpbjxGbG9hdGluZ1BsdWdpblByb3BzLCB1bmtub3duPjtcblxudHlwZSBGbG9hdGluZ1dyYXBwZXJQcm9wcyA9IHtcbiAgcmVhZG9ubHkgZmxvYXRpbmc6ICRGbG9hdGluZ1Byb3BzO1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRmxvYXRpbmdXcmFwcGVyQ29tcG9uZW50ID0gKHsgZmxvYXRpbmcsIGNvbnRyaWJ1dGVSZWYsIGNoaWxkcmVuIH06IEZsb2F0aW5nV3JhcHBlclByb3BzKSA9PiB7XG4gIGNvbnN0IFtyZWZlcmVuY2UsIHNldFJlZmVyZW5jZV0gPSB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbZmxvYXRpbmdFbCwgc2V0RmxvYXRpbmddID0gdXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb250cmlidXRlUmVmKHNldFJlZmVyZW5jZSk7XG5cbiAgY29uc3QgeyBmbG9hdGluZ1N0eWxlcyB9ID0gdXNlRmxvYXRpbmcoe1xuICAgIHBsYWNlbWVudDogZmxvYXRpbmcucG9zaXRpb24gPz8gXCJib3R0b21cIixcbiAgICBtaWRkbGV3YXJlOiBbZmxpcCgpLCBvZmZzZXQoOCksIHNoaWZ0KCldLFxuICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgIGVsZW1lbnRzOiB7XG4gICAgICBmbG9hdGluZzogZmxvYXRpbmdFbCxcbiAgICAgIHJlZmVyZW5jZSxcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBmbG9hdGluZ0NvbnRlbnQgPSBmbG9hdGluZy5jb250ZW50KHsgZmxvYXRpbmdTdHlsZXMsIGNvbnRlbnRSZWY6IHNldEZsb2F0aW5nIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtmbG9hdGluZ0NvbnRlbnQgPyBjcmVhdGVQb3J0YWwoZmxvYXRpbmdDb250ZW50LCBkb2N1bWVudC5ib2R5KSA6IG51bGx9XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gICk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZmxvYXRpbmdQbHVnaW48VD4oKSB7XG4gIHJldHVybiBnZXRQbHVnaW48RmxvYXRpbmdQbHVnaW5Qcm9wcywgW1JlZlBsdWdpbjxUPl0+KChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgJGZsb2F0aW5nIH0gPSBwcm9wcztcblxuICAgIGlmICgkZmxvYXRpbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHsgJGZsb2F0aW5nOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgJGZsb2F0aW5nOiB1bmRlZmluZWQsXG4gICAgICAkd3JhcHBlcjoge1xuICAgICAgICBDb21wb25lbnQ6IEZsb2F0aW5nV3JhcHBlckNvbXBvbmVudCxcbiAgICAgICAgcHJvcHM6IHsgZmxvYXRpbmc6ICRmbG9hdGluZyB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcbn1cbiIsICJpbXBvcnQgc3R5bGVzIGZyb20gXCIuL2ludmlzaWJsZS1iYWNrZHJvcC5tb2R1bGUuc2Nzc1wiO1xuaW1wb3J0IHsgZ2V0UGx1Z2luIH0gZnJvbSBcIkBrOHNsZW5zL2VsZW1lbnQtY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcblxuZXhwb3J0IHR5cGUgSW52aXNpYmxlQmFja2Ryb3BQbHVnaW5Qcm9wcyA9IHtcbiAgJGludmlzaWJsZUJhY2tkcm9wPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZpc2libGVCYWNrZHJvcFBsdWdpbiA9IGdldFBsdWdpbjxJbnZpc2libGVCYWNrZHJvcFBsdWdpblByb3BzLCBbdHlwZW9mIGNsYXNzTmFtZVBsdWdpbl0+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRpbnZpc2libGVCYWNrZHJvcCwgJGNsYXNzTmFtZSB9ID0gcHJvcHM7XG5cbiAgaWYgKCEkaW52aXNpYmxlQmFja2Ryb3ApIHtcbiAgICByZXR1cm4geyAkaW52aXNpYmxlQmFja2Ryb3A6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkaW52aXNpYmxlQmFja2Ryb3A6IHVuZGVmaW5lZCxcbiAgICAkY2xhc3NOYW1lOiBbJGNsYXNzTmFtZSwgc3R5bGVzLmludmlzaWJsZUJhY2tkcm9wXSxcbiAgfTtcbn0pO1xuIiwgImltcG9ydCB7IGdldFBsdWdpbiwgdHlwZSBDb250cmlidXRlUHJvcHMsIHR5cGUgQ29udHJpYnV0ZVJlZiB9IGZyb20gXCJAazhzbGVucy9lbGVtZW50LWNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHJvcERvd25NZW51LCB0eXBlIERyb3BEb3duTWVudVNwZWMgfSBmcm9tIFwiQGs4c2xlbnMvZHJvcC1kb3duLW1lbnUtY29udHJhY3RzXCI7XG5pbXBvcnQgeyBjc3NOYW1lcywgb25UcmlnZ2VyIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZVN5bmNJbmplY3QgfSBmcm9tIFwiQGs4c2xlbnMvdXNlLWluamVjdFwiO1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBhbmNob3JhYmxlQ2xhc3NOYW1lLCBBbmNob3JOYW1lUHJvdmlkZXIsIHVzZUFuY2hvck5hbWVGb3IgfSBmcm9tIFwiLi4vYW5jaG9yL2FuY2hvclwiO1xuaW1wb3J0IHR5cGUgeyBjbGFzc05hbWVQbHVnaW4gfSBmcm9tIFwiLi4vY2xhc3MtbmFtZS9jbGFzcy1uYW1lXCI7XG5pbXBvcnQgeyBvblJpZ2h0VHJpZ2dlckluamVjdGFibGUgfSBmcm9tIFwiLi4vY2xpY2thYmxlL29uLXJpZ2h0LXRyaWdnZXIuaW5qZWN0YWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBQb3NpdGlvbjJkIH0gZnJvbSBcIi4uL2NsaWNrYWJsZS9jbGlja2FibGVcIjtcbmltcG9ydCB0eXBlIHsgY3Vyc29yUGx1Z2luIH0gZnJvbSBcIi4uL2N1cnNvci9jdXJzb3JcIjtcbmltcG9ydCB7IHR5cGUgZW5hYmxlZFBsdWdpbiwgaXNEaXNhYmxlZCB9IGZyb20gXCIuLi9lbmFibGVkL2VuYWJsZWRcIjtcbmltcG9ydCB7IHVzZU9uT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4uL29uLW91dHNpZGUtY2xpY2svb24tb3V0c2lkZS1jbGlja1wiO1xuXG5leHBvcnQgdHlwZSBEcm9wRG93bk1lbnVQbHVnaW5Qcm9wcyA9IHtcbiAgcmVhZG9ubHkgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHJlYWRvbmx5IHRhYkluZGV4PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGRyb3AtZG93biBtZW51IHRvIHRoZSBlbGVtZW50LiBDcmVhdGUgdGhlIHZhbHVlIHdpdGggYGRyb3BEb3duTWVudShraW5kLCBvcHRpb25zPylgXG4gICAqIGZyb20gYEBrOHNsZW5zL2Ryb3AtZG93bi1tZW51LWNvbnRyYWN0c2A7IHRoZSBpdGVtcyBjb21lIGZyb20gdGhlIGNvbnRyaWJ1dGlvbnMgcmVnaXN0ZXJlZCBmb3JcbiAgICogdGhlIGtpbmQuXG4gICAqXG4gICAqIFRoZSBtZW51IHBvc2l0aW9ucyBpdHNlbGYgYWdhaW5zdCB0aGUgbmVhcmVzdCBgJGFuY2hvcmAgYXJvdW5kIHRoZSBlbGVtZW50LCBvciBhZ2FpbnN0IHRoZVxuICAgKiBlbGVtZW50IGl0c2VsZiB3aGVuIHRoZXJlIGlzIG5vbmUuIERlY2xhcmUgYCRhbmNob3JgIG9uIGFuIGVuY2xvc2luZyBlbGVtZW50IHRvIGhhdmUgdGhlIG1lbnVcbiAgICogbGluZSB1cCB3aXRoIHRoYXQgaW5zdGVhZCwgYXMgYSBtZW51IG9wZW5lZCBmcm9tIG9uZSBoYWxmIG9mIGEgc3BsaXQgYnV0dG9uIGxpbmVzIHVwIHdpdGggdGhlXG4gICAqIHdob2xlIG9mIGl0LlxuICAgKlxuICAgKiBUaGUgbWVudSB0YWtlcyBmb2N1cyBhcyBpdCBvcGVucywgaXRzIGZpcnN0IGl0ZW0gYmVjb21pbmcgdGhlIGN1cnJlbnQgb25lIFx1MjAxNCBleGNlcHQgd2hlbiBpdFxuICAgKiBvcGVucyBieSBiZWluZyBob3ZlcmVkLCB3aGVyZSBmb2N1cyBzdGF5cyBvbiB0aGUgZWxlbWVudDogdGhlIHJvdyB0aGUgcG9pbnRlciByZXN0cyBvbiBpcyB3aGF0XG4gICAqIHRoZSB1c2VyIGlzIGxvb2tpbmcgYXQuIEZvY3VzIHJldHVybnMgdG8gdGhlIGVsZW1lbnQgb25jZSB0aGUgbWVudSBpcyBnb25lLiBBIG1lbnUgdGhhdCBvcGVucyBvblxuICAgKiBob3ZlcmluZyBvcGVucyB3aXRoIEFycm93UmlnaHQgYXMgd2VsbCwgdGFraW5nIGZvY3VzIHRoZW4sIGFuZCBjbG9zZXMgd2l0aCBBcnJvd0xlZnQgZnJvbVxuICAgKiBhbnl3aGVyZSB3aXRoaW4gaXQsIHNvIGEgbWVudSBoZWxkIGJ5IGEgbWVudSByb3cgaXMgcmVhY2hhYmxlIHdpdGhvdXQgYSBwb2ludGVyLlxuICAgKlxuICAgKiBSZXF1aXJlcyBgZHJvcERvd25NZW51RmVhdHVyZWAgb2YgYEBsZW5zYXBwL2Ryb3AtZG93bi1tZW51YCB0byBiZSByZWdpc3RlcmVkOiB0aGUgbWVudVxuICAgKiBjb21wb25lbnQgaXMgcmVzb2x2ZWQgdGhyb3VnaCBhbiBpbmplY3Rpb24gdG9rZW4gdGhpcyBwYWNrYWdlIGRvZXMgbm90IGltcGxlbWVudC5cbiAgICovXG4gIHJlYWRvbmx5ICRkcm9wRG93bk1lbnU/OiBEcm9wRG93bk1lbnVTcGVjO1xufTtcblxuY29uc3QgaG92ZXJDbG9zZURlbGF5SW5NaWxsaXNlY29uZHMgPSAyMDA7XG5cbnR5cGUgRHJvcERvd25NZW51V3JhcHBlclByb3BzID0ge1xuICByZWFkb25seSBkcm9wRG93bk1lbnU6IERyb3BEb3duTWVudVNwZWM7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVSZWY6IENvbnRyaWJ1dGVSZWY7XG4gIHJlYWRvbmx5IGNvbnRyaWJ1dGVQcm9wczogQ29udHJpYnV0ZVByb3BzO1xuICByZWFkb25seSBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRHJvcERvd25NZW51V3JhcHBlckNvbXBvbmVudCA9ICh7XG4gIGRyb3BEb3duTWVudSxcbiAgY29udHJpYnV0ZVJlZixcbiAgY29udHJpYnV0ZVByb3BzLFxuICBjaGlsZHJlbixcbn06IERyb3BEb3duTWVudVdyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAvLyBXaGV0aGVyIHRoZSBtZW51IHRha2VzIGZvY3VzIGFzIGl0IG9wZW5zLiBPbmx5IGEgbWVudSB0aGUgcG9pbnRlciBvcGVuZWQgYnkgcmVzdGluZyBvbiB0aGVcbiAgLy8gZWxlbWVudCBsZWF2ZXMgaXQgYmU6IHRoZSBrZXlib2FyZCBvcGVuaW5nIG9uZSwgb3IgYSBjbGljaywgaXMgdGhlIHVzZXIgYXNraW5nIGZvciB0aGUgbWVudSxcbiAgLy8gYW5kIGl0cyBmaXJzdCBpdGVtIGlzIHdoZXJlIHRoZXkgZ28gb24gZnJvbS5cbiAgY29uc3QgW3Rha2VzRm9jdXMsIHNldFRha2VzRm9jdXNdID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFtjdXJzb3IsIHNldEN1cnNvcl0gPSB1c2VTdGF0ZTxQb3NpdGlvbjJkIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBjbG9zZVRpbWVyUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjb25zdCBvblJpZ2h0VHJpZ2dlciA9IHVzZVN5bmNJbmplY3Qob25SaWdodFRyaWdnZXJJbmplY3RhYmxlKTtcblxuICBjb25zdCBlbGVtZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IG1lbnVSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgZWxlbWVudFRha2VzRm9jdXNCYWNrUmVmID0gdXNlUmVmKGZhbHNlKTtcblxuICBjb250cmlidXRlUmVmKFxuICAgIHVzZUNhbGxiYWNrKChlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGVsZW1lbnRSZWYuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgfSwgW10pLFxuICApO1xuXG4gIGNvbnN0IHRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRUYWtlc0ZvY3VzKHRydWUpO1xuICAgIHNldElzT3Blbigod2FzT3BlbikgPT4gIXdhc09wZW4pO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgY2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gVGhlIGVsZW1lbnQgdGhlIG1lbnUgYmVsb25ncyB0byB0YWtlcyBmb2N1cyBiYWNrIHdoZW4gZm9jdXMgaXMgaW4gdGhlIG1lbnUgdGhhdCBpcyBjbG9zaW5nLFxuICAgIC8vIG9yIG5vd2hlcmUgYXQgYWxsOiB3aGF0ZXZlciB0aGUgdXNlciBkb2VzIG5leHQsIHRoZXkgZG8gZnJvbSB3aGVyZSB0aGV5IHdlcmUuIERlY2lkZWQgaGVyZSxcbiAgICAvLyB3aGlsZSBpdCBpcyBzdGlsbCBjbGVhciB3aGVyZSBmb2N1cyB3YXMsIHJhdGhlciB0aGFuIG9uY2UgdGhlIG1lbnUgaGFzIGdvbmUuXG4gICAgY29uc3QgZm9jdXNlZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICBlbGVtZW50VGFrZXNGb2N1c0JhY2tSZWYuY3VycmVudCA9XG4gICAgICBmb2N1c2VkID09PSBudWxsIHx8IGZvY3VzZWQgPT09IGRvY3VtZW50LmJvZHkgfHwgbWVudVJlZi5jdXJyZW50Py5jb250YWlucyhmb2N1c2VkKSA9PT0gdHJ1ZTtcblxuICAgIHNldElzT3BlbihmYWxzZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBjYW5jZWxTY2hlZHVsZWRDbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoY2xvc2VUaW1lclJlZi5jdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFyVGltZW91dChjbG9zZVRpbWVyUmVmLmN1cnJlbnQpO1xuICAgICAgY2xvc2VUaW1lclJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIGNvbnN0IG9wZW4gPSB1c2VDYWxsYmFjayhcbiAgICAob3BlbmVkQnk6IFwicG9pbnRlclwiIHwgXCJrZXlib2FyZFwiKSA9PiB7XG4gICAgICBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpO1xuICAgICAgc2V0VGFrZXNGb2N1cyhvcGVuZWRCeSA9PT0gXCJrZXlib2FyZFwiKTtcbiAgICAgIHNldElzT3Blbih0cnVlKTtcbiAgICB9LFxuICAgIFtjYW5jZWxTY2hlZHVsZWRDbG9zZV0sXG4gICk7XG5cbiAgY29uc3Qgc2NoZWR1bGVDbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjYW5jZWxTY2hlZHVsZWRDbG9zZSgpO1xuICAgIGNsb3NlVGltZXJSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoY2xvc2UsIGhvdmVyQ2xvc2VEZWxheUluTWlsbGlzZWNvbmRzKTtcbiAgfSwgW2NhbmNlbFNjaGVkdWxlZENsb3NlLCBjbG9zZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiBjYW5jZWxTY2hlZHVsZWRDbG9zZSwgW2NhbmNlbFNjaGVkdWxlZENsb3NlXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzT3Blbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBBIG1lbnUgdGhhdCBpcyBkaXNtaXNzZWQgcmF0aGVyIHRoYW4gY2xvc2VkIFx1MjAxNCBjbGlja2VkIGF3YXkgZnJvbSBcdTIwMTQgbGVhdmVzIGZvY3VzIHdoZXJldmVyIHRoZVxuICAgIC8vIHVzZXIgcHV0IGl0LlxuICAgIGVsZW1lbnRUYWtlc0ZvY3VzQmFja1JlZi5jdXJyZW50ID0gZmFsc2U7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKCFlbGVtZW50VGFrZXNGb2N1c0JhY2tSZWYuY3VycmVudCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIERlZmVycmVkIHBhc3Qgd2hhdCBpcyBiZWluZyB0YWtlbiBhd2F5OiB0aGUgZWxlbWVudCBtYXkgYmUgZ29pbmcgd2l0aCB0aGUgbWVudSwgYSBtZW51XG4gICAgICAvLyBpbnNpZGUgYSBtZW51IHRoYXQgaXMgY2xvc2luZyB0b28sIGFuZCBvbmx5IHRoZW4gaXMgaXQgY2xlYXIgd2hldGhlciBpdCBpcyBzdGlsbCB0aGVyZSB0b1xuICAgICAgLy8gdGFrZSBmb2N1cyBiYWNrLiBBbnl0aGluZyB0aGF0IHRvb2sgZm9jdXMgaW4gdGhlIG1lYW50aW1lIHdhcyBnaXZlbiBpdCBvbiBwdXJwb3NlLCBhbmQgYVxuICAgICAgLy8gbWVudSBjbG9zaW5nIGlzIG5vIHJlYXNvbiB0byB0YWtlIGl0IGF3YXkgYWdhaW4uXG4gICAgICB2b2lkIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xuICAgICAgICBjb25zdCBmb2N1c2VkID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblxuICAgICAgICBpZiAoZWxlbWVudD8uaXNDb25uZWN0ZWQgJiYgKGZvY3VzZWQgPT09IG51bGwgfHwgZm9jdXNlZCA9PT0gZG9jdW1lbnQuYm9keSkpIHtcbiAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gIH0sIFtpc09wZW5dKTtcblxuICAvLyBUaGUgbmVhcmVzdCBhbmNob3IgYXJvdW5kIHRoZSBlbGVtZW50LCB3aGljaCBpcyB0aGUgZWxlbWVudCBpdHNlbGYgd2hlbiBpdCBkZWNsYXJlcyBgJGFuY2hvcmA7XG4gIC8vIGFuIGVsZW1lbnQgd2l0aCBub25lIGFyb3VuZCBpdCBhbmNob3JzIGl0cyBtZW51IGl0c2VsZiwgc28gYSBtZW51IG5ldmVyIGZhaWxzIHRvIG9wZW4gZm9yIHRoZVxuICAvLyB3YW50IG9mIG9uZS4gTmFtZWQgb25seSB3aGlsZSB0aGUgbWVudSBpcyBvcGVuLCB3aGljaCBpcyB0aGUgb25seSB0aW1lIGFueXRoaW5nIG5lZWRzIHRoZSBuYW1lLlxuICBjb25zdCBhbmNob3JOYW1lID0gdXNlQW5jaG9yTmFtZUZvcihlbGVtZW50UmVmLCBpc09wZW4pO1xuXG4gIGNvbnN0IG9wZW5PbiA9IGRyb3BEb3duTWVudS5vcGVuT24gPz8gXCJjbGlja1wiO1xuXG4gIGNvbnN0IGNsb3NlT25BcnJvd0xlZnQgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dMZWZ0XCIpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGNsb3NlKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2xvc2VdLFxuICApO1xuXG4gIC8vIE1hcmtzIHRoZSBlbGVtZW50IGFuZCwgYmVsb3csIHRoZSBtZW51IGl0IG9wZW5zIGFzIG9uZSB0aGluZyBmb3Igb3V0c2lkZS1jbGljayBwdXJwb3Nlcy5cbiAgY29uc3Qgb3V0c2lkZUNsaWNrTWFya2luZ1Byb3BzID0gdXNlT25PdXRzaWRlQ2xpY2soXG4gICAgdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICBzZXRJc09wZW4oZmFsc2UpO1xuICAgICAgfVxuICAgIH0sIFtpc09wZW5dKSxcbiAgKTtcblxuICBjb250cmlidXRlUHJvcHMoe1xuICAgIC4uLm91dHNpZGVDbGlja01hcmtpbmdQcm9wcyxcbiAgICBcImFyaWEtaGFzcG9wdXBcIjogXCJtZW51XCIsXG5cbiAgICAuLi4ob3Blbk9uID09PSBcImNsaWNrXCIgJiYge1xuICAgICAgb25DbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0b2dnbGUoKTtcbiAgICAgIH0sXG5cbiAgICAgIC8vIEEga2V5IHByZXNzIHRoZSBlbGVtZW50IGFuc3dlcnMgd2l0aCBhIG1lbnUgaXMgYW5zd2VyZWQgaGVyZSBhbmQgbm93aGVyZSBlbHNlLFxuICAgICAgLy8gZXhhY3RseSBhcyBpdHMgY2xpY2sgaXM6IHdoYXRldmVyIGVuY2xvc2VzIHRoZSBlbGVtZW50IChhIG1lbnUgcm93IHdpdGggYW5cbiAgICAgIC8vIGFjdGlvbiBvZiBpdHMgb3duLCBzYXkpIG11c3Qgbm90IHRha2UgdGhlIHNhbWUgcHJlc3MgZm9yIGJlaW5nIGFjdGl2YXRlZCB0b28uXG4gICAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBvblRyaWdnZXIoZXZlbnQsICgpID0+IHtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0b2dnbGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgLi4uKG9wZW5PbiA9PT0gXCJyaWdodC1jbGlja1wiICYmIHtcbiAgICAgIG9uQ29udGV4dE1lbnU6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy8gQSBtZW51IG9wZW5lZCBieSByaWdodC1jbGlja2luZyBiZWxvbmdzIGF0IHRoZSBjdXJzb3IgcmF0aGVyIHRoYW4gYXQgdGhlIGVsZW1lbnQuXG4gICAgICAgIHNldEN1cnNvcih7IHg6IGV2ZW50LmNsaWVudFgsIHk6IGV2ZW50LmNsaWVudFkgfSk7XG4gICAgICAgIHRvZ2dsZSgpO1xuICAgICAgfSxcblxuICAgICAgb25LZXlEb3duOiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgb25SaWdodFRyaWdnZXIoZXZlbnQsICgpID0+IHtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAvLyBBIG1lbnUgdGhlIGtleWJvYXJkIG9wZW5lZCBiZWxvbmdzIGF0IHRoZSBlbGVtZW50LCB3aGVyZXZlciB0aGUgY3Vyc29yIGxhc3Qgd2FzLlxuICAgICAgICAgIHNldEN1cnNvcih1bmRlZmluZWQpO1xuICAgICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSksXG5cbiAgICAuLi4ob3Blbk9uID09PSBcImhvdmVyXCIgJiYge1xuICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBvcGVuKFwicG9pbnRlclwiKSxcbiAgICAgIG9uTW91c2VMZWF2ZTogc2NoZWR1bGVDbG9zZSxcblxuICAgICAgLy8gQSBtZW51IHRoYXQgb3BlbnMgb24gaG92ZXJpbmcgd291bGQgYmUgb3V0IG9mIHRoZSBrZXlib2FyZCdzIHJlYWNoIG90aGVyd2lzZS4gU2lkZXdheXNcbiAgICAgIC8vIGludG8gaXQsIHNpbmNlIHRoYXQgaXMgd2hlcmUgc3VjaCBhIG1lbnUgc2l0czogYmVzaWRlIHRoZSBlbGVtZW50IGl0IGJlbG9uZ3MgdG8uIEZvY3VzXG4gICAgICAvLyBmb2xsb3dzIG9uIGl0cyBvd24sIHRoZSBtZW51IHRha2luZyBpdCBhcyBpdCBhcHBlYXJzIFx1MjAxNCBvciwgdGhlIHBvaW50ZXIgaGF2aW5nIG9wZW5lZCBpdFxuICAgICAgLy8gYWxyZWFkeSwgYXMgdGhlIGtleWJvYXJkIHN0ZXBzIGludG8gaXQuXG4gICAgICBvbktleURvd246IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93UmlnaHRcIikge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgb3BlbihcImtleWJvYXJkXCIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pLFxuICB9KTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7Y2hpbGRyZW59XG5cbiAgICAgIHtpc09wZW4gJiYgKFxuICAgICAgICAvLyBNYXJrZWQgYXMgaW5zaWRlIGZvciB0aGUgb3V0c2lkZS1jbGljayBkZXRlY3Rpb24gYWJvdmU6IHRoZSBtZW51IGlzIGEgc2libGluZyBvZiB0aGVcbiAgICAgICAgLy8gZWxlbWVudCBpbiB0aGUgRE9NLCBidXQgcGFydCBvZiB0aGUgc2FtZSB0aGluZyBhcyBmYXIgYXMgYSB1c2VyIGlzIGNvbmNlcm5lZC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gQSBjbGljayBsYW5kaW5nIG9uIHRoZSBtZW51IGlzIGEgY2xpY2sgb24gdGhlIG1lbnUgYW5kIG5vdGhpbmcgZWxzZSwgc28gaXQgc3RvcHMgaGVyZVxuICAgICAgICAvLyByYXRoZXIgdGhhbiBnb2luZyBvbiB0byB3aGF0ZXZlciBlbmNsb3NlcyB0aGUgZWxlbWVudCB0aGUgbWVudSB3YXMgb3BlbmVkIGZyb20gXHUyMDE0IGEgcm93XG4gICAgICAgIC8vIG9mIGEgbWVudSBvZiBpdHMgb3duLCBzYXksIHdoaWNoIHdvdWxkIHRha2UgaXQgZm9yIHRoZSByb3cgYmVpbmcgYWN0aXZhdGVkLiBPbmx5XG4gICAgICAgIC8vIGBjbGlja2Agc3RvcHM6IHRoZSBvdXRzaWRlLWNsaWNrIGRldGVjdGlvbiBhYm92ZSB3b3JrcyBvbiBgcG9pbnRlcmRvd25gLlxuICAgICAgICAvL1xuICAgICAgICAvLyBGb2N1cyBsYW5kaW5nIGluIHRoZSBtZW51IGlzIGxpa2V3aXNlIGZvY3VzIGluIHRoZSBtZW51IGFuZCBub3RoaW5nIGVsc2UuIEEgdHJlZSByb3dcbiAgICAgICAgLy8gZW5jbG9zaW5nIHRoZSBlbGVtZW50IHdvdWxkIG90aGVyd2lzZSB0YWtlIGl0IGZvciB0aGUgcm93IGl0c2VsZiBiZWluZyBmb2N1c2VkLCBhbmRcbiAgICAgICAgLy8gdGFrZSBmb2N1cyBzdHJhaWdodCBiYWNrIGZyb20gdGhlIG1lbnUgcm93IHRoZSBwb2ludGVyIGhhZCBqdXN0IHB1dCBpdCBvbiBcdTIwMTQgYW5kIHNpbmNlXG4gICAgICAgIC8vIHRoZSBoaWdobGlnaHQgb2YgYSBtZW51IHJvdyBmb2xsb3dzIGZvY3VzLCB0aGF0IGlzIGEgbWVudSB0aGF0IG5ldmVyIGxvb2tzIHBvaW50ZWQgYXQuXG4gICAgICAgIC8vIE9ubHkgZm9jdXMgc3RvcHMsIG5vdCBibHVyOiB3aGF0ZXZlciBlbmNsb3NlcyB0aGUgZWxlbWVudCB0ZWxscyBmb2N1cyBsZWF2aW5nIGl0IGFwYXJ0XG4gICAgICAgIC8vIGZyb20gZm9jdXMgbW92aW5nIHdpdGhpbiBpdCBieSB3aGVyZSBmb2N1cyB3ZW50LCBhbmQgaGFzIHRvIGhlYXIgb2YgaXQgbGVhdmluZyBmcm9tIHRoZVxuICAgICAgICAvLyBtZW51IGFzIG11Y2ggYXMgZnJvbSBhbnl3aGVyZSBlbHNlLlxuICAgICAgICA8c3BhblxuICAgICAgICAgIHsuLi5vdXRzaWRlQ2xpY2tNYXJraW5nUHJvcHN9XG4gICAgICAgICAgcmVmPXttZW51UmVmfVxuICAgICAgICAgIHN0eWxlPXtkaXNwbGF5Q29udGVudHN9XG4gICAgICAgICAgb25DbGljaz17c3RvcFByb3BhZ2F0aW9ufVxuICAgICAgICAgIG9uRm9jdXM9e3N0b3BQcm9wYWdhdGlvbn1cbiAgICAgICAgICAvLyBTaWRld2F5cyBiYWNrIG91dCBvZiBhIG1lbnUgdGhhdCBvcGVuZWQgc2lkZXdheXMsIGZyb20gd2hlcmV2ZXIgaW4gaXQgZm9jdXMgaGFwcGVucyB0b1xuICAgICAgICAgIC8vIGJlLiBJdCBzdG9wcyBoZXJlLCBzbyB0aGUgbWVudSB0aGlzIG9uZSB3YXMgb3BlbmVkIGZyb20gaXMgbGVmdCBhcyBpdCBpcyByYXRoZXIgdGhhblxuICAgICAgICAgIC8vIGNsb3NpbmcgYWxvbmcgd2l0aCBpdCBcdTIwMTQgb25lIHN0ZXAgb3V0IHBlciBwcmVzcy4gT25seSBzdWNoIGEgbWVudTogZWxzZXdoZXJlIHRoZSBrZXlcbiAgICAgICAgICAvLyBiZWxvbmdzIHRvIHdoYXRldmVyIHRoZSBtZW51IGhvbGRzLCBhbmQgRXNjYXBlIGlzIGhvdyBhIG1lbnUgaXMgZGlzbWlzc2VkLlxuICAgICAgICAgIG9uS2V5RG93bj17b3Blbk9uID09PSBcImhvdmVyXCIgPyBjbG9zZU9uQXJyb3dMZWZ0IDogdW5kZWZpbmVkfVxuICAgICAgICA+XG4gICAgICAgICAgPEFuY2hvck5hbWVQcm92aWRlciB2YWx1ZT17YW5jaG9yTmFtZX0+XG4gICAgICAgICAgICA8RHJvcERvd25NZW51XG4gICAgICAgICAgICAgIHNwZWM9e2Ryb3BEb3duTWVudX1cbiAgICAgICAgICAgICAgYW5jaG9yUG9pbnQ9e29wZW5PbiA9PT0gXCJyaWdodC1jbGlja1wiID8gY3Vyc29yIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICB0YWtlc0ZvY3VzPXt0YWtlc0ZvY3VzfVxuICAgICAgICAgICAgICBvbkNsb3NlPXtjbG9zZX1cbiAgICAgICAgICAgICAgb25NZW51SG92ZXJDaGFuZ2U9e1xuICAgICAgICAgICAgICAgIG9wZW5PbiA9PT0gXCJob3ZlclwiXG4gICAgICAgICAgICAgICAgICA/IChtZW51SXNIb3ZlcmVkKSA9PiAobWVudUlzSG92ZXJlZCA/IGNhbmNlbFNjaGVkdWxlZENsb3NlKCkgOiBzY2hlZHVsZUNsb3NlKCkpXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQW5jaG9yTmFtZVByb3ZpZGVyPlxuICAgICAgICA8L3NwYW4+XG4gICAgICApfVxuICAgIDwvPlxuICApO1xufTtcblxuY29uc3QgZGlzcGxheUNvbnRlbnRzID0geyBkaXNwbGF5OiBcImNvbnRlbnRzXCIgfSBhcyBjb25zdDtcblxuY29uc3Qgc3RvcFByb3BhZ2F0aW9uID0gKGV2ZW50OiBSZWFjdC5TeW50aGV0aWNFdmVudCkgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbmV4cG9ydCBjb25zdCBkcm9wRG93bk1lbnVQbHVnaW4gPSBnZXRQbHVnaW48XG4gIERyb3BEb3duTWVudVBsdWdpblByb3BzLFxuICBbdHlwZW9mIGVuYWJsZWRQbHVnaW4sIHR5cGVvZiBjdXJzb3JQbHVnaW4sIHR5cGVvZiBjbGFzc05hbWVQbHVnaW5dXG4+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRkcm9wRG93bk1lbnUsICRjdXJzb3IsICRjbGFzc05hbWUsIHJvbGUgfSA9IHByb3BzIGFzIHR5cGVvZiBwcm9wcyAmIFJlYWN0LkhUTUxQcm9wczxIVE1MRWxlbWVudD47XG5cbiAgaWYgKCRkcm9wRG93bk1lbnUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7ICRkcm9wRG93bk1lbnU6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgY29uc3Qgb3BlbnNPbkNsaWNrID0gKCRkcm9wRG93bk1lbnUub3Blbk9uID8/IFwiY2xpY2tcIikgPT09IFwiY2xpY2tcIjtcbiAgLy8gUmVhZCBmcm9tIHdoYXQgdGhlIGVsZW1lbnQgd2FzIGdpdmVuOiB0aGlzIHBsdWdpbiBydW5zIGJlZm9yZSB0aGUgb25lIHRoYXQgdHVybnMgaXQgaW50b1xuICAvLyB0aGUgYGRpc2FibGVkYCBwcm9wLlxuICBjb25zdCBjYW5ub3RCZVVzZWQgPSBpc0Rpc2FibGVkKHByb3BzKTtcblxuICByZXR1cm4ge1xuICAgICRkcm9wRG93bk1lbnU6IHVuZGVmaW5lZCxcblxuICAgIC4uLigkZHJvcERvd25NZW51Lm9wZW5PbiA9PT0gXCJob3ZlclwiID8ge30gOiB7IHRhYkluZGV4OiBwcm9wcy50YWJJbmRleCA/PyAwIH0pLFxuXG4gICAgLy8gQW4gZWxlbWVudCB0aGF0IGFuc3dlcnMgYSBjbGljayB3aXRoIGEgbWVudSBpcyBhIGJ1dHRvbiwgYW5kIHRoZSBjdXJzb3IgaXMgaG93IGl0IHNheXMgc29cbiAgICAvLyAtLSBvciBzYXlzIHRoYXQgaXQgY2Fubm90IHJpZ2h0IG5vdy4gQm90aCB3b3VsZCBvdGhlcndpc2UgY29tZSBmcm9tIGEgY2xpY2sgaGFuZGxlciBzdWNoIGFuXG4gICAgLy8gZWxlbWVudCBoYXMgbm8gcmVhc29uIHRvIGhhdmUuIE9ubHkgYSBjbGljazogc29tZXRoaW5nIHJpZ2h0LWNsaWNrZWQgaXMgbm90IGEgYnV0dG9uLCBhbmQgYVxuICAgIC8vIHJvdyB0aGF0IHJldmVhbHMgYSBtZW51IG9uIGhvdmVyIGlzIGEgcm93LlxuICAgIC4uLihvcGVuc09uQ2xpY2sgJiYge1xuICAgICAgcm9sZTogcm9sZSA/PyBcImJ1dHRvblwiLFxuICAgICAgJGN1cnNvcjogJGN1cnNvciA/PyAoY2Fubm90QmVVc2VkID8gXCJub3QtYWxsb3dlZFwiIDogXCJwb2ludGVyXCIpLFxuICAgIH0pLFxuXG4gICAgLy8gVGhlIGVsZW1lbnQgbWF5IHR1cm4gb3V0IHRvIGJlIHRoZSBhbmNob3Igb2YgaXRzIG93biBtZW51LCB3aGljaCBvbmx5IGl0cyB3cmFwcGVyIGNhbiB0ZWxsLFxuICAgIC8vIHJlbmRlcmluZyB3aXRoaW4gd2hhdGV2ZXIgYW5jaG9ycyBlbmNsb3NlIHRoZSBlbGVtZW50OyB0aGlzIGxldHMgdGhlIG5hbWUgaXQgaXMgdGhlbiBnaXZlblxuICAgIC8vIHRha2UgZWZmZWN0LlxuICAgICRjbGFzc05hbWU6IGNzc05hbWVzKCRjbGFzc05hbWUsIGFuY2hvcmFibGVDbGFzc05hbWUpLFxuXG4gICAgJHdyYXBwZXI6IHtcbiAgICAgIENvbXBvbmVudDogRHJvcERvd25NZW51V3JhcHBlckNvbXBvbmVudCxcbiAgICAgIHByb3BzOiB7IGRyb3BEb3duTWVudTogJGRyb3BEb3duTWVudSB9LFxuICAgIH0sXG4gIH07XG59KTtcbiIsICJpbXBvcnQgeyBnZXRQbHVnaW4sIHR5cGUgQ29udHJpYnV0ZVByb3BzLCB0eXBlIENvbnRyaWJ1dGVSZWYgfSBmcm9tIFwiQGs4c2xlbnMvZWxlbWVudC1jb21wb25lbnRcIjtcbmltcG9ydCB7IGNzc05hbWVzIH0gZnJvbSBcIkBrOHNsZW5zL3B1YmxpYy11dGlsaXRpZXNcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlSWQsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9hbmNob3IubW9kdWxlLnNjc3NcIjtcbmltcG9ydCB0eXBlIHsgUG9zaXRpb24yZCB9IGZyb20gXCIuLi9jbGlja2FibGUvY2xpY2thYmxlXCI7XG5pbXBvcnQgeyB0eXBlIFRTaGlydFNpemUsIHRTaGlydFNpemVJblBpeGVscyB9IGZyb20gXCIuLi9fc2hhcmVkL3NpemVzXCI7XG5pbXBvcnQgdHlwZSB7IGNsYXNzTmFtZVBsdWdpbiB9IGZyb20gXCIuLi9jbGFzcy1uYW1lL2NsYXNzLW5hbWVcIjtcbmltcG9ydCB0eXBlIHsgY29sb3JQbHVnaW4gfSBmcm9tIFwiLi4vY29sb3IvY29sb3JcIjtcbmltcG9ydCB0eXBlIHsgYmFja2dyb3VuZENvbG9yUGx1Z2luIH0gZnJvbSBcIi4uL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvclwiO1xuaW1wb3J0IHR5cGUgeyBib3JkZXJQbHVnaW4gfSBmcm9tIFwiLi4vYm9yZGVyL2JvcmRlclwiO1xuaW1wb3J0IHR5cGUgeyBwYWRkaW5nUGx1Z2luIH0gZnJvbSBcIi4uL3BhZGRpbmcvcGFkZGluZ1wiO1xuaW1wb3J0IHR5cGUgeyBtYXJnaW5QbHVnaW4gfSBmcm9tIFwiLi4vbWFyZ2luL21hcmdpblwiO1xuaW1wb3J0IHR5cGUgeyBvdmVyZmxvd1BsdWdpbiB9IGZyb20gXCIuLi9vdmVyZmxvdy9vdmVyZmxvd1wiO1xuXG4vKipcbiAqIFdoZXJlIGFuIGVsZW1lbnQgc2l0cyByZWxhdGl2ZSB0byBpdHMgYW5jaG9yOiBhIHNpZGUgb2YgdGhlIGFuY2hvciwgb3B0aW9uYWxseSByZWZpbmVkIHdpdGggaG93XG4gKiB0aGUgZWxlbWVudCBleHRlbmRzIGFsb25nIHRoYXQgc2lkZS4gQSBiYXJlIHNpZGUgY2VudGVycyB0aGUgZWxlbWVudCBvbiBpdDsgYHNwYW4tPGRpcmVjdGlvbj5gXG4gKiBhbGlnbnMgdGhlaXIgZWRnZXMgYW5kIGxldHMgdGhlIGVsZW1lbnQgZXh0ZW5kIHRvd2FyZCB0aGF0IGRpcmVjdGlvbi5cbiAqXG4gKiBXaGVuIHRoZSBlbGVtZW50IHdvdWxkIG5vdCBmaXQgdGhlIHZpZXdwb3J0LCBpdCBmYWxscyBiYWNrIHRvIHRoZSBtaXJyb3JlZCBwb3NpdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIEFuY2hvclBvc2l0aW9uID1cbiAgfCBcInRvcFwiXG4gIHwgXCJib3R0b21cIlxuICB8IFwibGVmdFwiXG4gIHwgXCJyaWdodFwiXG4gIHwgXCJ0b3Agc3Bhbi1sZWZ0XCJcbiAgfCBcInRvcCBzcGFuLXJpZ2h0XCJcbiAgfCBcImJvdHRvbSBzcGFuLWxlZnRcIlxuICB8IFwiYm90dG9tIHNwYW4tcmlnaHRcIlxuICB8IFwibGVmdCBzcGFuLXRvcFwiXG4gIHwgXCJsZWZ0IHNwYW4tYm90dG9tXCJcbiAgfCBcInJpZ2h0IHNwYW4tdG9wXCJcbiAgfCBcInJpZ2h0IHNwYW4tYm90dG9tXCI7XG5cbi8qKlxuICogRWl0aGVyIGEgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIG5lYXJlc3QgYW5jZXN0b3IgYCRhbmNob3JgLCBvciB0aGUgc2FtZSBwb3NpdGlvbiByZWxhdGl2ZSB0byBhXG4gKiBwb2ludCBpbiB0aGUgdmlld3BvcnQuXG4gKi9cbmV4cG9ydCB0eXBlIEFuY2hvcmVkQXQgPVxuICB8IEFuY2hvclBvc2l0aW9uXG4gIHwge1xuICAgICAgcmVhZG9ubHkgcG9zaXRpb246IEFuY2hvclBvc2l0aW9uO1xuXG4gICAgICAvKiogSG93IGZhciBmcm9tIHRoZSBhbmNob3IgdGhlIGVsZW1lbnQgc2l0cy4gRGVmYXVsdHMgdG8gYFwieHNcImAuICovXG4gICAgICByZWFkb25seSBnYXA/OiBUU2hpcnRTaXplO1xuXG4gICAgICAvKiogU2l0IGF0IHRoaXMgdmlld3BvcnQgcG9pbnQgaW5zdGVhZCBvZiBhdCBhbiBhbmNob3IuICovXG4gICAgICByZWFkb25seSBwb2ludD86IFBvc2l0aW9uMmQ7XG4gICAgfTtcblxuY29uc3QgZGVmYXVsdEdhcDogVFNoaXJ0U2l6ZSA9IFwieHNcIjtcblxuZXhwb3J0IHR5cGUgQW5jaG9yUGx1Z2luUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIC8qKlxuICAgKiBNYWtlcyB0aGUgZWxlbWVudCBhbiBhbmNob3IgZm9yIHRoZSBlbGVtZW50cyBvZiBpdHMgc3VidHJlZSB0aGF0IGRlY2xhcmUge0BsaW5rICRhbmNob3JlZEF0fS5cbiAgICogVGhlIG5lYXJlc3Qgc3VjaCBhbmNlc3RvciB3aW5zLCBzbyBuZXN0aW5nIHdvcmtzIHdpdGhvdXQgbmFtaW5nIGFueXRoaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgJGFuY2hvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9ucyB0aGUgZWxlbWVudCByZWxhdGl2ZSB0byBhbiBhbmNob3IsIGFib3ZlIGV2ZXJ5dGhpbmcgZWxzZSBvbiB0aGUgcGFnZSBcdTIwMTQgaXQgZXNjYXBlc1xuICAgKiBjbGlwcGluZyBhbmNlc3RvcnMgYW5kIHN0YWNraW5nIGNvbnRleHRzLCBzbyBpdCBuZWVkcyBubyBwb3J0YWwuXG4gICAqXG4gICAqIFRoZSBhbmNob3IgaXMgdGhlIG5lYXJlc3QgYW5jZXN0b3IgZGVjbGFyaW5nIHtAbGluayAkYW5jaG9yfSwgb3IgdGhlIGdpdmVuIHBvaW50IHdoZW4gYSBwb2ludFxuICAgKiBpcyBwcm92aWRlZCBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgJGFuY2hvcmVkQXQ/OiBBbmNob3JlZEF0O1xufTtcblxuY29uc3QgYW5jaG9yTmFtZUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuLyoqXG4gKiBMZXRzIHtAbGluayB1c2VBbmNob3JOYW1lRm9yfSBuYW1lIGFuIGVsZW1lbnQgYXMgYW4gYW5jaG9yLiBBIHBsdWdpbiB3aG9zZSB3cmFwcGVyIG1heSBhbmNob3JcbiAqIHdoYXQgaXQgcmVuZGVycyB0byB0aGUgZWxlbWVudCBpdHNlbGYgYWRkcyB0aGlzIHRvIHRoZSBlbGVtZW50J3MgYCRjbGFzc05hbWVgLiBUaGUgbmFtZSBmb2xsb3dzXG4gKiBvbmx5IHdoZW4gbm90aGluZyBlbHNlIGFuY2hvcnMgdGhlIGVsZW1lbnQsIHNvIHRoZSBjbGFzcyBhbG9uZSBjaGFuZ2VzIG5vdGhpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBhbmNob3JhYmxlQ2xhc3NOYW1lID0gc3R5bGVzLmFuY2hvcjtcblxuLyoqXG4gKiBUaGUgYW5jaG9yIG5hbWUgZm9yIHdoYXQgYSBwbHVnaW4ncyB3cmFwcGVyIHJlbmRlcnMgYmVzaWRlIGl0cyBlbGVtZW50IGFuZCBwb3NpdGlvbnMgd2l0aFxuICogYCRhbmNob3JlZEF0YCBcdTIwMTQgYSBtZW51LCBzYXk6IHRoYXQgb2YgdGhlIG5lYXJlc3QgYCRhbmNob3JgIGFyb3VuZCB0aGUgZWxlbWVudCwgdGhlIGVsZW1lbnQncyBvd25cbiAqIGluY2x1ZGVkLCBvciBmYWlsaW5nIHRoYXQgYSBuYW1lIG9mIHRoZSBlbGVtZW50J3Mgb3duLCB3aGljaCB0aGlzIGdpdmVzIGl0LiBSZW5kZXIgd2hhdCBpc1xuICogcG9zaXRpb25lZCBpbnNpZGUge0BsaW5rIEFuY2hvck5hbWVQcm92aWRlcn0gd2l0aCB0aGUgcmV0dXJuZWQgbmFtZSwgc28gaXQgZmluZHMgaXRzIGFuY2hvci5cbiAqXG4gKiBUaGUgZWxlbWVudCBuZWVkcyB7QGxpbmsgYW5jaG9yYWJsZUNsYXNzTmFtZX0gZm9yIGEgbmFtZSBvZiBpdHMgb3duIHRvIHRha2UgZWZmZWN0LCBhbmQgaXMgbmFtZWRcbiAqIG9ubHkgd2hpbGUgYGlzQW5jaG9yaW5nYDogd2hpbGUgd2hhdCBpcyBwb3NpdGlvbmVkIGFnYWluc3QgaXQgaXMgc2hvd24uXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VBbmNob3JOYW1lRm9yID0gKGVsZW1lbnRSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+LCBpc0FuY2hvcmluZzogYm9vbGVhbikgPT4ge1xuICBjb25zdCBlbmNsb3NpbmdBbmNob3JOYW1lID0gdXNlQ29udGV4dChhbmNob3JOYW1lQ29udGV4dCk7XG4gIGNvbnN0IGFuY2hvcnNJdHNlbGYgPSBpc0FuY2hvcmluZyAmJiBlbmNsb3NpbmdBbmNob3JOYW1lID09PSB1bmRlZmluZWQ7XG5cbiAgLy8gTmFtZWQgdGhlIGZpcnN0IHRpbWUgaXQgYW5jaG9ycyByYXRoZXIgdGhhbiBmcm9tIHVzZUlkOiBldmVyeSBlbGVtZW50IHRoYXQgbWF5IG9wZW4gYSBtZW51XG4gIC8vIHdvdWxkIG90aGVyd2lzZSB0YWtlIGFuIGlkLCBzaGlmdGluZyB0aG9zZSBvZiBldmVyeXRoaW5nIHJlbmRlcmVkIGFmdGVyIGl0LlxuICBjb25zdCBvd25BbmNob3JOYW1lUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBpZiAoYW5jaG9yc0l0c2VsZiAmJiBvd25BbmNob3JOYW1lUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgIG93bkFuY2hvck5hbWVSZWYuY3VycmVudCA9IGAtLWFuY2hvci1vd24tJHsrK293bkFuY2hvck5hbWVDb3VudH1gO1xuICB9XG5cbiAgY29uc3Qgb3duQW5jaG9yTmFtZSA9IG93bkFuY2hvck5hbWVSZWYuY3VycmVudDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50UmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIWFuY2hvcnNJdHNlbGYgfHwgIWVsZW1lbnQgfHwgb3duQW5jaG9yTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShhbmNob3JOYW1lUHJvcGVydHksIG93bkFuY2hvck5hbWUpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoYW5jaG9yTmFtZVByb3BlcnR5KTtcblxuICAgICAgLy8gTGVmdCBhcyBpdCB3YXMgZm91bmQ6IGFuIGVsZW1lbnQgd2l0aCBubyBzdHlsZSBvZiBpdHMgb3duIGtlZXBzIG5vIGVtcHR5IGF0dHJpYnV0ZS5cbiAgICAgIGlmIChlbGVtZW50LmdldEF0dHJpYnV0ZShcInN0eWxlXCIpID09PSBcIlwiKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwic3R5bGVcIik7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW2FuY2hvcnNJdHNlbGYsIG93bkFuY2hvck5hbWUsIGVsZW1lbnRSZWZdKTtcblxuICByZXR1cm4gZW5jbG9zaW5nQW5jaG9yTmFtZSA/PyBvd25BbmNob3JOYW1lO1xufTtcblxubGV0IG93bkFuY2hvck5hbWVDb3VudCA9IDA7XG5cbi8qKiBUZWxscyB3aGF0IGlzIHJlbmRlcmVkIGluc2lkZSB3aGljaCBhbmNob3IgdG8gcG9zaXRpb24gYWdhaW5zdDsgc2VlIHtAbGluayB1c2VBbmNob3JOYW1lRm9yfS4gKi9cbmV4cG9ydCBjb25zdCBBbmNob3JOYW1lUHJvdmlkZXIgPSBhbmNob3JOYW1lQ29udGV4dC5Qcm92aWRlcjtcblxudHlwZSBBbmNob3JXcmFwcGVyUHJvcHMgPSB7XG4gIHJlYWRvbmx5IGlzQW5jaG9yOiBib29sZWFuO1xuICByZWFkb25seSBhbmNob3JlZEF0OiBBbmNob3JlZEF0IHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBjb250cmlidXRlUmVmOiBDb250cmlidXRlUmVmO1xuICByZWFkb25seSBjb250cmlidXRlUHJvcHM6IENvbnRyaWJ1dGVQcm9wcztcbiAgcmVhZG9ubHkgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEFuY2hvcldyYXBwZXJDb21wb25lbnQgPSAoe1xuICBpc0FuY2hvcixcbiAgYW5jaG9yZWRBdCxcbiAgY29udHJpYnV0ZVJlZixcbiAgY29udHJpYnV0ZVByb3BzLFxuICBjaGlsZHJlbixcbn06IEFuY2hvcldyYXBwZXJQcm9wcykgPT4ge1xuICBjb25zdCBvd25BbmNob3JOYW1lID0gdG9BbmNob3JOYW1lKHVzZUlkKCkpO1xuICBjb25zdCBpbmhlcml0ZWRBbmNob3JOYW1lID0gdXNlQ29udGV4dChhbmNob3JOYW1lQ29udGV4dCk7XG4gIGNvbnN0IGVsZW1lbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgcG9pbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICBjb250cmlidXRlUmVmKFxuICAgIHVzZUNhbGxiYWNrKChlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIGVsZW1lbnRSZWYuY3VycmVudCA9IGVsZW1lbnQ7XG4gICAgfSwgW10pLFxuICApO1xuXG4gIGNvbnN0IHBvc2l0aW9uID0gdHlwZW9mIGFuY2hvcmVkQXQgPT09IFwic3RyaW5nXCIgPyBhbmNob3JlZEF0IDogYW5jaG9yZWRBdD8ucG9zaXRpb247XG4gIGNvbnN0IHBvaW50ID0gdHlwZW9mIGFuY2hvcmVkQXQgPT09IFwib2JqZWN0XCIgPyBhbmNob3JlZEF0LnBvaW50IDogdW5kZWZpbmVkO1xuICBjb25zdCBnYXAgPSB0eXBlb2YgYW5jaG9yZWRBdCA9PT0gXCJvYmplY3RcIiA/IChhbmNob3JlZEF0LmdhcCA/PyBkZWZhdWx0R2FwKSA6IGRlZmF1bHRHYXA7XG5cbiAgaWYgKHBvc2l0aW9uICYmICFwb2ludCAmJiAhaW5oZXJpdGVkQW5jaG9yTmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUcmllZCB0byBwb3NpdGlvbiBhbiBlbGVtZW50IGF0IFwiJHtwb3NpdGlvbn1cIiB3aXRob3V0IGFuIGFuY2hvci4gRWl0aGVyIGdpdmUgYW4gYW5jZXN0b3IgdGhlICRhbmNob3IgcHJvcCwgb3IgYW5jaG9yIHRvIGEgcG9pbnQgaW5zdGVhZC5gLFxuICAgICk7XG4gIH1cblxuICAvLyBBIHBvaW50IGFuY2hvciBpcyB0aGUgZWxlbWVudCdzIG93bjsgb3RoZXJ3aXNlIGl0IHBvc2l0aW9ucyBhZ2FpbnN0IHdoYXRldmVyIGFuY2hvciBlbmNsb3NlcyBpdC5cbiAgY29uc3QgYW5jaG9yTmFtZVRvUG9zaXRpb25BZ2FpbnN0ID0gcG9pbnQgPyBvd25BbmNob3JOYW1lIDogaW5oZXJpdGVkQW5jaG9yTmFtZTtcblxuICBpZiAoYW5jaG9yZWRBdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJpYnV0ZVByb3BzKHsgcG9wb3ZlcjogXCJtYW51YWxcIiB9KTtcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYuY3VycmVudDtcblxuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0FuY2hvcikge1xuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShhbmNob3JOYW1lUHJvcGVydHksIG93bkFuY2hvck5hbWUpO1xuICAgIH1cblxuICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShwb3NpdGlvblByb3BlcnR5LCBwb3NpdGlvbik7XG4gICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGdhcFByb3BlcnR5LCBgJHt0U2hpcnRTaXplSW5QaXhlbHMoZ2FwKX1weGApO1xuXG4gICAgICAvLyBPbmx5IHRvd2FyZCB0aGUgYW5jaG9yLCBzbyB0aGUgZWxlbWVudCBzdGlsbCBsaW5lcyB1cCB3aXRoIGl0IG9uIHRoZSBvdGhlciBheGlzLiBBXG4gICAgICAvLyBmYWxsYmFjayB0aGF0IG1pcnJvcnMgdGhlIHBvc2l0aW9uIG1pcnJvcnMgdGhpcyBtYXJnaW4gd2l0aCBpdC5cbiAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkobWFyZ2luUHJvcGVydHlUb3dhcmRzQW5jaG9yKHBvc2l0aW9uKSwgYCR7dFNoaXJ0U2l6ZUluUGl4ZWxzKGdhcCl9cHhgKTtcblxuICAgICAgaWYgKGFuY2hvck5hbWVUb1Bvc2l0aW9uQWdhaW5zdCkge1xuICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHBvc2l0aW9uQW5jaG9yUHJvcGVydHksIGFuY2hvck5hbWVUb1Bvc2l0aW9uQWdhaW5zdCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwb2ludCkge1xuICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHBvaW50WFByb3BlcnR5LCBgJHtwb2ludC54fXB4YCk7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocG9pbnRZUHJvcGVydHksIGAke3BvaW50Lnl9cHhgKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8vIFRoZSBwb2ludCByaXNlcyB0byB0aGUgdG9wIGxheWVyIGFsb25nIHdpdGggd2hhdCBpcyBhbmNob3JlZCB0byBpdC4gQSBgZml4ZWRgIGVsZW1lbnQgcmVzb2x2ZXNcbiAgLy8gYWdhaW5zdCB0aGUgbmVhcmVzdCBhbmNlc3RvciB0aGF0IHRyYW5zZm9ybXMsIGZpbHRlcnMgb3IgY29udGFpbnMgaXRzIHN1YnRyZWUsIHNvIGEgcG9pbnQgbGVmdFxuICAvLyBpbiB0aGUgdHJlZSBsYW5kcyBhdCB0aGUgY3Vyc29yIHBsdXMgdGhhdCBhbmNlc3RvcidzIG93biBvZmZzZXQgXHUyMDE0IHdoaWNoIGlzIGhvdyBhIG1lbnUgb3BlbmVkXG4gIC8vIG92ZXIgYSBuYXZpZ2F0b3IgaXRlbSB1c2VkIHRvIGFwcGVhciBodW5kcmVkcyBvZiBwaXhlbHMgYmVsb3cgdGhlIGN1cnNvci5cbiAgLy9cbiAgLy8gU2hvd24gYmVmb3JlIHRoZSBlbGVtZW50IGFuY2hvcmVkIHRvIGl0OiBhbiBhbmNob3IgaGFzIHRvIHJlYWNoIHRoZSB0b3AgbGF5ZXIgZmlyc3QsIG9yIHRoZVxuICAvLyBlbGVtZW50IHBvc2l0aW9uaW5nIGFnYWluc3QgaXQgZmluZHMgbm8gYW5jaG9yIGF0IGFsbCBhbmQgbGFuZHMgaW4gdGhlIHZpZXdwb3J0J3MgY29ybmVyLlxuICAvL1xuICAvLyBPbmNlLCBvbiBtb3VudDogYW4gZWxlbWVudCBpcyBhbmNob3JlZCB0byBhIHBvaW50IGZvciBhcyBsb25nIGFzIGl0IGlzIG1vdW50ZWQsIHNpbmNlIHRoZSBwb2ludFxuICAvLyBpcyB3aGVyZSB0aGUgY3Vyc29yIHdhcyB3aGVuIHdoYXRldmVyIG9wZW5lZCBpdCB3YXMgb3BlbmVkLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBwb2ludFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFlbGVtZW50IHx8ICFpc1BvcG92ZXJDYXBhYmxlKGVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZWxlbWVudC5zaG93UG9wb3ZlcigpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LmlzQ29ubmVjdGVkKSB7XG4gICAgICAgIGVsZW1lbnQuaGlkZVBvcG92ZXIoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFJlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFwb3NpdGlvbiB8fCAhZWxlbWVudCB8fCAhaXNQb3BvdmVyQ2FwYWJsZShlbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuc2hvd1BvcG92ZXIoKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC5pc0Nvbm5lY3RlZCkge1xuICAgICAgICBlbGVtZW50LmhpZGVQb3BvdmVyKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSwgW3Bvc2l0aW9uXSk7XG5cbiAgY29uc3QgY29udGVudCA9IHBvaW50ID8gKFxuICAgIDw+XG4gICAgICB7LyogQSB6ZXJvLXNpemUgYW5jaG9yIGF0IHRoZSBwb2ludCwgc28gYSBjdXJzb3ItYW5jaG9yZWQgZWxlbWVudCBwb3NpdGlvbnMgbGlrZSBhbnkgb3RoZXIuICovfVxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3BvaW50UmVmIGFzIFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD59XG4gICAgICAgIHBvcG92ZXI9XCJtYW51YWxcIlxuICAgICAgICBkYXRhLWFuY2hvci1wb2ludC10ZXN0XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmFuY2hvclBvaW50fVxuICAgICAgICBzdHlsZT17XG4gICAgICAgICAge1xuICAgICAgICAgICAgW2FuY2hvck5hbWVQcm9wZXJ0eV06IG93bkFuY2hvck5hbWUsXG4gICAgICAgICAgICBbcG9pbnRYUHJvcGVydHldOiBgJHtwb2ludC54fXB4YCxcbiAgICAgICAgICAgIFtwb2ludFlQcm9wZXJ0eV06IGAke3BvaW50Lnl9cHhgLFxuICAgICAgICAgIH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllc1xuICAgICAgICB9XG4gICAgICAvPlxuXG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC8+XG4gICkgOiAoXG4gICAgY2hpbGRyZW5cbiAgKTtcblxuICBpZiAoaXNBbmNob3IpIHtcbiAgICByZXR1cm4gPGFuY2hvck5hbWVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtvd25BbmNob3JOYW1lfT57Y29udGVudH08L2FuY2hvck5hbWVDb250ZXh0LlByb3ZpZGVyPjtcbiAgfVxuXG4gIHJldHVybiA8Pntjb250ZW50fTwvPjtcbn07XG5cbmV4cG9ydCBjb25zdCBhbmNob3JQbHVnaW4gPSBnZXRQbHVnaW48XG4gIEFuY2hvclBsdWdpblByb3BzLFxuICBbXG4gICAgdHlwZW9mIGNsYXNzTmFtZVBsdWdpbixcbiAgICB0eXBlb2YgY29sb3JQbHVnaW4sXG4gICAgdHlwZW9mIGJhY2tncm91bmRDb2xvclBsdWdpbixcbiAgICB0eXBlb2YgYm9yZGVyUGx1Z2luLFxuICAgIHR5cGVvZiBwYWRkaW5nUGx1Z2luLFxuICAgIHR5cGVvZiBtYXJnaW5QbHVnaW4sXG4gICAgdHlwZW9mIG92ZXJmbG93UGx1Z2luLFxuICBdXG4+KChwcm9wcykgPT4ge1xuICBjb25zdCB7ICRhbmNob3IsICRhbmNob3JlZEF0LCAkY2xhc3NOYW1lIH0gPSBwcm9wcztcblxuICBpZiAoISRhbmNob3IgJiYgJGFuY2hvcmVkQXQgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7ICRhbmNob3I6IHVuZGVmaW5lZCwgJGFuY2hvcmVkQXQ6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAkYW5jaG9yOiB1bmRlZmluZWQsXG4gICAgJGFuY2hvcmVkQXQ6IHVuZGVmaW5lZCxcblxuICAgIC8vIFJpc2luZyB0byB0aGUgdG9wIGxheWVyIGlzIGEgdGVjaG5pY2FsaXR5IG9mIHBvc2l0aW9uaW5nLCBidXQgdGhlIGJyb3dzZXIgbWFrZXMgaXQgYSBsb29rOlxuICAgIC8vIGNvbG91cnMgb2YgaXRzIG93biwgYSBib3JkZXIsIHBhZGRpbmcsIGFuZCBhIG1hcmdpbiB0aGF0IHdvdWxkIGNlbnRlciB0aGUgZWxlbWVudC4gVW5kbyB0aGF0LFxuICAgIC8vIHNvIGFuIGVsZW1lbnQgcG9zaXRpb25lZCB0aGlzIHdheSBsb29rcyBsaWtlIGl0IGRvZXMgYW55d2hlcmUgZWxzZSwgYW5kIGxldCB3aGF0ZXZlciBpdCBzYXlzXG4gICAgLy8gYWJvdXQgaXRzZWxmIHdpbi5cbiAgICAuLi4oJGFuY2hvcmVkQXQgIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgICAkY29sb3I6IHByb3BzLiRjb2xvciA/PyBcImluaGVyaXRcIixcbiAgICAgICRiYWNrZ3JvdW5kQ29sb3I6IHByb3BzLiRiYWNrZ3JvdW5kQ29sb3IgPz8gXCJ0cmFuc3BhcmVudFwiLFxuICAgICAgJGJvcmRlcjogeyB3aWR0aDogXCJ6ZXJvXCIsIC4uLnByb3BzLiRib3JkZXIgfSxcbiAgICAgICRwYWRkaW5nOiBwcm9wcy4kcGFkZGluZyA/PyBcInplcm9cIixcbiAgICAgICRtYXJnaW46IHByb3BzLiRtYXJnaW4gPz8gXCJ6ZXJvXCIsXG4gICAgICAkb3ZlcmZsb3c6IHByb3BzLiRvdmVyZmxvdyA/PyBcInZpc2libGVcIixcbiAgICB9KSxcblxuICAgICRjbGFzc05hbWU6IGNzc05hbWVzKCRjbGFzc05hbWUsIHtcbiAgICAgIFtzdHlsZXMuYW5jaG9yXTogISEkYW5jaG9yLFxuICAgICAgW3N0eWxlcy5hbmNob3JlZEF0XTogJGFuY2hvcmVkQXQgIT09IHVuZGVmaW5lZCxcbiAgICB9KSxcblxuICAgICR3cmFwcGVyOiB7XG4gICAgICBDb21wb25lbnQ6IEFuY2hvcldyYXBwZXJDb21wb25lbnQsXG4gICAgICBwcm9wczogeyBpc0FuY2hvcjogISEkYW5jaG9yLCBhbmNob3JlZEF0OiAkYW5jaG9yZWRBdCB9LFxuICAgIH0sXG4gIH07XG59KTtcblxuY29uc3QgbWFyZ2luUHJvcGVydHlUb3dhcmRzQW5jaG9yID0gKHBvc2l0aW9uOiBBbmNob3JQb3NpdGlvbikgPT4ge1xuICBpZiAocG9zaXRpb24uc3RhcnRzV2l0aChcImJvdHRvbVwiKSkge1xuICAgIHJldHVybiBcIm1hcmdpbi10b3BcIjtcbiAgfVxuXG4gIGlmIChwb3NpdGlvbi5zdGFydHNXaXRoKFwidG9wXCIpKSB7XG4gICAgcmV0dXJuIFwibWFyZ2luLWJvdHRvbVwiO1xuICB9XG5cbiAgcmV0dXJuIHBvc2l0aW9uLnN0YXJ0c1dpdGgoXCJyaWdodFwiKSA/IFwibWFyZ2luLWxlZnRcIiA6IFwibWFyZ2luLXJpZ2h0XCI7XG59O1xuXG5jb25zdCBhbmNob3JOYW1lUHJvcGVydHkgPSBcIi0tYW5jaG9yLW5hbWVcIjtcbmNvbnN0IGdhcFByb3BlcnR5ID0gXCItLWFuY2hvci1nYXBcIjtcbmNvbnN0IHBvc2l0aW9uQW5jaG9yUHJvcGVydHkgPSBcIi0tYW5jaG9yLXRhcmdldFwiO1xuY29uc3QgcG9zaXRpb25Qcm9wZXJ0eSA9IFwiLS1hbmNob3ItcG9zaXRpb25cIjtcbmNvbnN0IHBvaW50WFByb3BlcnR5ID0gXCItLWFuY2hvci1wb2ludC14XCI7XG5jb25zdCBwb2ludFlQcm9wZXJ0eSA9IFwiLS1hbmNob3ItcG9pbnQteVwiO1xuXG4vKiogQW5jaG9yIG5hbWVzIGFyZSBkYXNoZWQgaWRlbnRzLCBzbyB0aGUgZ2VuZXJhdGVkIGlkIGhhcyB0byBsb3NlIGV2ZXJ5dGhpbmcgZWxzZS4gKi9cbmNvbnN0IHRvQW5jaG9yTmFtZSA9IChpZDogc3RyaW5nKSA9PiBgLS1hbmNob3ItJHtpZC5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgXCJcIil9YDtcblxudHlwZSBQb3BvdmVyQ2FwYWJsZSA9IEhUTUxFbGVtZW50ICYgeyBzaG93UG9wb3ZlcjogVm9pZEZ1bmN0aW9uOyBoaWRlUG9wb3ZlcjogVm9pZEZ1bmN0aW9uIH07XG5cbmNvbnN0IGlzUG9wb3ZlckNhcGFibGUgPSAoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBlbGVtZW50IGlzIFBvcG92ZXJDYXBhYmxlID0+XG4gIHR5cGVvZiAoZWxlbWVudCBhcyBQYXJ0aWFsPFBvcG92ZXJDYXBhYmxlPikuc2hvd1BvcG92ZXIgPT09IFwiZnVuY3Rpb25cIjtcbiIsICJpbXBvcnQgdHlwZSB7IEZvY3VzYWJsZVBsdWdpblByb3BzIH0gZnJvbSBcIi4vZm9jdXNhYmxlXCI7XG5cbmV4cG9ydCB0eXBlICRGb2N1c2FibGVQcm9wczxGb2N1c2VkSXRlbT4gPSBSZXF1aXJlZDxGb2N1c2FibGVQbHVnaW5Qcm9wczxGb2N1c2VkSXRlbT4+W1wiJGZvY3VzYWJsZVwiXTtcblxuLyoqXG4gKiBJZGVudGlmaWVzIGEgc2V0IG9mIGZvY3VzYWJsZXMgY29tcGV0aW5nIGZvciBvbmUgZm9jdXNlZCBpdGVtLiBFbGVtZW50cyBqb2luIGl0IGJ5IGRlY2xhcmluZ1xuICogYCRmb2N1c2FibGVgOyBub3RoaW5nIGVudW1lcmF0ZXMgdGhlbSBhdCB0aGUgY2FsbCBzaXRlLlxuICovXG5leHBvcnQgdHlwZSBGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPiA9IHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgaXNLZXlib2FyZE5hdmlnYWJsZTogZmFsc2U7XG4gIGZvY3VzYWJsZTogKGl0ZW06IEZvY3VzZWRJdGVtKSA9PiAkRm9jdXNhYmxlUHJvcHM8Rm9jdXNlZEl0ZW0+O1xufTtcblxuLyoqIFdoaWNoIGFycm93IGtleXMgbW92ZSBmb2N1cyB3aXRoaW4gYSBrZXlib2FyZC1uYXZpZ2FibGUgY29udGV4dC4gKi9cbmV4cG9ydCB0eXBlIEtleWJvYXJkTmF2aWdhdGlvbk9yaWVudGF0aW9uID0gXCJ2ZXJ0aWNhbFwiIHwgXCJob3Jpem9udGFsXCIgfCBcImJvdGhcIjtcblxuLyoqXG4gKiBBIGZvY3VzYWJsZSBjb250ZXh0IHdob3NlIG1lbWJlcnMgYXJlIGFsc28gbmF2aWdhdGVkIHdpdGggYXJyb3cga2V5cywgaW4gdGhlIG9yZGVyIHRoZXkgc3RhdGUuXG4gKiBUaGUgbG93ZXN0IG9yZGVyIG51bWJlciBpcyBmb2N1c2VkIHdoZW4gdGhlIG1lbWJlcnMgYXBwZWFyLCB1bmxlc3MgdGhlIGNvbnRleHQgc2F5cyBvdGhlcndpc2UsXG4gKiBhbmQgZm9jdXMgcmV0dXJucyB0byB0aGUgZW5jbG9zaW5nIGNvbnRleHQgd2hlbiB0aGV5IGdvIGF3YXkuXG4gKi9cbmV4cG9ydCB0eXBlIEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzS2V5Ym9hcmROYXZpZ2FibGU6IHRydWU7XG4gIHJlYWRvbmx5IG9yaWVudGF0aW9uOiBLZXlib2FyZE5hdmlnYXRpb25PcmllbnRhdGlvbjtcbiAgcmVhZG9ubHkgdGFrZXNGb2N1c0FzSXRBcHBlYXJzOiBib29sZWFuO1xuICBmb2N1c2FibGU6IChpdGVtOiBGb2N1c2VkSXRlbSwgb3JkZXJOdW1iZXI6IG51bWJlcikgPT4gJEZvY3VzYWJsZVByb3BzPEZvY3VzZWRJdGVtPjtcbn07XG5cbmV4cG9ydCB0eXBlIEFueUZvY3VzYWJsZUNvbnRleHQ8Rm9jdXNlZEl0ZW0gPSBhbnk+ID1cbiAgfCBGb2N1c2FibGVDb250ZXh0PEZvY3VzZWRJdGVtPlxuICB8IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT47XG5cbmNvbnN0IGNvbnRleHRzQnlLZXkgPSBuZXcgTWFwPHN0cmluZywgQW55Rm9jdXNhYmxlQ29udGV4dD4oKTtcblxuLyoqXG4gKiBEZWNsYXJlcyBhIGZvY3VzYWJsZSBjb250ZXh0LiBUaGUgc2FtZSBpZCBhbHdheXMgeWllbGRzIHRoZSBzYW1lIGNvbnRleHQsIHNvIGNhbGxpbmcgdGhpcyBkdXJpbmdcbiAqIHJlbmRlciBpcyBzdGFibGUgXHUyMDE0IHdoaWNoIGlzIHdoYXQgbGV0cyBhIHN1cmZhY2Ugd2l0aCBzZXZlcmFsIGxpdmUgaW5zdGFuY2VzIG5hbWUgb25lIGNvbnRleHQgcGVyXG4gKiBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEZvY3VzYWJsZUNvbnRleHQgPSA8Rm9jdXNlZEl0ZW0sPihpZDogc3RyaW5nKTogRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPT5cbiAgZ2V0T3JDcmVhdGVDb250ZXh0KGBmb2N1c2FibGU6JHtpZH1gLCAoKSA9PiB7XG4gICAgY29uc3QgY29udGV4dDogRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPSB7XG4gICAgICBpZCxcbiAgICAgIGlzS2V5Ym9hcmROYXZpZ2FibGU6IGZhbHNlLFxuICAgICAgZm9jdXNhYmxlOiAoaXRlbSkgPT4gKHsgY29udGV4dCwgaXRlbSB9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH0pO1xuXG5leHBvcnQgdHlwZSBLZXlib2FyZE5hdmlnYWJsZUZvY3VzYWJsZUNvbnRleHRPcHRpb25zID0ge1xuICAvKipcbiAgICogV2hpY2ggYXJyb3cga2V5cyBtb3ZlIGZvY3VzLiBEb3dud2FyZHMgYnkgZGVmYXVsdCwgYXMgbW9zdCBzZXRzIG9mIHRoaW5ncyBhcmUgbGFpZCBvdXQ6IHRoZVxuICAgKiBrZXlzIG9mIHRoZSBvdGhlciBheGlzIGFyZSB0aGVuIGxlZnQgdG8gd2hhdGV2ZXIgdGhlIG1lbWJlcnMgd2FudCB0aGVtIGZvciwgc3VjaCBhcyBhIG1lbWJlclxuICAgKiBvcGVuaW5nIHNvbWV0aGluZyBvZiBpdHMgb3duIHdpdGggQXJyb3dSaWdodC5cbiAgICovXG4gIHJlYWRvbmx5IG9yaWVudGF0aW9uPzogS2V5Ym9hcmROYXZpZ2F0aW9uT3JpZW50YXRpb247XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxvd2VzdCBvcmRlciBudW1iZXIgaXMgZm9jdXNlZCBhcyB0aGUgbWVtYmVycyBhcHBlYXIuIEl0IGlzIGJ5IGRlZmF1bHQ6IGEgc2V0IG9mXG4gICAqIG1lbWJlcnMgYXBwZWFyaW5nIGlzIHVzdWFsbHkgc29tZXRoaW5nIHRoZSB1c2VyIGFza2VkIGZvciBhbmQgd2lsbCBnbyBvbiB3aXRoLiBOb3Qgc28gZm9yIGEgc2V0XG4gICAqIHRoYXQgYXBwZWFycyBiZWNhdXNlIHRoZSBwb2ludGVyIHJlc3RzIG9uIHNvbWV0aGluZywgd2hlcmUgd2hhdCB0aGUgdXNlciBpcyBsb29raW5nIGF0IGlzIHdoYXRcbiAgICogdGhlIHBvaW50ZXIgaXMgb24sIGFuZCBmb2N1cyBzdGF5cyB0aGVyZSB1bnRpbCBlaXRoZXIgdGhlIHBvaW50ZXIgb3IgdGhlIGtleWJvYXJkIG1vdmVzIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGFrZXNGb2N1c0FzSXRBcHBlYXJzPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogRGVjbGFyZXMgYSBmb2N1c2FibGUgY29udGV4dCB3aG9zZSBtZW1iZXJzIGFyZSBuYXZpZ2F0ZWQgd2l0aCBhcnJvdyBrZXlzLiBBcyB3aXRoXG4gKiB7QGxpbmsgZ2V0Rm9jdXNhYmxlQ29udGV4dH0sIHRoZSBzYW1lIGlkIGFsd2F5cyB5aWVsZHMgdGhlIHNhbWUgY29udGV4dCBcdTIwMTQgdGhlIHNhbWUgaWQgd2l0aCB0aGVcbiAqIHNhbWUgb3B0aW9ucywgdGhhdCBpcy4gQSBjb250ZXh0IHdpdGggb3RoZXIgb3B0aW9ucyBpcyBhIGNvbnRleHQgb2YgaXRzIG93biwgd2hhdGV2ZXIgaXQgaXNcbiAqIG5hbWVkLCBzbyBhIHN1cmZhY2UgdGhhdCBhc2tzIGZvciBpdHMgY29udGV4dCBieSB0aGUgc2FtZSBuYW1lIHdpdGggb3RoZXIgb3B0aW9ucyBtb3ZlcyBpdHNcbiAqIG1lbWJlcnMgdGhlcmUgYXMgdGhleSByZW5kZXIgYWdhaW4sIGFuZCB0aGV5IGFwcGVhciBhbmV3IGFzIGZhciBhcyB0aGF0IGNvbnRleHQgaXMgY29uY2VybmVkLlxuICovXG5leHBvcnQgY29uc3QgZ2V0S2V5Ym9hcmROYXZpZ2FibGVGb2N1c2FibGVDb250ZXh0ID0gPEZvY3VzZWRJdGVtLD4oXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dE9wdGlvbnMgPSB7fSxcbik6IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPT4ge1xuICBjb25zdCBvcmllbnRhdGlvbiA9IG9wdGlvbnMub3JpZW50YXRpb24gPz8gXCJ2ZXJ0aWNhbFwiO1xuICBjb25zdCB0YWtlc0ZvY3VzQXNJdEFwcGVhcnMgPSBvcHRpb25zLnRha2VzRm9jdXNBc0l0QXBwZWFycyA/PyB0cnVlO1xuXG4gIGNvbnN0IGtleSA9IGBrZXlib2FyZC1uYXZpZ2FibGU6JHtpZH18JHtvcmllbnRhdGlvbn18JHt0YWtlc0ZvY3VzQXNJdEFwcGVhcnMgPyBcInRha2luZ1wiIDogXCJsZWF2aW5nXCJ9LWZvY3VzYDtcblxuICByZXR1cm4gZ2V0T3JDcmVhdGVDb250ZXh0KGtleSwgKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEtleWJvYXJkTmF2aWdhYmxlRm9jdXNhYmxlQ29udGV4dDxGb2N1c2VkSXRlbT4gPSB7XG4gICAgICBpZCxcbiAgICAgIGlzS2V5Ym9hcmROYXZpZ2FibGU6IHRydWUsXG4gICAgICBvcmllbnRhdGlvbixcbiAgICAgIHRha2VzRm9jdXNBc0l0QXBwZWFycyxcbiAgICAgIGZvY3VzYWJsZTogKGl0ZW0sIG9yZGVyTnVtYmVyKSA9PiAoeyBjb250ZXh0LCBpdGVtLCBvcmRlck51bWJlciB9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH0pO1xufTtcblxuY29uc3QgZ2V0T3JDcmVhdGVDb250ZXh0ID0gPFQgZXh0ZW5kcyBBbnlGb2N1c2FibGVDb250ZXh0PihrZXk6IHN0cmluZywgY3JlYXRlOiAoKSA9PiBUKTogVCA9PiB7XG4gIGNvbnN0IGV4aXN0aW5nID0gY29udGV4dHNCeUtleS5nZXQoa2V5KTtcblxuICBpZiAoZXhpc3RpbmcpIHtcbiAgICByZXR1cm4gZXhpc3RpbmcgYXMgVDtcbiAgfVxuXG4gIGNvbnN0IGNyZWF0ZWQgPSBjcmVhdGUoKTtcblxuICBjb250ZXh0c0J5S2V5LnNldChrZXksIGNyZWF0ZWQpO1xuXG4gIHJldHVybiBjcmVhdGVkO1xufTtcbiIsICJpbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7ICRGb2N1c2FibGVQcm9wcyB9IGZyb20gXCIuL2dldC1mb2N1c2FibGUtY29udGV4dFwiO1xuXG4vKipcbiAqIENhcnJpZXMgdGhlIGZvY3VzYWJsZSBhbiBlbGVtZW50IGlzLCBhcyBkZWNpZGVkIGJ5IHRoZSBzdXJmYWNlIGl0IHJlbmRlcnMgaW4gcmF0aGVyIHRoYW4gYnkgdGhlXG4gKiBlbGVtZW50IGl0c2VsZjogd2hpY2ggY29udGV4dCBpdCBjb21wZXRlcyBpbiwgd2hpY2ggaXRlbSBpdCBzdGFuZHMgZm9yLCBhbmQgd2hlcmUgaXQgc2l0cyBhbW9uZ1xuICogdGhlIG90aGVycy5cbiAqXG4gKiBBIHN1cmZhY2UgdGhhdCBrbm93cyBpdHMgaXRlbXMgXHUyMDE0IGEgbWVudSwgYSB0b29sYmFyIFx1MjAxNCBwcm92aWRlcyBvbmUgb2YgdGhlc2UgcGVyIGl0ZW07IHdoYXRldmVyXG4gKiBkcmF3cyB0aGUgaXRlbSBhZG9wdHMgaXQgdGhyb3VnaCB7QGxpbmsgdXNlRm9jdXNhYmxlSXRlbX0gd2hpbGUga25vd2luZyBub3RoaW5nIGFib3V0IHRoZVxuICogc3VyZmFjZSwgd2hpY2ggaXMgd2hhdCBsZXRzIGEgZHVtYiBjb21wb25lbnQgYmUga2V5Ym9hcmQtbmF2aWdhYmxlIGluIG9uZSBzdXJmYWNlIGFuZCBvcmRpbmFyeVxuICogaW4gYW5vdGhlci5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvbnRleHRGb3JGb2N1c2FibGVJdGVtID0gY3JlYXRlQ29udGV4dDwkRm9jdXNhYmxlUHJvcHM8YW55PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuLyoqXG4gKiBUaGUgYCRmb2N1c2FibGVgIG9mIHRoZSBpdGVtIGEgY29tcG9uZW50IGRyYXdzLCB3aGVuIHRoZSBzdXJmYWNlIGFyb3VuZCBpdCBkZWNpZGVkIG9uZS5cbiAqIGB1bmRlZmluZWRgIG91dHNpZGUgc3VjaCBhIHN1cmZhY2UsIHdoaWNoIGlzIHdoYXQgbWFrZXMgYWRvcHRpbmcgaXQgYSBtYXR0ZXIgb2YgcGFzc2luZyBpdCBvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCBSb3cgPSAoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkgPT4gKFxuICogICA8Q2xpY2thYmxlTGkgJGZvY3VzYWJsZT17dXNlRm9jdXNhYmxlSXRlbSgpfT57Y2hpbGRyZW59PC9DbGlja2FibGVMaT5cbiAqICk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IHVzZUZvY3VzYWJsZUl0ZW0gPSAoKSA9PiB1c2VDb250ZXh0KGNvbnRleHRGb3JGb2N1c2FibGVJdGVtKTtcbiIsICJpbXBvcnQgeyB1c2VTeW5jSW5qZWN0IH0gZnJvbSBcIkBrOHNsZW5zL3VzZS1pbmplY3RcIjtcbmltcG9ydCB7IGdldEhvdmVyYWJsZUNvbnRleHQgfSBmcm9tIFwiLi4vaG92ZXJhYmxlXCI7XG5pbXBvcnQgeyB0eXBlIE11dGFibGVSZWZPYmplY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSB9IGZyb20gXCIuL19wcml2YXRlL2NvbnRleHQtaXMtYmVpbmctaG92ZXJlZC5pbmplY3RhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCB1c2VMb2NhbEhvdmVyYWJsZSA9IDxFbGVtIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KCkgPT4ge1xuICBjb25zdCBob3ZlcmFibGVDb250ZXh0ID0gdXNlTWVtbygoKSA9PiBnZXRIb3ZlcmFibGVDb250ZXh0PE11dGFibGVSZWZPYmplY3Q8RWxlbSB8IG51bGw+PigpLCBbXSk7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxFbGVtPihudWxsKTtcbiAgY29uc3QgaXRlbUJlaW5nSG92ZXJlZCA9IHVzZVN5bmNJbmplY3QoY29udGV4dElzQmVpbmdIb3ZlcmVkSW5qZWN0YWJsZSwgaG92ZXJhYmxlQ29udGV4dCk7XG5cbiAgcmV0dXJuIHtcbiAgICByZWYsXG4gICAgY29udGV4dDogaG92ZXJhYmxlQ29udGV4dC5ob3ZlcmFibGUocmVmKSxcbiAgICBjb21wb25lbnRJc0hvdmVyZWQ6IGl0ZW1CZWluZ0hvdmVyZWQsXG4gIH07XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ0FBLCtCQUFnRDtBQUVoRCxtQkFBK0M7QUF3RHRDO0FBcENGLElBQU0sb0JBQW9CLENBQUMsbUJBQWtEO0FBQ2xGLFFBQU0sK0JBQTJCLHFCQUEwQixNQUFTO0FBQ3BFLFFBQU0saUJBQWEscUJBQU8sY0FBYztBQUV4Qyw4QkFBVSxNQUFNO0FBQ2QsZUFBVyxVQUFVO0FBQUEsRUFDdkIsQ0FBQztBQUVELDhCQUFVLE1BQU07QUFDZCxVQUFNLDRCQUE0QixDQUFDLFVBQXdCO0FBQ3pELFVBQUksVUFBVSx5QkFBeUIsU0FBUztBQUM5QyxtQkFBVyxRQUFRLEtB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SUFBTSxtQkFBbUIsVUFBTSwyQkFBVyx1QkFBdUI7OztBQzFCeEUsSUFBQUMsc0JBQThCO0FBRTlCLElBQUFDLGlCQUF1RDtBQUdoRCxJQUFNLG9CQUFvQixNQUFnQztBQUMvRCxRQUFNLHVCQUFtQix3QkFBUSxNQUFNLG9CQUFtRCxHQUFHLENBQUMsQ0FBQztBQUMvRixRQUFNLFVBQU0sdUJBQWEsSUFBSTtBQUM3QixRQUFNLHVCQUFtQixtQ0FBYyxpQ0FBaUMsZ0JBQWdCO0FBRXhGLFNBQU87QUFBQSxJQUNMO0FBQUEsSUFDQSxTQUFTLGlCQUFpQixVQUFVLEdBQUc7QUFBQSxJQUN2QyxvQkFBb0I7QUFBQSxFQUN0QjtBQUNGOyIsCiAgIm5hbWVzIjogWyJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9qc3hfcnVudGltZSIsICJ0b0NvbnRleHRNYXAiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2luamVjdGFibGUiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfcmVhY3RfZG9tIiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9mcCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgInN0eWxlcyIsICJpbXBvcnRfZnAiLCAibG9kYXNoQ2FwaXRhbGl6ZSIsICJpbXBvcnRfZnAiLCAiYWxpYXNUb05vbWluYWwiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJzdHlsZXNoZWV0IiwgImltcG9ydF9zdHlsZXNoZWV0X2NvbnRyYWN0cyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgInN0eWxlc2hlZXQiLCAiaW1wb3J0X3N0eWxlc2hlZXRfY29udHJhY3RzIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9qc3hfcnVudGltZSIsICJpbXBvcnRfZmVhdHVyZV9jb3JlIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9pbmplY3RhYmxlIiwgImltcG9ydF9mcCIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfaW5qZWN0YWJsZSIsICJpbXBvcnRfbW9ieCIsICJtb2R1bGVzIiwgIm1vZHVsZXMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAic3R5bGVzaGVldCIsICJpbXBvcnRfc3R5bGVzaGVldF9jb250cmFjdHMiLCAibW9kdWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpc1BlcmNlbnRhZ2UiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImFsaWFzVG9Ob21pbmFsIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X21vYngiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfbW9ieF9yZWFjdCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9mcCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfbW9ieCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3JlYWN0IiwgImltcG9ydF91c2VfaW5qZWN0IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9tb2J4IiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF90ZXN0X3V0aWxzIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3VzZV9pbmplY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF90ZXN0X3V0aWxzIiwgInN0eWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfdGVzdF91dGlscyIsICJzdHlsZXMiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgInN0eWxlcyIsICJpbXBvcnRfZWxlbWVudF9jb21wb25lbnQiLCAiaW1wb3J0X3JlYWN0X2RvbSIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X3B1YmxpY191dGlsaXRpZXMiLCAiaW1wb3J0X2pzeF9ydW50aW1lIiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcmVhY3RfZG9tIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9lbGVtZW50X2NvbXBvbmVudCIsICJpbXBvcnRfcHVibGljX3V0aWxpdGllcyIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiLCAiaW1wb3J0X2VsZW1lbnRfY29tcG9uZW50IiwgImltcG9ydF9wdWJsaWNfdXRpbGl0aWVzIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAiaXNQb3BvdmVyQ2FwYWJsZSIsICJpbXBvcnRfanN4X3J1bnRpbWUiLCAic3RvcFByb3BhZ2F0aW9uIiwgImltcG9ydF9yZWFjdCIsICJpbXBvcnRfdXNlX2luamVjdCIsICJpbXBvcnRfcmVhY3QiXQp9Cg==
|